From 84a8f499fc468fdd6a745548905eb1778fd39d76 Mon Sep 17 00:00:00 2001 From: aizad-deriv <103104395+aizad-deriv@users.noreply.github.com> Date: Thu, 5 Jan 2023 10:17:36 +0800 Subject: [PATCH 01/84] chore: updated push-woosh (#7297) * chore: updated push woosh * fix: commit suggestion * fix: rearrange babel --- packages/core/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/package.json b/packages/core/package.json index 863f13609fb7..f30d1448f5dc 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -133,6 +133,6 @@ "react-tiny-popover": "^5.1.0", "react-transition-group": "4.4.2", "react-window": "^1.8.5", - "web-push-notifications": "^3.24.0" + "web-push-notifications": "^3.33.0" } } From 469a0a94dcf08f3195423c6cd87d2c4a55fc3ddb Mon Sep 17 00:00:00 2001 From: Muhammad Hamza <120543468+hamza-deriv@users.noreply.github.com> Date: Thu, 5 Jan 2023 10:40:14 +0800 Subject: [PATCH 02/84] fix: added the missing dependency incase of first render after signnup (#7292) --- packages/trader/src/App/Containers/trade-header-extensions.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/trader/src/App/Containers/trade-header-extensions.jsx b/packages/trader/src/App/Containers/trade-header-extensions.jsx index eb114e642cf9..023c69f1bd6f 100644 --- a/packages/trader/src/App/Containers/trade-header-extensions.jsx +++ b/packages/trader/src/App/Containers/trade-header-extensions.jsx @@ -28,7 +28,7 @@ const TradeHeaderExtensions = ({ ); populateHeaderExtensions(header_items); - }, [populateHeaderExtensions, store, show_positions_toggle]); + }, [populateHeaderExtensions, store, show_positions_toggle, is_populating_account_list]); React.useEffect(() => { const waitForLogin = async () => { From 1abb7debf6a5a6ad12700e48e621bffbbf3372d1 Mon Sep 17 00:00:00 2001 From: Sandeep Rajput <90243468+sandeep-deriv@users.noreply.github.com> Date: Fri, 6 Jan 2023 14:05:43 +0800 Subject: [PATCH 03/84] =?UTF-8?q?fix:=20dbot=20performance=20issue=20--=20?= =?UTF-8?q?unified=20websocket=20connection=20and=20moved=E2=80=A6=20(#710?= =?UTF-8?q?3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: dbot performance issue -- unified websocket connection and moved apis to app initialization * fix: improved the api_base class added fallback and account change logics * fix: removed clientid logic from dbot app * fix: added mobx reaction to handle accountid change * fix: moved the initialization of the websocket after app initializes * fix: fixed pip_sizes in api_base made the names consistent * fix: code improvisation -- worked on the suggested changes * chore: fixed toggle button conditionals and base class name * fix: hoist self-exclusion checks on initialization * fix: prevent from subscribing multiple time to ticks_history with same symbol * fix: #83948 'This market is closed' repetedly appears even after the bot is stopped * fix: removed redundunt api subscriptions open_proposal_contract, balance, and proposal * fix: profit/loss log is getting printed 2 times - unsubscribed when we stop the bot * fix: added time api request to keep ws alive --- packages/bot-skeleton/package.json | 2 + .../bot-skeleton/src/scratch/dbot-store.js | 8 ++ packages/bot-skeleton/src/scratch/dbot.js | 6 +- .../bot-skeleton/src/services/api/api-base.js | 117 ++++++++++++++++++ .../bot-skeleton/src/services/api/appId.js | 16 +++ .../src/services/api/ticks_service.js | 48 ++++--- .../src/services/tradeEngine/trade/Balance.js | 4 +- .../tradeEngine/trade/OpenContract.js | 14 ++- .../services/tradeEngine/trade/Proposal.js | 8 +- .../services/tradeEngine/trade/Purchase.js | 3 +- .../src/services/tradeEngine/trade/Sell.js | 7 +- .../src/services/tradeEngine/trade/index.js | 28 +---- .../services/tradeEngine/utils/cliTools.js | 6 +- .../src/services/tradeEngine/utils/helpers.js | 18 ++- .../services/tradeEngine/utils/interpreter.js | 13 +- .../trade-animation/trade-animation.jsx | 10 ++ .../bot-web-ui/src/stores/run-panel-store.js | 7 +- 17 files changed, 246 insertions(+), 69 deletions(-) create mode 100644 packages/bot-skeleton/src/services/api/api-base.js diff --git a/packages/bot-skeleton/package.json b/packages/bot-skeleton/package.json index 96becac19d3c..b19bf02aea06 100644 --- a/packages/bot-skeleton/package.json +++ b/packages/bot-skeleton/package.json @@ -46,6 +46,8 @@ "immutable": "^3.8.2", "localforage": "^1.9.0", "lz-string": "^1.4.4", + "mobx": "^6.6.1", + "mobx-react": "^7.5.1", "redux": "^4.0.1", "redux-thunk": "^2.2.0", "scratch-blocks": "0.1.0-prerelease.20200917235131", diff --git a/packages/bot-skeleton/src/scratch/dbot-store.js b/packages/bot-skeleton/src/scratch/dbot-store.js index 1d951ec9ebc2..fb7333342df2 100644 --- a/packages/bot-skeleton/src/scratch/dbot-store.js +++ b/packages/bot-skeleton/src/scratch/dbot-store.js @@ -1,3 +1,6 @@ +import { reaction } from 'mobx'; +import { api_base } from '../services/api/api-base'; + class DBotStoreInterface { // TODO here we are suppose to define an interface and implement fields of DBotStore. handleFileChange = () => { @@ -27,6 +30,11 @@ class DBotStore extends DBotStoreInterface { this.handleFileChange = store.handleFileChange; this.startLoading = store.startLoading; this.endLoading = store.endLoading; + + reaction( + () => this.client.loginid, + () => api_base.createNewInstance(this.client.loginid) + ); } static setInstance(store) { diff --git a/packages/bot-skeleton/src/scratch/dbot.js b/packages/bot-skeleton/src/scratch/dbot.js index adee21e1bab2..434921ebf073 100644 --- a/packages/bot-skeleton/src/scratch/dbot.js +++ b/packages/bot-skeleton/src/scratch/dbot.js @@ -10,6 +10,7 @@ import { observer as globalObserver } from '../utils/observer'; import ApiHelpers from '../services/api/api-helpers'; import Interpreter from '../services/tradeEngine/utils/interpreter'; import { setColors } from './hooks/colours'; +import { api_base } from '../services/api/api-base'; class DBot { constructor() { @@ -97,7 +98,7 @@ class DBot { window.dispatchEvent(new Event('resize')); window.addEventListener('dragover', DBot.handleDragOver); window.addEventListener('drop', e => DBot.handleDropOver(e, handleFileChange)); - + api_base.init(); // disable overflow el_scratch_div.parentNode.style.overflow = 'hidden'; resolve(); @@ -134,7 +135,7 @@ class DBot { } this.interpreter = Interpreter(); - + api_base.setIsRunning(true); this.interpreter.run(code).catch(error => { globalObserver.emit('Error', error); this.stopBot(); @@ -226,6 +227,7 @@ class DBot { * that trade will be completed first to reflect correct contract status in UI. */ stopBot() { + api_base.setIsRunning(false); if (this.interpreter) { this.interpreter.stop(); } diff --git a/packages/bot-skeleton/src/services/api/api-base.js b/packages/bot-skeleton/src/services/api/api-base.js new file mode 100644 index 000000000000..ef12632d5a58 --- /dev/null +++ b/packages/bot-skeleton/src/services/api/api-base.js @@ -0,0 +1,117 @@ +import { observer as globalObserver } from '../../utils/observer'; +import { generateDerivApiInstance, getLoginId, getToken } from './appId'; + +class APIBase { + api; + token; + account_id; + pip_sizes = {}; + account_info = {}; + is_running = false; + subscriptions = []; + time_interval = null; + + init(force_update = false) { + if (getLoginId()) { + this.toggleRunButton(true); + if (force_update && this.api) this.api.disconnect(); + this.api = generateDerivApiInstance(); + this.initEventListeners(); + this.authorizeAndSubscribe(); + if (this.time_interval) clearInterval(this.time_interval); + this.time_interval = null; + this.getTime(); + } + } + + initEventListeners() { + if (window) { + window.addEventListener('online', this.reconnectIfNotConnected); + window.addEventListener('focus', this.reconnectIfNotConnected); + } + } + + createNewInstance(account_id) { + if (this.account_id !== account_id) { + this.init(true); + } + } + + reconnectIfNotConnected = () => { + // eslint-disable-next-line no-console + console.log('connection state: ', this.api.connection.readyState); + if (this.api.connection.readyState !== 1) { + // eslint-disable-next-line no-console + console.log('Info: Connection to the server was closed, trying to reconnect.'); + this.init(); + } + }; + + authorizeAndSubscribe() { + const { token, account_id } = getToken(); + if (token) { + this.token = token; + this.account_id = account_id; + this.getActiveSymbols(); + this.api + .authorize(this.token) + .then(({ authorize }) => { + this.subscribe(); + this.account_info = authorize; + }) + .catch(e => { + globalObserver.emit('Error', e); + }); + } + } + + subscribe() { + this.api.send({ balance: 1, subscribe: 1 }).catch(e => { + globalObserver.emit('Error', e); + }); + this.api.send({ transaction: 1, subscribe: 1 }).catch(e => { + globalObserver.emit('Error', e); + }); + } + + getActiveSymbols = async () => { + const { active_symbols = [] } = await this.api.send({ active_symbols: 'brief' }).catch(e => { + globalObserver.emit('Error', e); + }); + const pip_sizes = {}; + active_symbols.forEach(({ symbol, pip }) => { + pip_sizes[symbol] = +(+pip).toExponential().substring(3); + }); + this.pip_sizes = pip_sizes; + this.toggleRunButton(false); + }; + + toggleRunButton = toggle => { + const run_button = document.querySelector('#db-animation__run-button'); + if (!run_button) return; + run_button.disabled = toggle; + }; + + setIsRunning(toggle = false) { + this.is_running = toggle; + } + + pushSubscription(subscription) { + this.subscriptions.push(subscription); + } + + clearSubscriptions() { + this.subscriptions.forEach(s => s.unsubscribe()); + this.subscriptions = []; + } + + getTime() { + if (!this.time_interval) { + this.time_interval = setInterval(() => { + this.api.send({ time: 1 }); + }, 30000); + } + } +} + +export const api_base = new APIBase(); diff --git a/packages/bot-skeleton/src/services/api/appId.js b/packages/bot-skeleton/src/services/api/appId.js index ed7417a9d34d..e56a9931fbea 100644 --- a/packages/bot-skeleton/src/services/api/appId.js +++ b/packages/bot-skeleton/src/services/api/appId.js @@ -10,3 +10,19 @@ export const generateDerivApiInstance = () => { }); return deriv_api; }; + +export const getLoginId = () => { + const login_id = localStorage.getItem('active_loginid'); + if (login_id && login_id !== 'null') return login_id; + return null; +}; + +export const getToken = () => { + const active_loginid = getLoginId(); + const client_accounts = JSON.parse(localStorage.getItem('client.accounts')) || undefined; + const active_account = (client_accounts && client_accounts[active_loginid]) || {}; + return { + token: active_account?.token || undefined, + account_id: active_loginid || undefined, + }; +}; diff --git a/packages/bot-skeleton/src/services/api/ticks_service.js b/packages/bot-skeleton/src/services/api/ticks_service.js index 2eaf3e8a50ce..3ca6c3e687bc 100644 --- a/packages/bot-skeleton/src/services/api/ticks_service.js +++ b/packages/bot-skeleton/src/services/api/ticks_service.js @@ -2,6 +2,7 @@ import { Map } from 'immutable'; import { historyToTicks, getLast } from 'binary-utils'; import { doUntilDone, getUUID } from '../tradeEngine/utils/helpers'; import { observer as globalObserver } from '../../utils/observer'; +import { api_base } from './api-base'; const parseTick = tick => ({ epoch: +tick.epoch, @@ -39,8 +40,7 @@ const updateCandles = (candles, ohlc) => { const getType = isCandle => (isCandle ? 'candles' : 'ticks'); export default class TicksService { - constructor(api) { - this.api = api; + constructor() { this.ticks = new Map(); this.candles = new Map(); this.tickListeners = new Map(); @@ -60,23 +60,13 @@ export default class TicksService { if (!this.active_symbols_promise) { this.active_symbols_promise = new Promise(resolve => { - this.getActiveSymbols().then(active_symbols => { - this.pipSizes = active_symbols - .reduce((s, i) => s.set(i.symbol, +(+i.pip).toExponential().substring(3)), new Map()) - .toObject(); - resolve(this.pipSizes); - }); + this.pipSizes = api_base.pip_sizes; + resolve(this.pipSizes); }); } return this.active_symbols_promise; } - getActiveSymbols = async () => { - await this.api.expectResponse('authorize'); - const active_symbols = await this.api.send({ active_symbols: 'brief' }); - return active_symbols.active_symbols; - }; - request(options) { const { symbol, granularity } = options; @@ -89,7 +79,6 @@ export default class TicksService { if (style === 'candles' && this.candles.hasIn([symbol, Number(granularity)])) { return Promise.resolve(this.candles.getIn([symbol, Number(granularity)])); } - return this.requestStream({ ...options, style }); } @@ -163,7 +152,7 @@ export default class TicksService { ...(tickSubscription || []), ]; - Promise.all(subscription.map(id => doUntilDone(() => this.api.forget(id)))); + Promise.all(subscription.map(id => doUntilDone(() => api_base.api.forget(id)))); this.subscriptions = new Map(); } @@ -195,7 +184,7 @@ export default class TicksService { } observe() { - this.api.onMessage().subscribe(({ data }) => { + api_base.api.onMessage().subscribe(({ data }) => { if (data.msg_type === 'tick') { const { tick } = data; const { symbol, id } = tick; @@ -260,7 +249,7 @@ export default class TicksService { style, }; return new Promise((resolve, reject) => { - doUntilDone(() => this.api.send(request_object)) + doUntilDone(() => api_base.api.send(request_object), [], api_base) .then(r => { if (style === 'ticks') { const ticks = historyToTicks(r.history); @@ -278,4 +267,27 @@ export default class TicksService { .catch(reject); }); } + + forget = subscription_id => { + if (subscription_id) { + api_base.api.forget(subscription_id); + } + }; + + unsubscribeFromTicksService() { + if (this.ticks_history_promise) { + const { stringified_options } = this.ticks_history_promise; + const { symbol = '' } = JSON.parse(stringified_options); + if (symbol) { + this.forget(this.subscriptions.getIn(['tick', symbol])); + } + } + if (this.candles_promise) { + const { stringified_options } = this.candles_promise; + const { symbol = '' } = JSON.parse(stringified_options); + if (symbol) { + this.forget(this.subscriptions.getIn(['candle', symbol])); + } + } + } } diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/Balance.js b/packages/bot-skeleton/src/services/tradeEngine/trade/Balance.js index 19f3aad85318..03a01578c671 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/Balance.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/Balance.js @@ -1,13 +1,14 @@ import { getFormattedText } from '@deriv/shared'; import { info } from '../utils/broadcast'; import DBotStore from '../../../scratch/dbot-store'; +import { api_base } from '../../api/api-base'; let balance_string = ''; export default Engine => class Balance extends Engine { observeBalance() { - this.api.onMessage().subscribe(({ data }) => { + const subscription = api_base.api.onMessage().subscribe(({ data }) => { if (data.msg_type === 'balance') { const { balance: { balance: b, currency }, @@ -18,6 +19,7 @@ export default Engine => info({ accountID: this.accountInfo.loginid, balance: balance_string }); } }); + api_base.pushSubscription(subscription); } // eslint-disable-next-line class-methods-use-this diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/OpenContract.js b/packages/bot-skeleton/src/services/tradeEngine/trade/OpenContract.js index 52c610a5f0a0..6b007c29e7f6 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/OpenContract.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/OpenContract.js @@ -3,11 +3,12 @@ import { sell, openContractReceived } from './state/actions'; import { contractStatus, contract as broadcastContract } from '../utils/broadcast'; import { doUntilDone } from '../utils/helpers'; import DBotStore from '../../../scratch/dbot-store'; +import { api_base } from '../../api/api-base'; export default Engine => class OpenContract extends Engine { observeOpenContract() { - this.api.onMessage().subscribe(({ data }) => { + const subscription = api_base.api.onMessage().subscribe(({ data }) => { if (data.msg_type === 'proposal_open_contract') { const contract = data.proposal_open_contract; @@ -41,6 +42,7 @@ export default Engine => } } }); + api_base.pushSubscription(subscription); } waitForAfter() { @@ -51,7 +53,13 @@ export default Engine => subscribeToOpenContract(contract_id = this.contractId) { this.contractId = contract_id; - doUntilDone(() => this.api.send({ proposal_open_contract: 1, contract_id, subscribe: 1 })) + const request_object = { + proposal_open_contract: 1, + contract_id, + subscribe: 1, + }; + + doUntilDone(() => api_base.api.send(request_object)) .then(data => { const { populateConfig } = DBotStore.instance; populateConfig(data.proposal_open_contract); @@ -59,7 +67,7 @@ export default Engine => }) .catch(error => { if (error.error.code !== 'AlreadySubscribed') { - doUntilDone(() => this.api.send({ proposal_open_contract: 1, contract_id, subscribe: 1 })).then( + doUntilDone(() => api_base.api.send(request_object)).then( response => (this.openContractId = response.proposal_open_contract.id) ); } diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/Proposal.js b/packages/bot-skeleton/src/services/tradeEngine/trade/Proposal.js index 17e7914b298a..515d40b9421a 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/Proposal.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/Proposal.js @@ -1,6 +1,7 @@ import { localize } from '@deriv/translations'; import { proposalsReady, clearProposals } from './state/actions'; import { tradeOptionToProposal, doUntilDone } from '../utils/helpers'; +import { api_base } from '../../api/api-base'; export default Engine => class Proposal extends Engine { @@ -69,7 +70,7 @@ export default Engine => Promise.all( this.proposal_templates.map(proposal => { - doUntilDone(() => this.api.send(proposal)).catch(error => { + doUntilDone(() => api_base.api.send(proposal)).catch(error => { // We intercept ContractBuyValidationError as user may have specified // e.g. a DIGITUNDER 0 or DIGITOVER 9, while one proposal may be invalid // the other is valid. We will error on Purchase rather than here. @@ -94,7 +95,7 @@ export default Engine => } observeProposals() { - this.api.onMessage().subscribe(response => { + const subscription = api_base.api.onMessage().subscribe(response => { if (response.data.msg_type === 'proposal') { const { passthrough, proposal } = response.data; if ( @@ -108,6 +109,7 @@ export default Engine => } } }); + api_base.pushSubscription(subscription); } unsubscribeProposals() { @@ -128,7 +130,7 @@ export default Engine => return Promise.resolve(); } - return doUntilDone(() => this.api.forget(proposal.id)).then(() => { + return doUntilDone(() => api_base.api.forget(proposal.id)).then(() => { removeForgetProposalById(proposal.id); }); }) diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/Purchase.js b/packages/bot-skeleton/src/services/tradeEngine/trade/Purchase.js index 800c54201f93..cd3730f840eb 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/Purchase.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/Purchase.js @@ -3,6 +3,7 @@ import { BEFORE_PURCHASE } from './state/constants'; import { contractStatus, info, log } from '../utils/broadcast'; import { getUUID, recoverFromError, doUntilDone } from '../utils/helpers'; import { log_types } from '../../../constants/messages'; +import { api_base } from '../../api/api-base'; let delayIndex = 0; let purchase_reference; @@ -41,7 +42,7 @@ export default Engine => buy_price: buy.buy_price, }); }; - const action = () => this.api.send({ buy: id, price: askPrice }); + const action = () => api_base.api.send({ buy: id, price: askPrice }); this.isSold = false; contractStatus({ id: 'contract.purchase_sent', diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/Sell.js b/packages/bot-skeleton/src/services/tradeEngine/trade/Sell.js index 203cb9d6bdee..d2dc6bb7a3dc 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/Sell.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/Sell.js @@ -3,6 +3,7 @@ import { contractStatus, log } from '../utils/broadcast'; import { recoverFromError, doUntilDone } from '../utils/helpers'; import { log_types } from '../../../constants/messages'; import { observer as globalObserver } from '../../../utils/observer'; +import { api_base } from '../../api/api-base'; export default Engine => class Sell extends Engine { @@ -42,9 +43,9 @@ export default Engine => const contract_id = this.contractId; const sellContractAndGetContractInfo = () => { - return doUntilDone(() => this.api.send({ sell: contract_id, price: 0 })) + return doUntilDone(() => api_base.api.send({ sell: contract_id, price: 0 })) .then(sell_response => { - doUntilDone(() => this.api.send({ proposal_open_contract: 1, contract_id })).then( + doUntilDone(() => api_base.api.send({ proposal_open_contract: 1, contract_id })).then( () => sell_response ); }) @@ -70,7 +71,7 @@ export default Engine => // For every other error, check whether the contract is not actually already sold. return doUntilDone(() => - this.api.send({ + api_base.api.send({ proposal_open_contract: 1, contract_id, }) diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/index.js b/packages/bot-skeleton/src/services/tradeEngine/trade/index.js index 145bfcf67219..a165ea37f8dc 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/index.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/index.js @@ -15,6 +15,7 @@ import { doUntilDone } from '../utils/helpers'; import { expectInitArg } from '../utils/sanitize'; import { createError } from '../../../utils/error'; import { observer as globalObserver } from '../../../utils/observer'; +import { api_base } from '../../api/api-base'; const watchBefore = store => watchScope({ @@ -64,7 +65,6 @@ const watchScope = ({ store, stopScope, passScope, passFlag }) => { export default class TradeEngine extends Balance(Purchase(Sell(OpenContract(Proposal(Ticks(Total(class {}))))))) { constructor($scope) { super(); - this.api = $scope.api; this.observer = $scope.observer; this.$scope = $scope; this.observe(); @@ -106,17 +106,13 @@ export default class TradeEngine extends Balance(Purchase(Sell(OpenContract(Prop if (this.token === token) { return Promise.resolve(); } - - doUntilDone(() => this.api.authorize(token)).catch(e => { - this.$scope.observer.emit('Error', e); - }); return new Promise(resolve => { // Try to recover from a situation where API doesn't give us a correct response on // "proposal_open_contract" which would make the bot run forever. When there's a "sell" // event, wait a couple seconds for the API to give us the correct "proposal_open_contract" // response, if there's none after x seconds. Send an explicit request, which _should_ // solve the issue. This is a backup! - this.api.onMessage().subscribe(({ data }) => { + api_base.api.onMessage().subscribe(({ data }) => { if (data.msg_type === 'transaction' && data.transaction.action === 'sell') { this.transaction_recovery_timeout = setTimeout(() => { const { contract } = this.data; @@ -124,26 +120,14 @@ export default class TradeEngine extends Balance(Purchase(Sell(OpenContract(Prop const is_open_contract = contract.status === 'open'; if (is_same_contract && is_open_contract) { doUntilDone(() => { - this.api.send({ proposal_open_contract: 1, contract_id: contract.contract_id }); + api_base.api.send({ proposal_open_contract: 1, contract_id: contract.contract_id }); }, ['PriceMoved']); } }, 1500); } - if (data.msg_type === 'authorize') { - this.accountInfo = data; - this.token = token; - - // Only subscribe to balance in browser, not for tests. - if (document) { - doUntilDone(() => this.api.send({ balance: 1, subscribe: 1 })).then(r => { - this.balance = Number(r.balance.balance); - resolve(); - }); - } else { - resolve(); - } - doUntilDone(() => this.api.send({ transaction: 1, subscribe: 1 })); - } + this.accountInfo = api_base.account_info; + this.token = api_base.token; + resolve(); }); }); } diff --git a/packages/bot-skeleton/src/services/tradeEngine/utils/cliTools.js b/packages/bot-skeleton/src/services/tradeEngine/utils/cliTools.js index bac5c53d459d..63cb063a7dc2 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/utils/cliTools.js +++ b/packages/bot-skeleton/src/services/tradeEngine/utils/cliTools.js @@ -1,11 +1,9 @@ import TicksService from '../../api/ticks_service'; import Observer from '../../../utils/observer'; -import { generateDerivApiInstance } from '../../api/appId'; export const createScope = () => { const observer = new Observer(); - const api = generateDerivApiInstance(); - const ticksService = new TicksService(api); + const ticksService = new TicksService(); const stopped = false; - return { observer, api, ticksService, stopped }; + return { observer, ticksService, stopped }; }; diff --git a/packages/bot-skeleton/src/services/tradeEngine/utils/helpers.js b/packages/bot-skeleton/src/services/tradeEngine/utils/helpers.js index ecb02e769017..8a996f9ec836 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/utils/helpers.js +++ b/packages/bot-skeleton/src/services/tradeEngine/utils/helpers.js @@ -130,13 +130,17 @@ export const shouldThrowError = (error, errors_to_ignore = []) => { return !is_ignorable_error; }; -export const recoverFromError = (promiseFn, recoverFn, errors_to_ignore, delay_index) => { +export const recoverFromError = (promiseFn, recoverFn, errors_to_ignore, delay_index, api_base) => { return new Promise((resolve, reject) => { const promise = promiseFn(); if (promise) { promise.then(resolve).catch(error => { - if (shouldThrowError(error, errors_to_ignore)) { + /** + * if bot is not running there is no point of recovering from error + * `!api_base.is_running` will check the bot status if it is not running it will kick out the control from loop + */ + if (shouldThrowError(error, errors_to_ignore) || (api_base && !api_base.is_running)) { reject(error); return; } @@ -172,7 +176,13 @@ export const recoverFromError = (promiseFn, recoverFn, errors_to_ignore, delay_i }); }; -export const doUntilDone = (promiseFn, errors_to_ignore) => { +/** + * @param {*} promiseFn api call - it could be api call or subscription + * @param {*} errors_to_ignore list of errors to ignore + * @param {*} api_base instance of APIBase class to check if the bot is running or not + * @returns a new promise + */ +export const doUntilDone = (promiseFn, errors_to_ignore, api_base) => { let delay_index = 1; return new Promise((resolve, reject) => { @@ -182,7 +192,7 @@ export const doUntilDone = (promiseFn, errors_to_ignore) => { }; const repeatFn = () => { - recoverFromError(promiseFn, recoverFn, errors_to_ignore, delay_index).then(resolve).catch(reject); + recoverFromError(promiseFn, recoverFn, errors_to_ignore, delay_index, api_base).then(resolve).catch(reject); }; repeatFn(); diff --git a/packages/bot-skeleton/src/services/tradeEngine/utils/interpreter.js b/packages/bot-skeleton/src/services/tradeEngine/utils/interpreter.js index d43cb67f01d0..788d172dbe39 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/utils/interpreter.js +++ b/packages/bot-skeleton/src/services/tradeEngine/utils/interpreter.js @@ -4,6 +4,7 @@ import { createScope } from './cliTools'; import Interface from '../Interface'; import { unrecoverable_errors } from '../../../constants/messages'; import { observer as globalObserver } from '../../../utils/observer'; +import { api_base } from '../../api/api-base'; JSInterpreter.prototype.takeStateSnapshot = function () { const newStateStack = cloneThorough(this.stateStack, undefined, undefined, undefined, true); @@ -180,16 +181,14 @@ const Interpreter = () => { } function terminateSession() { - const { connection } = $scope.api; - if (connection.readyState === 0) { - connection.addEventListener('open', () => connection.close()); - } else if (connection.readyState === 1) { - connection.close(); - } - $scope.stopped = true; $scope.is_error_triggered = false; globalObserver.emit('bot.stop'); + const { ticksService } = $scope; + // Unsubscribe previous ticks_history subscription + ticksService.unsubscribeFromTicksService(); + // Unsubscribe the subscriptions from Proposal, Balance and OpenContract + api_base.clearSubscriptions(); } function run(code) { diff --git a/packages/bot-web-ui/src/components/trade-animation/trade-animation.jsx b/packages/bot-web-ui/src/components/trade-animation/trade-animation.jsx index 738ed174987a..de40ff31ad8c 100644 --- a/packages/bot-web-ui/src/components/trade-animation/trade-animation.jsx +++ b/packages/bot-web-ui/src/components/trade-animation/trade-animation.jsx @@ -85,9 +85,16 @@ const TradeAnimation = ({ info_direction, toggleAnimationInfoModal, cashier_validation, + performSelfExclusionCheck, }) => { const [is_button_disabled, updateIsButtonDisabled] = React.useState(false); const is_unavailable_for_payment_agent = cashier_validation?.includes('WithdrawServiceUnavailableForPA'); + + // perform self-exclusion checks which will be stored under the self-exclusion-store + React.useEffect(() => { + performSelfExclusionCheck(); + }, []); + React.useEffect(() => { if (is_button_disabled) { setTimeout(() => { @@ -95,6 +102,7 @@ const TradeAnimation = ({ }, 1000); } }, [is_button_disabled]); + const status_classes = ['', '', '']; let progress_status = contract_stage - @@ -174,6 +182,7 @@ TradeAnimation.propTypes = { is_stop_button_disabled: PropTypes.bool, onRunButtonClick: PropTypes.func, onStopButtonClick: PropTypes.func, + performSelfExclusionCheck: PropTypes.func, profit: PropTypes.number, should_show_overlay: PropTypes.bool, }; @@ -187,6 +196,7 @@ export default connect(({ summary_card, run_panel, toolbar, ui, client }) => ({ is_stop_button_disabled: run_panel.is_stop_button_disabled, onRunButtonClick: run_panel.onRunButtonClick, onStopButtonClick: run_panel.onStopButtonClick, + performSelfExclusionCheck: run_panel.performSelfExclusionCheck, profit: summary_card.profit, should_show_overlay: run_panel.should_show_overlay, toggleAnimationInfoModal: toolbar.toggleAnimationInfoModal, diff --git a/packages/bot-web-ui/src/stores/run-panel-store.js b/packages/bot-web-ui/src/stores/run-panel-store.js index c0144b8e494a..c35b2390467e 100644 --- a/packages/bot-web-ui/src/stores/run-panel-store.js +++ b/packages/bot-web-ui/src/stores/run-panel-store.js @@ -32,6 +32,7 @@ export default class RunPanelStore { toggleDrawer: action.bound, setActiveTabIndex: action.bound, onCloseDialog: action.bound, + performSelfExclusionCheck: action.bound, showStopMultiplierContractDialog: action.bound, showLoginDialog: action.bound, showRealAccountDialog: action.bound, @@ -130,6 +131,11 @@ export default class RunPanelStore { ); } + async performSelfExclusionCheck() { + const { self_exclusion } = this.root_store; + await self_exclusion.checkRestriction(); + } + async onRunButtonClick() { const { core, summary_card, route_prompt_dialog, self_exclusion } = this.root_store; const { client, ui } = core; @@ -148,7 +154,6 @@ export default class RunPanelStore { */ if (is_ios || isSafari()) this.preloadAudio(); - await self_exclusion.checkRestriction(); if (!self_exclusion.should_bot_run) { self_exclusion.setIsRestricted(true); return; From 37266a2e0317f5d03b8d1dddd943030cf4c17e6d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 6 Jan 2023 14:29:02 +0800 Subject: [PATCH 04/84] =?UTF-8?q?translations:=20=F0=9F=93=9A=20sync=20tra?= =?UTF-8?q?nslations=20with=20crowdin=20(#7316)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: DerivFE <80095553+DerivFE@users.noreply.github.com> --- packages/p2p/src/translations/fr.json | 4 +- packages/p2p/src/translations/id.json | 4 +- .../translations/src/translations/it.json | 52 +++++++++---------- .../translations/src/translations/ru.json | 16 +++--- .../translations/src/translations/th.json | 6 +-- 5 files changed, 41 insertions(+), 41 deletions(-) diff --git a/packages/p2p/src/translations/fr.json b/packages/p2p/src/translations/fr.json index e4022ee5e8ce..377fe2a81fef 100644 --- a/packages/p2p/src/translations/fr.json +++ b/packages/p2p/src/translations/fr.json @@ -2,7 +2,7 @@ "6794664": "Annonces qui correspondent à votre solde et à votre limite P2P Deriv.", "19789721": "Personne ne t'a bloqué. Ouaii !", "21103557": "Solde P2P dérivé = dépôts qui ne peuvent pas être annulés (virements bancaires, etc.) + une partie des dépôts qui peuvent être annulés (paiements par carte de crédit, etc.)", - "24711354": "Total des commandes <0>30j | <1>à vie", + "24711354": "Total des ordres <0>30j | <1>tous", "47573834": "Taux fixe (1 {{account_currency}})", "50672601": "Acheté", "51881712": "Vous avez déjà une annonce avec le même taux de change pour cette paire de devises et ce type d'ordre.

Veuillez définir un taux différent pour votre annonce.", @@ -307,7 +307,7 @@ "-2059312414": "Détails de l'annonce", "-1769584466": "Statistiques", "-2090878601": "Limite journalière", - "-130547447": "Volume des trades <0>30d | <1>à vie", + "-130547447": "Volume des trades <0>30d | <1>tous", "-1792280476": "Choisissez votre mode de paiement", "-293182503": "Annuler l'ajout de ce mode de paiement ?", "-1850127397": "Si vous choisissez d'annuler, les données que vous avez saisies seront perdues.", diff --git a/packages/p2p/src/translations/id.json b/packages/p2p/src/translations/id.json index 647a3c20d4a8..fadb811baa60 100644 --- a/packages/p2p/src/translations/id.json +++ b/packages/p2p/src/translations/id.json @@ -2,7 +2,7 @@ "6794664": "Iklan yang sesuai dengan saldo dan batas P2P Deriv Anda.", "19789721": "Tidak ada yang memblokir Anda. Yay!", "21103557": "Saldo Deriv P2P = deposit yang tidak dapat dibatalkan (melalui tranfer bank, dsb) + sejumlah deposit yang mungkin dapat dibatalkan (melalui kartu kredit, dsb)", - "24711354": "Total order <0>30hari | <1>seumur hidup", + "24711354": "Total order <0>30hari | <1>semua", "47573834": "Harga tetap (1 {{account_currency}})", "50672601": "Membeli", "51881712": "Anda sudah membuat iklan dengan nilai tukar yang sama untuk pasangan mata uang dan jenis order.

Mohon pilih nilai tukar lain untuk iklan Anda.", @@ -307,7 +307,7 @@ "-2059312414": "Detail iklan", "-1769584466": "Statistik", "-2090878601": "Batas harian", - "-130547447": "Volume transaksi <0>30 hari | <1>seumur hidup", + "-130547447": "Transaksi <0>30 hari | <1>semua", "-1792280476": "Pilih metode pembayaran Anda", "-293182503": "Batalkan penambahan metode pembayaran ini?", "-1850127397": "Jika Anda memilih untuk membatalkan, detail yang Anda masukkan akan hilang.", diff --git a/packages/translations/src/translations/it.json b/packages/translations/src/translations/it.json index b3d410f48790..4b387ac0744b 100644 --- a/packages/translations/src/translations/it.json +++ b/packages/translations/src/translations/it.json @@ -245,7 +245,7 @@ "327534692": "Il valore di durata non è consentito. Per avviare il bot, inserire {{min}}.", "328539132": "Ripete le istruzioni ad esso relative per un numero specifico di volte", "329404045": "<0>Passa al conto reale<1> per creare un conto {{account_title}} {{platform}}.", - "332886946": "<1>Hai bisogno di aiuto per usare Acuity? <0/>Consulta questa <2>guida per l'utente.", + "332886946": "<1>Hai bisogno di aiuto per usare Acuity? <0/>Consulta questa <2>guida utente.", "333456603": "Limiti per i prelievi", "334680754": "Passa al tuo conto reale per creare un conto Deriv MT5", "334942497": "Tempo di acquista", @@ -517,7 +517,7 @@ "665089217": "Invia <0>il documenti di verifica dell'identità per autenticare il tuo conto e accedere alla cassa.", "665777772": "XLM/USD", "665872465": "Nell'esempio sottostante, è stato selezionato il prezzo di apertura, che viene poi assegnato a una variabile chiamata \"op\".", - "666724936": "Inserisci un numero di ID valido.", + "666724936": "Inserisci un numero ID valido.", "668344562": "Sintetici, FX maggiori (lotti standard/micro), FX minori, panieri di indici, materie prime e criptovalute", "672008428": "ZEC/USD", "673915530": "Giurisdizione e scelta delle legge applicabile", @@ -710,7 +710,7 @@ "918447723": "Reale", "920125517": "Aggiungi conto demo", "921901739": "- i dati del conto bancario collegato al tuo conto", - "924046954": "Carica un documento che mostri il tuo nome e il numero di conto bancario o i dettagli del conto.", + "924046954": "Carica un documento che mostri il tuo nome e il numero di conto bancario o le informazioni del conto.", "926813068": "Fisso/variabile", "929608744": "Non puoi effettuare prelievi", "930346117": "Le lettere maiuscole non sono di grande aiuto", @@ -778,7 +778,7 @@ "1006664890": "Silenzioso", "1009032439": "Sempre", "1010198306": "Questo blocco crea una lista con stringhe e numeri.", - "1010337648": "Non siamo stati in grado di verificare la tua prova di proprietà.", + "1010337648": "Non siamo stati in grado di verificare il documento a verifica della proprietà.", "1012102263": "Non potrai accedere al tuo conto fino a questa data (massimo 6 settimane da oggi).", "1015201500": "Stabilisci le opzioni di trading come durata e puntata.", "1016220824": "Devi passare a un conto reale per usare questa opzione. <0/>Per farlo, seleziona un conto reale da <1>Cambia conto.", @@ -855,7 +855,7 @@ "1086118495": "Hub per i trader", "1088138125": "Tick {{current_tick}} - ", "1089085289": "Numero di telefono", - "1096078516": "Analizzeremo i documenti e ti aggiorneremo sullo stato entro 3 giorni.", + "1096078516": "Verificheremo i documenti e ti aggiorneremo sullo stato della procedura entro 3 giorni.", "1096175323": "Occorre un conto Deriv", "1098147569": "Acquistare materie prime o azioni di una società.", "1098622295": "\"i\" inizia con il valore 1, e aumenta di 2 a ogni interazione. La ripetizione si ripete fino a quando \"i\" raggiunge il valore di 12, dopodiché termina.", @@ -972,7 +972,7 @@ "1232353969": "0-5 operazioni negli ultimi 12 mesi", "1233300532": "Payout", "1234292259": "Fonte di ricchezza", - "1234764730": "Carica uno screenshot del tuo nome e indirizzo email dalla sezione dei dettagli personali.", + "1234764730": "Carica uno screenshot del tuo nome e indirizzo email dalla sezione delle informazioni personali.", "1235426525": "50%", "1237330017": "Pensionato", "1238311538": "Amministratore", @@ -1234,7 +1234,7 @@ "1540585098": "Rifiuta", "1541969455": "Entrambi", "1544642951": "Selezionando \"Solo ascendente\", ottieni il payout se tick consecutivi superano successivamente il punto di entrata. Non ottieni alcun payout se qualsiasi tick è minore o uguale a uno dei tick precedenti.", - "1547148381": "Il file è troppo grande (sono consentiti solo fino a 8MB). Carica un altro file.", + "1547148381": "Le dimensioni del file sono troppo grandi (consentiti solo fino a 8MB). Carica un altro file.", "1548765374": "La verifica del numero di documento non è andata a buon fine", "1549098835": "Totale prelievo", "1551172020": "Paniere AUD", @@ -1332,7 +1332,7 @@ "1675030608": "Per creare questo conto, abbiamo bisogno prima che tu invii nuovamente la prova dell'indirizzo.", "1677027187": "Forex", "1677990284": "Le mie app", - "1680666439": "Carica lo estratto conto bancario con il tuo nome, il numero di conto e la cronologia delle transazioni.", + "1680666439": "Carica l'estratto conto bancario con il tuo nome, il numero di conto e la cronologia delle transazioni.", "1682409128": "Strategia senza nome", "1682636566": "Invia di nuovo e-mail a", "1683963454": "Il contratto verrà chiuso automaticamente al successivo prezzo disponibile dell'asset il {{date}} alle {{timestamp}}.", @@ -1367,7 +1367,7 @@ "1723398114": "Una recente bolletta delle utenze (ad es. elettricità, acqua, gas, telefono o internet)", "1723589564": "Rappresenta il numero massimo di contratti in essere nel tuo portafoglio. Ogni riga presente sul tuo portafoglio vale una posizione aperta. Una volta raggiunto il valore massimo, non potrai aprire nuove posizioni senza prima chiudere una posizione esistente.", "1724696797": "È possibile avere un solo conto fiat.", - "1725958461": "Numero di conto", + "1725958461": "Numero del conto", "1726472773": "Funzione che non restituisce un valore", "1726565314": "Chiudi il conto", "1727681395": "Totale asset attivi nei conti demo Deriv e {{platform_name_mt5}}.", @@ -1433,7 +1433,7 @@ "1791971912": "Recente", "1793913365": "Per depositare denaro, passa al conto {{currency_symbol}}.", "1794815502": "Scarica la cronologia delle tue operazioni.", - "1796787905": "Carica il/i documento/i seguente/i.", + "1796787905": "Carica il/i seguente/i documento/i.", "1798943788": "Puoi solo effettuare depositi.", "1801093206": "Ottieni l'elenco candele", "1801927731": "Conti {{platform_name_dxtrade}}", @@ -1610,7 +1610,7 @@ "1988153223": "Indirizzo e-mail", "1988302483": "Take profit:", "1988601220": "Valore della durata", - "1990331072": "Prova di proprietà", + "1990331072": "Documento a verifica della proprietà", "1990735316": "Aumento pari a", "1991448657": "Non conosci il tuo numero di identificazione fiscale? Clicca <0>qui per saperne di più.", "1991524207": "Indice Jump 100", @@ -1656,7 +1656,7 @@ "2037665157": "Espandi tutti i blocchi", "2037906477": "ottieni sotto elenco da #", "2042050260": "- Prezzo d'acquisto: il prezzo d'acquisto (puntata) del contratto", - "2042115724": "Carica uno screenshot del tuo conto e della pagina dei dettagli personali con il tuo nome, numero di conto, numero di telefono e indirizzo email.", + "2042115724": "Carica uno screenshot del tuo conto e della pagina delle informazioni personali con il tuo nome, numero di conto, numero di telefono e indirizzo email.", "2042778835": "La presente politica sui reclami potrebbe cambiare nel tempo, e si applica ai conti registrati con {{legal_entity_name}}.", "2044086432": "Quello di chiusura è l'ultimo tick entro l'orario di termine. Se selezioni un orario di termine preciso, quest'ultimo sarà l'orario selezionato.", "2046273837": "Ultimo tick", @@ -1702,7 +1702,7 @@ "2096456845": "Data di nascita*", "2097170986": "Tether (Omni)", "2097381850": "Calcola la linea della Media mobile semplice da un elenco con un periodo", - "2097932389": "Carica 2 schermate separate dalla pagina dei dettagli personali e dalla pagina del conto tramite <0>https://app.astropay.com/profile", + "2097932389": "Carica 2 schermate separate dalla pagina delle informazioni personali e dalla pagina del conto tramite la pagina <0>https://app.astropay.com/profile", "2100713124": "conto", "2101972779": "Utilizzando un elenco di tick, ripropone l'esempio precedente.", "2102572780": "Il codice deve comprendere 6 caratteri.", @@ -1821,7 +1821,7 @@ "-922751756": "Meno di un anno", "-542986255": "Nessuna", "-1337206552": "Secondo le tue conoscenze, il trading con i CFD ti consente di", - "-456863190": "Metti una posizione sul movimento del prezzo di un asset il cui risultato è un rendimento fisso o nulla.", + "-456863190": "Metti una posizione sul movimento del prezzo di un asset il cui risultato è un rendimento fisso o nullo.", "-1314683258": "Effettuare un investimento a lungo termine per un profitto garantito.", "-1546090184": "Come influisce la leva sul trading di CFD?", "-1636427115": "La leva finanziaria ti aiuta a mitigare il rischio.", @@ -1939,13 +1939,13 @@ "-1030759620": "Funzionari governativi", "-1196936955": "Carica uno screenshot del tuo nome e indirizzo email dalla sezione delle informazioni personali.", "-1286823855": "Carica l'estratto conto della bolletta del cellulare con il tuo nome e numero di telefono.", - "-1309548471": "Carica il tuo estratto conto bancario con il tuo nome e i dettagli del conto.", - "-1410396115": "Carica una foto che mostri il tuo nome e le prime sei e ultime quattro cifre del numero della tua carta. Se la carta non riporta il tuo nome, carica l'estratto conto bancario con il tuo nome e il numero della carta nella cronologia delle transazioni.", - "-3805155": "Carica uno screenshot di uno dei seguenti elementi per elaborare la transazione:", + "-1309548471": "Carica l'estratto conto bancario con il tuo nome e le informazioni del conto.", + "-1410396115": "Carica una foto che mostri il tuo nome e le prime sei e le ultime quattro cifre del numero della tua carta. Se la carta non riporta il tuo nome, carica l'estratto conto bancario con il tuo nome e il numero della carta nella cronologia delle transazioni.", + "-3805155": "Carica uno screenshot di una delle seguenti informazioni per elaborare la transazione:", "-1523487566": "- la sezione del profilo del tuo conto sul sito web", "-613062596": "- la pagina delle informazioni sul conto sull'app", "-1718304498": "ID utente", - "-609424336": "Carica uno screenshot del tuo nome, numero di conto e indirizzo email dalla sezione dei dettagli personali dell'app o della sezione del profilo del tuo conto sul sito web.", + "-609424336": "Carica uno screenshot del tuo nome, numero di conto e indirizzo email dalla sezione delle informazioni personali dell'app o della sezione del profilo del tuo conto sul sito web.", "-1954436643": "Carica uno screenshot del tuo nome utente nella pagina delle informazioni generali all'<0>indirizzo https://onlinenaira.com/members/index.htm", "-79853954": "Carica uno screenshot del tuo numero di conto e del numero di telefono nella pagina del conto bancario/portafoglio mobile all'<0>indirizzo https://onlinenaira.com/members/bank.htm", "-1192882870": "Carica uno screenshot del tuo nome e del tuo numero di conto dalla sezione dei dettagli personali.", @@ -2039,10 +2039,10 @@ "-1725454783": "Non riuscito", "-839094775": "Indietro", "-856213726": "Dovrai inoltre consegnare un documento di verifica dell'identità.", - "-987011273": "La tua prova di proprietà non è richiesta.", - "-808299796": "Al momento non è necessario presentare una prova di proprietà. Ti informeremo se in futuro sarà richiesta una prova della proprietà.", - "-179726573": "Abbiamo ricevuto la tua prova di proprietà.", - "-813779897": "La verifica della proprietà è stata superata.", + "-987011273": "Il documento a verifica della proprietà non è richiesto.", + "-808299796": "Al momento non è necessario presentare un documento a verifica della proprietà. Ti informeremo se in futuro sarà richiesto.", + "-179726573": "Abbiamo ricevuto il tuo documento a verifica della proprietà.", + "-813779897": "La verifica della proprietà è andata a buon fine.", "-1389323399": "Devi inserire {{min_number}}-{{max_number}} caratteri.", "-1313806160": "Richiedi una nuova password e controlla di aver ricevuto un'e-mail con il nuovo token.", "-329713179": "Ok", @@ -2377,7 +2377,7 @@ "-451858550": "Facendo click su \"Continua\" verrai reindirizzato a {{ service }}, un fornitore di servizi di pagamento esterno. {{ website_name }} declina qualsiasi responsabilità per i contenuti o i servizi forniti da {{ service }}. Se riscontri problemi relativi ai servizi di {{ service }}, contatta direttamente {{ service }}.", "-2005265642": "Fiat onramp è un servizio di cassa che permette di convertire valute fiat in criptovalute per ricaricare i conti per criptovalute di Deriv. Qui sono elencati gli scambi di criptovalute di parti terze; è necessario creare un conto apposito per utilizzare i loro servizi.", "-1593063457": "Seleziona strumento di pagamento", - "-953082600": "Alcuni metodi di pagamento potrebbero non essere elencati qui, ma gli agenti di pagamento potrebbero comunque offrirli. Se non riesci a trovare il tuo metodo preferito, contatta direttamente gli agenti di pagamento per verificare ulteriormente.", + "-953082600": "Alcuni metodi di pagamento possono non essere elencati qui, anche se gli agenti di pagamento potrebbero comunque offrirli. Se non riesci a trovare il tuo metodo preferito, contatta direttamente gli agenti di pagamento per ulteriori verifiche.", "-2004264970": "L'indirizzo di portafoglio deve comprendere dai 25 ai 64 caratteri.", "-1707299138": "L'indirizzo di portafoglio {{currency_symbol}}", "-38063175": "Portafoglio in {{account_text}}", @@ -2767,8 +2767,8 @@ "-1719731099": "Grazie all'autenticazione a due fattori, il conto è protetto sia dalla password che dal telefono: in questo modo solo tu puoi accedere al conto anche se qualcuno conosce la password.", "-2087822170": "Sei offline", "-1669693571": "Verifica la tua connessione.", - "-1706642239": "<1>È richiesta <0>una prova di proprietà", - "-553262593": "<0><1>Il tuo conto è attualmente bloccato<2><3>Carica la prova di <4>proprietà per sbloccare il tuo conto. <5>", + "-1706642239": "<1>È richiesto <0>un documento a verifica della proprietà", + "-553262593": "<0><1>Il tuo conto è attualmente bloccato<2><3>Carica il documento a verifica della <4>proprietà per sbloccarlo. <5>", "-1834929362": "Carica il documento", "-1043638404": "<0>Verifica della proprietà <1>non riuscita", "-1766760306": "<0><1>Carica il documento <2>con i dati corretti.<3>", @@ -2955,7 +2955,7 @@ "-1300381594": "Ottieni gli strumenti di trading Acuity", "-860609405": "Password", "-742647506": "Trasferisci fondi", - "-1972393174": "Fai trading con CFD sui nostri sintetici, sui panieri e sugli FX derivati.", + "-1972393174": "Fai trading con CFD sui nostri sintetici, panieri e sugli FX derivati.", "-1357917360": "Terminale web", "-1454896285": "L'app per Desktop di MT5 non è supportata da Windows XP, Windows 2003 e Windows Vista.", "-810388996": "Scarica l'app mobile Deriv X", diff --git a/packages/translations/src/translations/ru.json b/packages/translations/src/translations/ru.json index 49d90352585e..6d0d7f372f9c 100644 --- a/packages/translations/src/translations/ru.json +++ b/packages/translations/src/translations/ru.json @@ -566,7 +566,7 @@ "724203548": "Вы можете отправить жалобу на платформу <0>онлайн-урегулирования споров (ODR) Европейской Комиссии. Это не относится к клиентам из Великобритании.", "728042840": "Чтобы продолжить торговать у нас, пожалуйста, подтвердите свое место жительства.", "728824018": "Испанский индекс", - "729651741": "Выберите фотографию", + "729651741": "Выберите фото", "730473724": "Этот блок выполняет логическую операцию «И» или «ИЛИ» с заданными значениями.", "731382582": "BNB/USD", "734390964": "Недостаточно средств на счете", @@ -709,7 +709,7 @@ "915735109": "Вернуться на {{platform_name}}", "918447723": "Реальный", "920125517": "Добавить демо-счет", - "921901739": "- данные вашего банковского счета, привязанного к вашему счету", + "921901739": "- данные банковского счета, привязанного к вашему счету", "924046954": "Загрузите документ с вашим именем и номером банковского счета или реквизитами счета.", "926813068": "Фиксированный/переменный", "929608744": "Вы не можете выводить средства", @@ -855,7 +855,7 @@ "1086118495": "Центр трейдера", "1088138125": "Тик {{current_tick}} - ", "1089085289": "Номер мобильного телефона", - "1096078516": "Мы рассмотрим ваши документы и уведомим вас о их статусе в течение 3 дней.", + "1096078516": "Мы рассмотрим ваши документы и уведомим вас об их статусе в течение 3 дней.", "1096175323": "Вам понадобится счет Deriv", "1098147569": "Приобретайте товары или акции компании.", "1098622295": "«i» начинается со значения 1 и увеличивается на 2 в каждом повторении. Цикл будет повторяться до тех пор, пока «i» не достигнет значения 12, и затем цикл будет прерван.", @@ -946,7 +946,7 @@ "1201773643": "числовой", "1203297580": "Этот блок отправляет сообщение в Telegram-канал.", "1204223111": "В этом примере цены открытия из списка свечей присваиваются переменной с именем \"candle_list\".", - "1206227936": "Как замаскировать карту?", + "1206227936": "Как скрыть карту?", "1206821331": "Вооруженные силы", "1208729868": "Тики", "1208903663": "Неверный ключ", @@ -1192,7 +1192,7 @@ "1481977420": "Помогите нам верифицировать ваш запрос на вывод средств.", "1484336612": "Этот блок используется для завершения или продолжения цикла и может быть размещен в любом месте блока цикла.", "1487086154": "Ваши документы успешно отправлены", - "1488548367": "Загрузите снова", + "1488548367": "Загрузить снова", "1490583127": "DBot пока не готов к использованию на реальных счетах", "1491392301": "<0>Продано за: {{sold_for}}", "1492686447": "Ваш счет MT5 Финансовый STP будет открыт в Deriv (FX) Ltd. Все операции на этом счете регулируются правилами и руководящими принципами Управления финансовых услуг Лабуана (LFSA). Правила и принципы Управления финансовых услуг Лабуана (LFSA) не распространяются ни на один из ваших других счетов, включая счет Deriv.", @@ -1234,7 +1234,7 @@ "1540585098": "Отклонить", "1541969455": "Оба", "1544642951": "Выбрав \"Только вверх\", вы получите выплату, если несколько тиков подряд будут расти по отношению к котировке на входе. Если любой тик покажет снижение или будет равен одному из предыдущих тиков, вы не получите выплату.", - "1547148381": "Этот файл слишком велик (разрешено не более 8 МБ). Пожалуйста, загрузите еще один файл.", + "1547148381": "Файл слишком большой (разрешено не более 8 МБ). Попробуйте другой файл.", "1548765374": "Не удалось верифицировать номер документа", "1549098835": "Общая сумма вывода", "1551172020": "Индекс AUD", @@ -1433,7 +1433,7 @@ "1791971912": "Недавние", "1793913365": "Чтобы внести средства, перейдите на свой счет {{currency_symbol}}.", "1794815502": "Загрузить историю транзакций.", - "1796787905": "Пожалуйста, загрузите следующие документы.", + "1796787905": "Загрузите следующие документы.", "1798943788": "Вы можете делать только депозиты.", "1801093206": "Получить список свечей", "1801927731": "счета {{platform_name_dxtrade}}", @@ -1944,7 +1944,7 @@ "-3805155": "Загрузите скриншот одного из следующих изображений для обработки транзакции:", "-1523487566": "- раздел профиля вашей учетной записи на сайте", "-613062596": "- страница «Информация об учетной записи» в приложении", - "-1718304498": "Идентификатор пользователя", + "-1718304498": "ID пользователя", "-609424336": "Загрузите скриншот своего имени, номера счета и адреса электронной почты из раздела личных данных приложения или раздела профиля своей учетной записи на веб-сайте.", "-1954436643": "Загрузите скриншот своего имени пользователя на странице «Общая информация» по адресу <0>https://onlinenaira.com/members/index.htm", "-79853954": "Загрузите скриншот номера своего счета и номера телефона на странице «Банковский счет/мобильный кошелек» по адресу <0>https://onlinenaira.com/members/bank.htm", diff --git a/packages/translations/src/translations/th.json b/packages/translations/src/translations/th.json index b2fb527430ee..c30b93cfd7fe 100644 --- a/packages/translations/src/translations/th.json +++ b/packages/translations/src/translations/th.json @@ -589,7 +589,7 @@ "759783233": "สําหรับข้อมูลเพิ่มเติมและความช่วยเหลือให้คําปรึกษาและบริการสนับสนุนต่าง โปรดไปที่ <0>begambleaware.org", "760528514": "โปรดทราบว่า การเปลี่ยนค่าของ \"i\" จะไม่เปลี่ยนแปลงค่าของรายการตัวต้นฉบับในลิสต์", "761576760": "ฝากเงินเข้าบัญชีของคุณเพื่อเริ่มทำการซื้อขาย", - "762185380": "<0>ได้ผลตอบแทนเพิ่มทวีคูณ โดย <0>เสี่ยงเพียงเฉพาะ สิ่งที่คุณวางเดิมพัน", + "762185380": "<0>เพิ่มทวีผลที่ได้รับ โดย <0>มีความเสี่ยงเพียงเฉพาะ ทุนทรัพย์ที่คุณลงไป", "762871622": "{{remaining_time}}วินาที", "763019867": "บัญชีเกมของคุณมีกำหนดที่จะถูกปิด", "764366329": "วงเงินในการซื้อขาย", @@ -2888,7 +2888,7 @@ "-895091803": "หากคุณกำลังมองหาสัญญาการซื้อขายส่วนต่าง", "-1447215751": "ไม่แน่ใจ? ลองนี่สิ", "-2338797": "<0>เพิ่มผลตอบแทนสูงสุด โดย <0>เสี่ยงมากกว่า สิ่งที่คุณวางเดิมพัน", - "-1682067341": "รับ <0>ผลตอบแทนอัตราคงที่ โดย <0>เสี่ยงเพียง สิ่งที่คุณวางเดิมพัน", + "-1682067341": "รับ <0>ผลที่ได้รับในอัตราคงที่ โดย <0>เสี่ยงเพียง ทุนทรัพย์ที่คุณลงไป", "-1744351732": "ไม่แน่ใจว่าจะเริ่มต้นที่ไหน?", "-943710774": "นโยบายการร้องเรียนนี้ซึ่งอาจมีการเปลี่ยนแปลงเป็นครั้งคราว มีผลบังคับใช้กับบัญชีของคุณที่ลงทะเบียนกับ {{legal_entity_name}} ซึ่งมีที่อยู่สำนักงานที่จดทะเบียนไว้ที่ First Floor, Millennium House, Victoria Road, Douglas, Isle of Man, IM2 4RW บริษัทนี้ได้รับใบอนุญาตและถูกกำกับควบคุมตามกฎหมายโดย (1) Gambling Supervision Commission ในเกาะไอล์ออฟแมน (ปัจจุบัน <0>ใบอนุญาต ออกเมื่อวันที่ 31 สิงหาคม ค. ศ. 2017) และ (2) Gambling Commission ในสหราชอาณาจักร (<1>ใบอนุญาตเลขที่ 39172)", "-255056078": "นโยบายการร้องเรียนนี้ซึ่งอาจมีการเปลี่ยนแปลงเป็นครั้งคราว มีผลบังคับใช้กับบัญชีของคุณที่ลงทะเบียนกับ {{legal_entity_name}} ซึ่งมีที่อยู่สำนักงานที่จดทะเบียนไว้ที่ Level 3, Triq Dun Karm, Birkirkara, BKR 9033 ประเทศมอลตา บริษัทได้รับใบอนุญาตและถูกกำกับควบคุมตามกฎหมายโดย Malta Gaming Authority ในประเทศมอลตาสำหรับผลิตภัณฑ์การพนันเท่านั้น <0>ใบอนุญาตเลขที่ MGA/B2C/102/2000 และสำหรับลูกค้าที่อาศัยอยู่ในสหราชอาณาจักรโดย UK Gambling Commission (เลขที่บัญชี 39495)", @@ -3216,7 +3216,7 @@ "-313112159": "บล็อกนี้จะคล้ายกับบล็อกด้านบน แต่ต่างกันที่ว่าบล๊อกนี้จะส่งคืนค่ามาอันหนึ่ง โดยค่าที่ส่งคืนนั้นสามารถถูกกำหนดให้กับตัวแปรที่คุณเลือกได้", "-1783320173": "คืนค่าภายในฟังก์ชันก่อนกําหนด", "-1485521724": "การส่งคืนตามเงื่อนไข", - "-1482801393": "ผลตอบแทน", + "-1482801393": "ผลที่ได้รับ", "-46453136": "ได้รับ", "-1838027177": "อย่างแรก", "-1182568049": "รับรายการในลิสต์", From b134c888eecbda9424540bc05509837821d5089f Mon Sep 17 00:00:00 2001 From: Sandeep Rajput <90243468+sandeep-deriv@users.noreply.github.com> Date: Sat, 7 Jan 2023 23:55:26 +0800 Subject: [PATCH 05/84] fix: summary panel flickering (#7321) --- packages/bot-skeleton/src/scratch/dbot.js | 4 ++++ packages/bot-skeleton/src/services/api/api-base.js | 8 +++++++- packages/bot-web-ui/src/stores/app-store.js | 2 +- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/bot-skeleton/src/scratch/dbot.js b/packages/bot-skeleton/src/scratch/dbot.js index 434921ebf073..4df1e4afb380 100644 --- a/packages/bot-skeleton/src/scratch/dbot.js +++ b/packages/bot-skeleton/src/scratch/dbot.js @@ -243,6 +243,10 @@ class DBot { } } + terminateConnection = () => { + api_base.terminate(); + }; + /** * Unselects any selected block before running the bot. */ diff --git a/packages/bot-skeleton/src/services/api/api-base.js b/packages/bot-skeleton/src/services/api/api-base.js index ef12632d5a58..5fa052992ced 100644 --- a/packages/bot-skeleton/src/services/api/api-base.js +++ b/packages/bot-skeleton/src/services/api/api-base.js @@ -14,7 +14,7 @@ class APIBase { init(force_update = false) { if (getLoginId()) { this.toggleRunButton(true); - if (force_update && this.api) this.api.disconnect(); + if (force_update) this.terminate(); this.api = generateDerivApiInstance(); this.initEventListeners(); this.authorizeAndSubscribe(); @@ -24,6 +24,12 @@ class APIBase { } } + terminate() { + // eslint-disable-next-line no-console + console.log('connection terminated'); + if (this.api) this.api.disconnect(); + } + initEventListeners() { if (window) { window.addEventListener('online', this.reconnectIfNotConnected); diff --git a/packages/bot-web-ui/src/stores/app-store.js b/packages/bot-web-ui/src/stores/app-store.js index 2088fa4b7da7..862140f7d1e5 100644 --- a/packages/bot-web-ui/src/stores/app-store.js +++ b/packages/bot-web-ui/src/stores/app-store.js @@ -39,7 +39,7 @@ export default class AppStore { onUnmount() { DBot.terminateBot(); - + DBot.terminateConnection(); if (Blockly.derivWorkspace) { clearInterval(Blockly.derivWorkspace.save_workspace_interval); Blockly.derivWorkspace.dispose(); From cd56d9621c8d8b3f778a862c0c48595e03d741c5 Mon Sep 17 00:00:00 2001 From: Muhammad Hamza <120543468+hamza-deriv@users.noreply.github.com> Date: Mon, 9 Jan 2023 09:49:01 +0800 Subject: [PATCH 06/84] fix: Spacing between lines in 2FA page (#7275) --- .../TwoFactorAuthentication/two-factor-authentication.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/account/src/Sections/Security/TwoFactorAuthentication/two-factor-authentication.jsx b/packages/account/src/Sections/Security/TwoFactorAuthentication/two-factor-authentication.jsx index e178b40218a9..c7f4510d7ca9 100644 --- a/packages/account/src/Sections/Security/TwoFactorAuthentication/two-factor-authentication.jsx +++ b/packages/account/src/Sections/Security/TwoFactorAuthentication/two-factor-authentication.jsx @@ -112,7 +112,7 @@ const TwoFactorAuthentication = ({ {localize('How to set up 2FA for your Deriv account')}
- + Date: Mon, 9 Jan 2023 17:02:42 +0800 Subject: [PATCH 07/84] chore: fix translation issue on acuity modal (#7318) --- .../acuity-download-modal.tsx | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/packages/core/src/App/Containers/AcuityDownloadModal/acuity-download-modal.tsx b/packages/core/src/App/Containers/AcuityDownloadModal/acuity-download-modal.tsx index 693da28b5662..34ac55f91cf4 100644 --- a/packages/core/src/App/Containers/AcuityDownloadModal/acuity-download-modal.tsx +++ b/packages/core/src/App/Containers/AcuityDownloadModal/acuity-download-modal.tsx @@ -64,26 +64,31 @@ const AcuityDownloadModal = ({
- + <0/> - Download the Acuity suite and take advantage of the <1>Macroeconomic Calendar, Market Alerts, Research Terminal, and <1>Signal Centre Trade Ideas without leaving your MT5 terminal.<0/><0/> - This suite is only available for Windows, and is most recommended for financial assets.`} - components={[
, ]} + i18n_default_text="We've partnered with Acuity to give you a suite of intuitive trading tools for MT5 so you can keep track of market events and trends, free of charge!<0/><0/>" + components={[
]} /> + , ]} + /> +
- + + + + , - , Date: Mon, 9 Jan 2023 18:09:45 +0800 Subject: [PATCH 08/84] Revert "fix: summary panel flickering (#7321)" This reverts commit b134c888eecbda9424540bc05509837821d5089f. --- packages/bot-skeleton/src/scratch/dbot.js | 4 ---- packages/bot-skeleton/src/services/api/api-base.js | 8 +------- packages/bot-web-ui/src/stores/app-store.js | 2 +- 3 files changed, 2 insertions(+), 12 deletions(-) diff --git a/packages/bot-skeleton/src/scratch/dbot.js b/packages/bot-skeleton/src/scratch/dbot.js index 4df1e4afb380..434921ebf073 100644 --- a/packages/bot-skeleton/src/scratch/dbot.js +++ b/packages/bot-skeleton/src/scratch/dbot.js @@ -243,10 +243,6 @@ class DBot { } } - terminateConnection = () => { - api_base.terminate(); - }; - /** * Unselects any selected block before running the bot. */ diff --git a/packages/bot-skeleton/src/services/api/api-base.js b/packages/bot-skeleton/src/services/api/api-base.js index 5fa052992ced..ef12632d5a58 100644 --- a/packages/bot-skeleton/src/services/api/api-base.js +++ b/packages/bot-skeleton/src/services/api/api-base.js @@ -14,7 +14,7 @@ class APIBase { init(force_update = false) { if (getLoginId()) { this.toggleRunButton(true); - if (force_update) this.terminate(); + if (force_update && this.api) this.api.disconnect(); this.api = generateDerivApiInstance(); this.initEventListeners(); this.authorizeAndSubscribe(); @@ -24,12 +24,6 @@ class APIBase { } } - terminate() { - // eslint-disable-next-line no-console - console.log('connection terminated'); - if (this.api) this.api.disconnect(); - } - initEventListeners() { if (window) { window.addEventListener('online', this.reconnectIfNotConnected); diff --git a/packages/bot-web-ui/src/stores/app-store.js b/packages/bot-web-ui/src/stores/app-store.js index 862140f7d1e5..2088fa4b7da7 100644 --- a/packages/bot-web-ui/src/stores/app-store.js +++ b/packages/bot-web-ui/src/stores/app-store.js @@ -39,7 +39,7 @@ export default class AppStore { onUnmount() { DBot.terminateBot(); - DBot.terminateConnection(); + if (Blockly.derivWorkspace) { clearInterval(Blockly.derivWorkspace.save_workspace_interval); Blockly.derivWorkspace.dispose(); From 289d0fe144e51c4f3cf7ebdf15d1669c2ab27ac4 Mon Sep 17 00:00:00 2001 From: Carol Sachdeva Date: Mon, 9 Jan 2023 18:09:55 +0800 Subject: [PATCH 09/84] =?UTF-8?q?Revert=20"translations:=20=F0=9F=93=9A=20?= =?UTF-8?q?sync=20translations=20with=20crowdin=20(#7316)"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 37266a2e0317f5d03b8d1dddd943030cf4c17e6d. --- packages/p2p/src/translations/fr.json | 4 +- packages/p2p/src/translations/id.json | 4 +- .../translations/src/translations/it.json | 52 +++++++++---------- .../translations/src/translations/ru.json | 16 +++--- .../translations/src/translations/th.json | 6 +-- 5 files changed, 41 insertions(+), 41 deletions(-) diff --git a/packages/p2p/src/translations/fr.json b/packages/p2p/src/translations/fr.json index 377fe2a81fef..e4022ee5e8ce 100644 --- a/packages/p2p/src/translations/fr.json +++ b/packages/p2p/src/translations/fr.json @@ -2,7 +2,7 @@ "6794664": "Annonces qui correspondent à votre solde et à votre limite P2P Deriv.", "19789721": "Personne ne t'a bloqué. Ouaii !", "21103557": "Solde P2P dérivé = dépôts qui ne peuvent pas être annulés (virements bancaires, etc.) + une partie des dépôts qui peuvent être annulés (paiements par carte de crédit, etc.)", - "24711354": "Total des ordres <0>30j | <1>tous", + "24711354": "Total des commandes <0>30j | <1>à vie", "47573834": "Taux fixe (1 {{account_currency}})", "50672601": "Acheté", "51881712": "Vous avez déjà une annonce avec le même taux de change pour cette paire de devises et ce type d'ordre.

Veuillez définir un taux différent pour votre annonce.", @@ -307,7 +307,7 @@ "-2059312414": "Détails de l'annonce", "-1769584466": "Statistiques", "-2090878601": "Limite journalière", - "-130547447": "Volume des trades <0>30d | <1>tous", + "-130547447": "Volume des trades <0>30d | <1>à vie", "-1792280476": "Choisissez votre mode de paiement", "-293182503": "Annuler l'ajout de ce mode de paiement ?", "-1850127397": "Si vous choisissez d'annuler, les données que vous avez saisies seront perdues.", diff --git a/packages/p2p/src/translations/id.json b/packages/p2p/src/translations/id.json index fadb811baa60..647a3c20d4a8 100644 --- a/packages/p2p/src/translations/id.json +++ b/packages/p2p/src/translations/id.json @@ -2,7 +2,7 @@ "6794664": "Iklan yang sesuai dengan saldo dan batas P2P Deriv Anda.", "19789721": "Tidak ada yang memblokir Anda. Yay!", "21103557": "Saldo Deriv P2P = deposit yang tidak dapat dibatalkan (melalui tranfer bank, dsb) + sejumlah deposit yang mungkin dapat dibatalkan (melalui kartu kredit, dsb)", - "24711354": "Total order <0>30hari | <1>semua", + "24711354": "Total order <0>30hari | <1>seumur hidup", "47573834": "Harga tetap (1 {{account_currency}})", "50672601": "Membeli", "51881712": "Anda sudah membuat iklan dengan nilai tukar yang sama untuk pasangan mata uang dan jenis order.

Mohon pilih nilai tukar lain untuk iklan Anda.", @@ -307,7 +307,7 @@ "-2059312414": "Detail iklan", "-1769584466": "Statistik", "-2090878601": "Batas harian", - "-130547447": "Transaksi <0>30 hari | <1>semua", + "-130547447": "Volume transaksi <0>30 hari | <1>seumur hidup", "-1792280476": "Pilih metode pembayaran Anda", "-293182503": "Batalkan penambahan metode pembayaran ini?", "-1850127397": "Jika Anda memilih untuk membatalkan, detail yang Anda masukkan akan hilang.", diff --git a/packages/translations/src/translations/it.json b/packages/translations/src/translations/it.json index 4b387ac0744b..b3d410f48790 100644 --- a/packages/translations/src/translations/it.json +++ b/packages/translations/src/translations/it.json @@ -245,7 +245,7 @@ "327534692": "Il valore di durata non è consentito. Per avviare il bot, inserire {{min}}.", "328539132": "Ripete le istruzioni ad esso relative per un numero specifico di volte", "329404045": "<0>Passa al conto reale<1> per creare un conto {{account_title}} {{platform}}.", - "332886946": "<1>Hai bisogno di aiuto per usare Acuity? <0/>Consulta questa <2>guida utente.", + "332886946": "<1>Hai bisogno di aiuto per usare Acuity? <0/>Consulta questa <2>guida per l'utente.", "333456603": "Limiti per i prelievi", "334680754": "Passa al tuo conto reale per creare un conto Deriv MT5", "334942497": "Tempo di acquista", @@ -517,7 +517,7 @@ "665089217": "Invia <0>il documenti di verifica dell'identità per autenticare il tuo conto e accedere alla cassa.", "665777772": "XLM/USD", "665872465": "Nell'esempio sottostante, è stato selezionato il prezzo di apertura, che viene poi assegnato a una variabile chiamata \"op\".", - "666724936": "Inserisci un numero ID valido.", + "666724936": "Inserisci un numero di ID valido.", "668344562": "Sintetici, FX maggiori (lotti standard/micro), FX minori, panieri di indici, materie prime e criptovalute", "672008428": "ZEC/USD", "673915530": "Giurisdizione e scelta delle legge applicabile", @@ -710,7 +710,7 @@ "918447723": "Reale", "920125517": "Aggiungi conto demo", "921901739": "- i dati del conto bancario collegato al tuo conto", - "924046954": "Carica un documento che mostri il tuo nome e il numero di conto bancario o le informazioni del conto.", + "924046954": "Carica un documento che mostri il tuo nome e il numero di conto bancario o i dettagli del conto.", "926813068": "Fisso/variabile", "929608744": "Non puoi effettuare prelievi", "930346117": "Le lettere maiuscole non sono di grande aiuto", @@ -778,7 +778,7 @@ "1006664890": "Silenzioso", "1009032439": "Sempre", "1010198306": "Questo blocco crea una lista con stringhe e numeri.", - "1010337648": "Non siamo stati in grado di verificare il documento a verifica della proprietà.", + "1010337648": "Non siamo stati in grado di verificare la tua prova di proprietà.", "1012102263": "Non potrai accedere al tuo conto fino a questa data (massimo 6 settimane da oggi).", "1015201500": "Stabilisci le opzioni di trading come durata e puntata.", "1016220824": "Devi passare a un conto reale per usare questa opzione. <0/>Per farlo, seleziona un conto reale da <1>Cambia conto.", @@ -855,7 +855,7 @@ "1086118495": "Hub per i trader", "1088138125": "Tick {{current_tick}} - ", "1089085289": "Numero di telefono", - "1096078516": "Verificheremo i documenti e ti aggiorneremo sullo stato della procedura entro 3 giorni.", + "1096078516": "Analizzeremo i documenti e ti aggiorneremo sullo stato entro 3 giorni.", "1096175323": "Occorre un conto Deriv", "1098147569": "Acquistare materie prime o azioni di una società.", "1098622295": "\"i\" inizia con il valore 1, e aumenta di 2 a ogni interazione. La ripetizione si ripete fino a quando \"i\" raggiunge il valore di 12, dopodiché termina.", @@ -972,7 +972,7 @@ "1232353969": "0-5 operazioni negli ultimi 12 mesi", "1233300532": "Payout", "1234292259": "Fonte di ricchezza", - "1234764730": "Carica uno screenshot del tuo nome e indirizzo email dalla sezione delle informazioni personali.", + "1234764730": "Carica uno screenshot del tuo nome e indirizzo email dalla sezione dei dettagli personali.", "1235426525": "50%", "1237330017": "Pensionato", "1238311538": "Amministratore", @@ -1234,7 +1234,7 @@ "1540585098": "Rifiuta", "1541969455": "Entrambi", "1544642951": "Selezionando \"Solo ascendente\", ottieni il payout se tick consecutivi superano successivamente il punto di entrata. Non ottieni alcun payout se qualsiasi tick è minore o uguale a uno dei tick precedenti.", - "1547148381": "Le dimensioni del file sono troppo grandi (consentiti solo fino a 8MB). Carica un altro file.", + "1547148381": "Il file è troppo grande (sono consentiti solo fino a 8MB). Carica un altro file.", "1548765374": "La verifica del numero di documento non è andata a buon fine", "1549098835": "Totale prelievo", "1551172020": "Paniere AUD", @@ -1332,7 +1332,7 @@ "1675030608": "Per creare questo conto, abbiamo bisogno prima che tu invii nuovamente la prova dell'indirizzo.", "1677027187": "Forex", "1677990284": "Le mie app", - "1680666439": "Carica l'estratto conto bancario con il tuo nome, il numero di conto e la cronologia delle transazioni.", + "1680666439": "Carica lo estratto conto bancario con il tuo nome, il numero di conto e la cronologia delle transazioni.", "1682409128": "Strategia senza nome", "1682636566": "Invia di nuovo e-mail a", "1683963454": "Il contratto verrà chiuso automaticamente al successivo prezzo disponibile dell'asset il {{date}} alle {{timestamp}}.", @@ -1367,7 +1367,7 @@ "1723398114": "Una recente bolletta delle utenze (ad es. elettricità, acqua, gas, telefono o internet)", "1723589564": "Rappresenta il numero massimo di contratti in essere nel tuo portafoglio. Ogni riga presente sul tuo portafoglio vale una posizione aperta. Una volta raggiunto il valore massimo, non potrai aprire nuove posizioni senza prima chiudere una posizione esistente.", "1724696797": "È possibile avere un solo conto fiat.", - "1725958461": "Numero del conto", + "1725958461": "Numero di conto", "1726472773": "Funzione che non restituisce un valore", "1726565314": "Chiudi il conto", "1727681395": "Totale asset attivi nei conti demo Deriv e {{platform_name_mt5}}.", @@ -1433,7 +1433,7 @@ "1791971912": "Recente", "1793913365": "Per depositare denaro, passa al conto {{currency_symbol}}.", "1794815502": "Scarica la cronologia delle tue operazioni.", - "1796787905": "Carica il/i seguente/i documento/i.", + "1796787905": "Carica il/i documento/i seguente/i.", "1798943788": "Puoi solo effettuare depositi.", "1801093206": "Ottieni l'elenco candele", "1801927731": "Conti {{platform_name_dxtrade}}", @@ -1610,7 +1610,7 @@ "1988153223": "Indirizzo e-mail", "1988302483": "Take profit:", "1988601220": "Valore della durata", - "1990331072": "Documento a verifica della proprietà", + "1990331072": "Prova di proprietà", "1990735316": "Aumento pari a", "1991448657": "Non conosci il tuo numero di identificazione fiscale? Clicca <0>qui per saperne di più.", "1991524207": "Indice Jump 100", @@ -1656,7 +1656,7 @@ "2037665157": "Espandi tutti i blocchi", "2037906477": "ottieni sotto elenco da #", "2042050260": "- Prezzo d'acquisto: il prezzo d'acquisto (puntata) del contratto", - "2042115724": "Carica uno screenshot del tuo conto e della pagina delle informazioni personali con il tuo nome, numero di conto, numero di telefono e indirizzo email.", + "2042115724": "Carica uno screenshot del tuo conto e della pagina dei dettagli personali con il tuo nome, numero di conto, numero di telefono e indirizzo email.", "2042778835": "La presente politica sui reclami potrebbe cambiare nel tempo, e si applica ai conti registrati con {{legal_entity_name}}.", "2044086432": "Quello di chiusura è l'ultimo tick entro l'orario di termine. Se selezioni un orario di termine preciso, quest'ultimo sarà l'orario selezionato.", "2046273837": "Ultimo tick", @@ -1702,7 +1702,7 @@ "2096456845": "Data di nascita*", "2097170986": "Tether (Omni)", "2097381850": "Calcola la linea della Media mobile semplice da un elenco con un periodo", - "2097932389": "Carica 2 schermate separate dalla pagina delle informazioni personali e dalla pagina del conto tramite la pagina <0>https://app.astropay.com/profile", + "2097932389": "Carica 2 schermate separate dalla pagina dei dettagli personali e dalla pagina del conto tramite <0>https://app.astropay.com/profile", "2100713124": "conto", "2101972779": "Utilizzando un elenco di tick, ripropone l'esempio precedente.", "2102572780": "Il codice deve comprendere 6 caratteri.", @@ -1821,7 +1821,7 @@ "-922751756": "Meno di un anno", "-542986255": "Nessuna", "-1337206552": "Secondo le tue conoscenze, il trading con i CFD ti consente di", - "-456863190": "Metti una posizione sul movimento del prezzo di un asset il cui risultato è un rendimento fisso o nullo.", + "-456863190": "Metti una posizione sul movimento del prezzo di un asset il cui risultato è un rendimento fisso o nulla.", "-1314683258": "Effettuare un investimento a lungo termine per un profitto garantito.", "-1546090184": "Come influisce la leva sul trading di CFD?", "-1636427115": "La leva finanziaria ti aiuta a mitigare il rischio.", @@ -1939,13 +1939,13 @@ "-1030759620": "Funzionari governativi", "-1196936955": "Carica uno screenshot del tuo nome e indirizzo email dalla sezione delle informazioni personali.", "-1286823855": "Carica l'estratto conto della bolletta del cellulare con il tuo nome e numero di telefono.", - "-1309548471": "Carica l'estratto conto bancario con il tuo nome e le informazioni del conto.", - "-1410396115": "Carica una foto che mostri il tuo nome e le prime sei e le ultime quattro cifre del numero della tua carta. Se la carta non riporta il tuo nome, carica l'estratto conto bancario con il tuo nome e il numero della carta nella cronologia delle transazioni.", - "-3805155": "Carica uno screenshot di una delle seguenti informazioni per elaborare la transazione:", + "-1309548471": "Carica il tuo estratto conto bancario con il tuo nome e i dettagli del conto.", + "-1410396115": "Carica una foto che mostri il tuo nome e le prime sei e ultime quattro cifre del numero della tua carta. Se la carta non riporta il tuo nome, carica l'estratto conto bancario con il tuo nome e il numero della carta nella cronologia delle transazioni.", + "-3805155": "Carica uno screenshot di uno dei seguenti elementi per elaborare la transazione:", "-1523487566": "- la sezione del profilo del tuo conto sul sito web", "-613062596": "- la pagina delle informazioni sul conto sull'app", "-1718304498": "ID utente", - "-609424336": "Carica uno screenshot del tuo nome, numero di conto e indirizzo email dalla sezione delle informazioni personali dell'app o della sezione del profilo del tuo conto sul sito web.", + "-609424336": "Carica uno screenshot del tuo nome, numero di conto e indirizzo email dalla sezione dei dettagli personali dell'app o della sezione del profilo del tuo conto sul sito web.", "-1954436643": "Carica uno screenshot del tuo nome utente nella pagina delle informazioni generali all'<0>indirizzo https://onlinenaira.com/members/index.htm", "-79853954": "Carica uno screenshot del tuo numero di conto e del numero di telefono nella pagina del conto bancario/portafoglio mobile all'<0>indirizzo https://onlinenaira.com/members/bank.htm", "-1192882870": "Carica uno screenshot del tuo nome e del tuo numero di conto dalla sezione dei dettagli personali.", @@ -2039,10 +2039,10 @@ "-1725454783": "Non riuscito", "-839094775": "Indietro", "-856213726": "Dovrai inoltre consegnare un documento di verifica dell'identità.", - "-987011273": "Il documento a verifica della proprietà non è richiesto.", - "-808299796": "Al momento non è necessario presentare un documento a verifica della proprietà. Ti informeremo se in futuro sarà richiesto.", - "-179726573": "Abbiamo ricevuto il tuo documento a verifica della proprietà.", - "-813779897": "La verifica della proprietà è andata a buon fine.", + "-987011273": "La tua prova di proprietà non è richiesta.", + "-808299796": "Al momento non è necessario presentare una prova di proprietà. Ti informeremo se in futuro sarà richiesta una prova della proprietà.", + "-179726573": "Abbiamo ricevuto la tua prova di proprietà.", + "-813779897": "La verifica della proprietà è stata superata.", "-1389323399": "Devi inserire {{min_number}}-{{max_number}} caratteri.", "-1313806160": "Richiedi una nuova password e controlla di aver ricevuto un'e-mail con il nuovo token.", "-329713179": "Ok", @@ -2377,7 +2377,7 @@ "-451858550": "Facendo click su \"Continua\" verrai reindirizzato a {{ service }}, un fornitore di servizi di pagamento esterno. {{ website_name }} declina qualsiasi responsabilità per i contenuti o i servizi forniti da {{ service }}. Se riscontri problemi relativi ai servizi di {{ service }}, contatta direttamente {{ service }}.", "-2005265642": "Fiat onramp è un servizio di cassa che permette di convertire valute fiat in criptovalute per ricaricare i conti per criptovalute di Deriv. Qui sono elencati gli scambi di criptovalute di parti terze; è necessario creare un conto apposito per utilizzare i loro servizi.", "-1593063457": "Seleziona strumento di pagamento", - "-953082600": "Alcuni metodi di pagamento possono non essere elencati qui, anche se gli agenti di pagamento potrebbero comunque offrirli. Se non riesci a trovare il tuo metodo preferito, contatta direttamente gli agenti di pagamento per ulteriori verifiche.", + "-953082600": "Alcuni metodi di pagamento potrebbero non essere elencati qui, ma gli agenti di pagamento potrebbero comunque offrirli. Se non riesci a trovare il tuo metodo preferito, contatta direttamente gli agenti di pagamento per verificare ulteriormente.", "-2004264970": "L'indirizzo di portafoglio deve comprendere dai 25 ai 64 caratteri.", "-1707299138": "L'indirizzo di portafoglio {{currency_symbol}}", "-38063175": "Portafoglio in {{account_text}}", @@ -2767,8 +2767,8 @@ "-1719731099": "Grazie all'autenticazione a due fattori, il conto è protetto sia dalla password che dal telefono: in questo modo solo tu puoi accedere al conto anche se qualcuno conosce la password.", "-2087822170": "Sei offline", "-1669693571": "Verifica la tua connessione.", - "-1706642239": "<1>È richiesto <0>un documento a verifica della proprietà", - "-553262593": "<0><1>Il tuo conto è attualmente bloccato<2><3>Carica il documento a verifica della <4>proprietà per sbloccarlo. <5>", + "-1706642239": "<1>È richiesta <0>una prova di proprietà", + "-553262593": "<0><1>Il tuo conto è attualmente bloccato<2><3>Carica la prova di <4>proprietà per sbloccare il tuo conto. <5>", "-1834929362": "Carica il documento", "-1043638404": "<0>Verifica della proprietà <1>non riuscita", "-1766760306": "<0><1>Carica il documento <2>con i dati corretti.<3>", @@ -2955,7 +2955,7 @@ "-1300381594": "Ottieni gli strumenti di trading Acuity", "-860609405": "Password", "-742647506": "Trasferisci fondi", - "-1972393174": "Fai trading con CFD sui nostri sintetici, panieri e sugli FX derivati.", + "-1972393174": "Fai trading con CFD sui nostri sintetici, sui panieri e sugli FX derivati.", "-1357917360": "Terminale web", "-1454896285": "L'app per Desktop di MT5 non è supportata da Windows XP, Windows 2003 e Windows Vista.", "-810388996": "Scarica l'app mobile Deriv X", diff --git a/packages/translations/src/translations/ru.json b/packages/translations/src/translations/ru.json index 6d0d7f372f9c..49d90352585e 100644 --- a/packages/translations/src/translations/ru.json +++ b/packages/translations/src/translations/ru.json @@ -566,7 +566,7 @@ "724203548": "Вы можете отправить жалобу на платформу <0>онлайн-урегулирования споров (ODR) Европейской Комиссии. Это не относится к клиентам из Великобритании.", "728042840": "Чтобы продолжить торговать у нас, пожалуйста, подтвердите свое место жительства.", "728824018": "Испанский индекс", - "729651741": "Выберите фото", + "729651741": "Выберите фотографию", "730473724": "Этот блок выполняет логическую операцию «И» или «ИЛИ» с заданными значениями.", "731382582": "BNB/USD", "734390964": "Недостаточно средств на счете", @@ -709,7 +709,7 @@ "915735109": "Вернуться на {{platform_name}}", "918447723": "Реальный", "920125517": "Добавить демо-счет", - "921901739": "- данные банковского счета, привязанного к вашему счету", + "921901739": "- данные вашего банковского счета, привязанного к вашему счету", "924046954": "Загрузите документ с вашим именем и номером банковского счета или реквизитами счета.", "926813068": "Фиксированный/переменный", "929608744": "Вы не можете выводить средства", @@ -855,7 +855,7 @@ "1086118495": "Центр трейдера", "1088138125": "Тик {{current_tick}} - ", "1089085289": "Номер мобильного телефона", - "1096078516": "Мы рассмотрим ваши документы и уведомим вас об их статусе в течение 3 дней.", + "1096078516": "Мы рассмотрим ваши документы и уведомим вас о их статусе в течение 3 дней.", "1096175323": "Вам понадобится счет Deriv", "1098147569": "Приобретайте товары или акции компании.", "1098622295": "«i» начинается со значения 1 и увеличивается на 2 в каждом повторении. Цикл будет повторяться до тех пор, пока «i» не достигнет значения 12, и затем цикл будет прерван.", @@ -946,7 +946,7 @@ "1201773643": "числовой", "1203297580": "Этот блок отправляет сообщение в Telegram-канал.", "1204223111": "В этом примере цены открытия из списка свечей присваиваются переменной с именем \"candle_list\".", - "1206227936": "Как скрыть карту?", + "1206227936": "Как замаскировать карту?", "1206821331": "Вооруженные силы", "1208729868": "Тики", "1208903663": "Неверный ключ", @@ -1192,7 +1192,7 @@ "1481977420": "Помогите нам верифицировать ваш запрос на вывод средств.", "1484336612": "Этот блок используется для завершения или продолжения цикла и может быть размещен в любом месте блока цикла.", "1487086154": "Ваши документы успешно отправлены", - "1488548367": "Загрузить снова", + "1488548367": "Загрузите снова", "1490583127": "DBot пока не готов к использованию на реальных счетах", "1491392301": "<0>Продано за: {{sold_for}}", "1492686447": "Ваш счет MT5 Финансовый STP будет открыт в Deriv (FX) Ltd. Все операции на этом счете регулируются правилами и руководящими принципами Управления финансовых услуг Лабуана (LFSA). Правила и принципы Управления финансовых услуг Лабуана (LFSA) не распространяются ни на один из ваших других счетов, включая счет Deriv.", @@ -1234,7 +1234,7 @@ "1540585098": "Отклонить", "1541969455": "Оба", "1544642951": "Выбрав \"Только вверх\", вы получите выплату, если несколько тиков подряд будут расти по отношению к котировке на входе. Если любой тик покажет снижение или будет равен одному из предыдущих тиков, вы не получите выплату.", - "1547148381": "Файл слишком большой (разрешено не более 8 МБ). Попробуйте другой файл.", + "1547148381": "Этот файл слишком велик (разрешено не более 8 МБ). Пожалуйста, загрузите еще один файл.", "1548765374": "Не удалось верифицировать номер документа", "1549098835": "Общая сумма вывода", "1551172020": "Индекс AUD", @@ -1433,7 +1433,7 @@ "1791971912": "Недавние", "1793913365": "Чтобы внести средства, перейдите на свой счет {{currency_symbol}}.", "1794815502": "Загрузить историю транзакций.", - "1796787905": "Загрузите следующие документы.", + "1796787905": "Пожалуйста, загрузите следующие документы.", "1798943788": "Вы можете делать только депозиты.", "1801093206": "Получить список свечей", "1801927731": "счета {{platform_name_dxtrade}}", @@ -1944,7 +1944,7 @@ "-3805155": "Загрузите скриншот одного из следующих изображений для обработки транзакции:", "-1523487566": "- раздел профиля вашей учетной записи на сайте", "-613062596": "- страница «Информация об учетной записи» в приложении", - "-1718304498": "ID пользователя", + "-1718304498": "Идентификатор пользователя", "-609424336": "Загрузите скриншот своего имени, номера счета и адреса электронной почты из раздела личных данных приложения или раздела профиля своей учетной записи на веб-сайте.", "-1954436643": "Загрузите скриншот своего имени пользователя на странице «Общая информация» по адресу <0>https://onlinenaira.com/members/index.htm", "-79853954": "Загрузите скриншот номера своего счета и номера телефона на странице «Банковский счет/мобильный кошелек» по адресу <0>https://onlinenaira.com/members/bank.htm", diff --git a/packages/translations/src/translations/th.json b/packages/translations/src/translations/th.json index c30b93cfd7fe..b2fb527430ee 100644 --- a/packages/translations/src/translations/th.json +++ b/packages/translations/src/translations/th.json @@ -589,7 +589,7 @@ "759783233": "สําหรับข้อมูลเพิ่มเติมและความช่วยเหลือให้คําปรึกษาและบริการสนับสนุนต่าง โปรดไปที่ <0>begambleaware.org", "760528514": "โปรดทราบว่า การเปลี่ยนค่าของ \"i\" จะไม่เปลี่ยนแปลงค่าของรายการตัวต้นฉบับในลิสต์", "761576760": "ฝากเงินเข้าบัญชีของคุณเพื่อเริ่มทำการซื้อขาย", - "762185380": "<0>เพิ่มทวีผลที่ได้รับ โดย <0>มีความเสี่ยงเพียงเฉพาะ ทุนทรัพย์ที่คุณลงไป", + "762185380": "<0>ได้ผลตอบแทนเพิ่มทวีคูณ โดย <0>เสี่ยงเพียงเฉพาะ สิ่งที่คุณวางเดิมพัน", "762871622": "{{remaining_time}}วินาที", "763019867": "บัญชีเกมของคุณมีกำหนดที่จะถูกปิด", "764366329": "วงเงินในการซื้อขาย", @@ -2888,7 +2888,7 @@ "-895091803": "หากคุณกำลังมองหาสัญญาการซื้อขายส่วนต่าง", "-1447215751": "ไม่แน่ใจ? ลองนี่สิ", "-2338797": "<0>เพิ่มผลตอบแทนสูงสุด โดย <0>เสี่ยงมากกว่า สิ่งที่คุณวางเดิมพัน", - "-1682067341": "รับ <0>ผลที่ได้รับในอัตราคงที่ โดย <0>เสี่ยงเพียง ทุนทรัพย์ที่คุณลงไป", + "-1682067341": "รับ <0>ผลตอบแทนอัตราคงที่ โดย <0>เสี่ยงเพียง สิ่งที่คุณวางเดิมพัน", "-1744351732": "ไม่แน่ใจว่าจะเริ่มต้นที่ไหน?", "-943710774": "นโยบายการร้องเรียนนี้ซึ่งอาจมีการเปลี่ยนแปลงเป็นครั้งคราว มีผลบังคับใช้กับบัญชีของคุณที่ลงทะเบียนกับ {{legal_entity_name}} ซึ่งมีที่อยู่สำนักงานที่จดทะเบียนไว้ที่ First Floor, Millennium House, Victoria Road, Douglas, Isle of Man, IM2 4RW บริษัทนี้ได้รับใบอนุญาตและถูกกำกับควบคุมตามกฎหมายโดย (1) Gambling Supervision Commission ในเกาะไอล์ออฟแมน (ปัจจุบัน <0>ใบอนุญาต ออกเมื่อวันที่ 31 สิงหาคม ค. ศ. 2017) และ (2) Gambling Commission ในสหราชอาณาจักร (<1>ใบอนุญาตเลขที่ 39172)", "-255056078": "นโยบายการร้องเรียนนี้ซึ่งอาจมีการเปลี่ยนแปลงเป็นครั้งคราว มีผลบังคับใช้กับบัญชีของคุณที่ลงทะเบียนกับ {{legal_entity_name}} ซึ่งมีที่อยู่สำนักงานที่จดทะเบียนไว้ที่ Level 3, Triq Dun Karm, Birkirkara, BKR 9033 ประเทศมอลตา บริษัทได้รับใบอนุญาตและถูกกำกับควบคุมตามกฎหมายโดย Malta Gaming Authority ในประเทศมอลตาสำหรับผลิตภัณฑ์การพนันเท่านั้น <0>ใบอนุญาตเลขที่ MGA/B2C/102/2000 และสำหรับลูกค้าที่อาศัยอยู่ในสหราชอาณาจักรโดย UK Gambling Commission (เลขที่บัญชี 39495)", @@ -3216,7 +3216,7 @@ "-313112159": "บล็อกนี้จะคล้ายกับบล็อกด้านบน แต่ต่างกันที่ว่าบล๊อกนี้จะส่งคืนค่ามาอันหนึ่ง โดยค่าที่ส่งคืนนั้นสามารถถูกกำหนดให้กับตัวแปรที่คุณเลือกได้", "-1783320173": "คืนค่าภายในฟังก์ชันก่อนกําหนด", "-1485521724": "การส่งคืนตามเงื่อนไข", - "-1482801393": "ผลที่ได้รับ", + "-1482801393": "ผลตอบแทน", "-46453136": "ได้รับ", "-1838027177": "อย่างแรก", "-1182568049": "รับรายการในลิสต์", From 8a647fc7936479511acf0c0ee43e350531140f05 Mon Sep 17 00:00:00 2001 From: Carol Sachdeva Date: Mon, 9 Jan 2023 18:10:06 +0800 Subject: [PATCH 10/84] =?UTF-8?q?Revert=20"fix:=20dbot=20performance=20iss?= =?UTF-8?q?ue=20--=20unified=20websocket=20connection=20and=20moved?= =?UTF-8?q?=E2=80=A6=20(#7103)"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 1abb7debf6a5a6ad12700e48e621bffbbf3372d1. --- packages/bot-skeleton/package.json | 2 - .../bot-skeleton/src/scratch/dbot-store.js | 8 -- packages/bot-skeleton/src/scratch/dbot.js | 6 +- .../bot-skeleton/src/services/api/api-base.js | 117 ------------------ .../bot-skeleton/src/services/api/appId.js | 16 --- .../src/services/api/ticks_service.js | 48 +++---- .../src/services/tradeEngine/trade/Balance.js | 4 +- .../tradeEngine/trade/OpenContract.js | 14 +-- .../services/tradeEngine/trade/Proposal.js | 8 +- .../services/tradeEngine/trade/Purchase.js | 3 +- .../src/services/tradeEngine/trade/Sell.js | 7 +- .../src/services/tradeEngine/trade/index.js | 28 ++++- .../services/tradeEngine/utils/cliTools.js | 6 +- .../src/services/tradeEngine/utils/helpers.js | 18 +-- .../services/tradeEngine/utils/interpreter.js | 13 +- .../trade-animation/trade-animation.jsx | 10 -- .../bot-web-ui/src/stores/run-panel-store.js | 7 +- 17 files changed, 69 insertions(+), 246 deletions(-) delete mode 100644 packages/bot-skeleton/src/services/api/api-base.js diff --git a/packages/bot-skeleton/package.json b/packages/bot-skeleton/package.json index b19bf02aea06..96becac19d3c 100644 --- a/packages/bot-skeleton/package.json +++ b/packages/bot-skeleton/package.json @@ -46,8 +46,6 @@ "immutable": "^3.8.2", "localforage": "^1.9.0", "lz-string": "^1.4.4", - "mobx": "^6.6.1", - "mobx-react": "^7.5.1", "redux": "^4.0.1", "redux-thunk": "^2.2.0", "scratch-blocks": "0.1.0-prerelease.20200917235131", diff --git a/packages/bot-skeleton/src/scratch/dbot-store.js b/packages/bot-skeleton/src/scratch/dbot-store.js index fb7333342df2..1d951ec9ebc2 100644 --- a/packages/bot-skeleton/src/scratch/dbot-store.js +++ b/packages/bot-skeleton/src/scratch/dbot-store.js @@ -1,6 +1,3 @@ -import { reaction } from 'mobx'; -import { api_base } from '../services/api/api-base'; - class DBotStoreInterface { // TODO here we are suppose to define an interface and implement fields of DBotStore. handleFileChange = () => { @@ -30,11 +27,6 @@ class DBotStore extends DBotStoreInterface { this.handleFileChange = store.handleFileChange; this.startLoading = store.startLoading; this.endLoading = store.endLoading; - - reaction( - () => this.client.loginid, - () => api_base.createNewInstance(this.client.loginid) - ); } static setInstance(store) { diff --git a/packages/bot-skeleton/src/scratch/dbot.js b/packages/bot-skeleton/src/scratch/dbot.js index 434921ebf073..adee21e1bab2 100644 --- a/packages/bot-skeleton/src/scratch/dbot.js +++ b/packages/bot-skeleton/src/scratch/dbot.js @@ -10,7 +10,6 @@ import { observer as globalObserver } from '../utils/observer'; import ApiHelpers from '../services/api/api-helpers'; import Interpreter from '../services/tradeEngine/utils/interpreter'; import { setColors } from './hooks/colours'; -import { api_base } from '../services/api/api-base'; class DBot { constructor() { @@ -98,7 +97,7 @@ class DBot { window.dispatchEvent(new Event('resize')); window.addEventListener('dragover', DBot.handleDragOver); window.addEventListener('drop', e => DBot.handleDropOver(e, handleFileChange)); - api_base.init(); + // disable overflow el_scratch_div.parentNode.style.overflow = 'hidden'; resolve(); @@ -135,7 +134,7 @@ class DBot { } this.interpreter = Interpreter(); - api_base.setIsRunning(true); + this.interpreter.run(code).catch(error => { globalObserver.emit('Error', error); this.stopBot(); @@ -227,7 +226,6 @@ class DBot { * that trade will be completed first to reflect correct contract status in UI. */ stopBot() { - api_base.setIsRunning(false); if (this.interpreter) { this.interpreter.stop(); } diff --git a/packages/bot-skeleton/src/services/api/api-base.js b/packages/bot-skeleton/src/services/api/api-base.js deleted file mode 100644 index ef12632d5a58..000000000000 --- a/packages/bot-skeleton/src/services/api/api-base.js +++ /dev/null @@ -1,117 +0,0 @@ -import { observer as globalObserver } from '../../utils/observer'; -import { generateDerivApiInstance, getLoginId, getToken } from './appId'; - -class APIBase { - api; - token; - account_id; - pip_sizes = {}; - account_info = {}; - is_running = false; - subscriptions = []; - time_interval = null; - - init(force_update = false) { - if (getLoginId()) { - this.toggleRunButton(true); - if (force_update && this.api) this.api.disconnect(); - this.api = generateDerivApiInstance(); - this.initEventListeners(); - this.authorizeAndSubscribe(); - if (this.time_interval) clearInterval(this.time_interval); - this.time_interval = null; - this.getTime(); - } - } - - initEventListeners() { - if (window) { - window.addEventListener('online', this.reconnectIfNotConnected); - window.addEventListener('focus', this.reconnectIfNotConnected); - } - } - - createNewInstance(account_id) { - if (this.account_id !== account_id) { - this.init(true); - } - } - - reconnectIfNotConnected = () => { - // eslint-disable-next-line no-console - console.log('connection state: ', this.api.connection.readyState); - if (this.api.connection.readyState !== 1) { - // eslint-disable-next-line no-console - console.log('Info: Connection to the server was closed, trying to reconnect.'); - this.init(); - } - }; - - authorizeAndSubscribe() { - const { token, account_id } = getToken(); - if (token) { - this.token = token; - this.account_id = account_id; - this.getActiveSymbols(); - this.api - .authorize(this.token) - .then(({ authorize }) => { - this.subscribe(); - this.account_info = authorize; - }) - .catch(e => { - globalObserver.emit('Error', e); - }); - } - } - - subscribe() { - this.api.send({ balance: 1, subscribe: 1 }).catch(e => { - globalObserver.emit('Error', e); - }); - this.api.send({ transaction: 1, subscribe: 1 }).catch(e => { - globalObserver.emit('Error', e); - }); - } - - getActiveSymbols = async () => { - const { active_symbols = [] } = await this.api.send({ active_symbols: 'brief' }).catch(e => { - globalObserver.emit('Error', e); - }); - const pip_sizes = {}; - active_symbols.forEach(({ symbol, pip }) => { - pip_sizes[symbol] = +(+pip).toExponential().substring(3); - }); - this.pip_sizes = pip_sizes; - this.toggleRunButton(false); - }; - - toggleRunButton = toggle => { - const run_button = document.querySelector('#db-animation__run-button'); - if (!run_button) return; - run_button.disabled = toggle; - }; - - setIsRunning(toggle = false) { - this.is_running = toggle; - } - - pushSubscription(subscription) { - this.subscriptions.push(subscription); - } - - clearSubscriptions() { - this.subscriptions.forEach(s => s.unsubscribe()); - this.subscriptions = []; - } - - getTime() { - if (!this.time_interval) { - this.time_interval = setInterval(() => { - this.api.send({ time: 1 }); - }, 30000); - } - } -} - -export const api_base = new APIBase(); diff --git a/packages/bot-skeleton/src/services/api/appId.js b/packages/bot-skeleton/src/services/api/appId.js index e56a9931fbea..ed7417a9d34d 100644 --- a/packages/bot-skeleton/src/services/api/appId.js +++ b/packages/bot-skeleton/src/services/api/appId.js @@ -10,19 +10,3 @@ export const generateDerivApiInstance = () => { }); return deriv_api; }; - -export const getLoginId = () => { - const login_id = localStorage.getItem('active_loginid'); - if (login_id && login_id !== 'null') return login_id; - return null; -}; - -export const getToken = () => { - const active_loginid = getLoginId(); - const client_accounts = JSON.parse(localStorage.getItem('client.accounts')) || undefined; - const active_account = (client_accounts && client_accounts[active_loginid]) || {}; - return { - token: active_account?.token || undefined, - account_id: active_loginid || undefined, - }; -}; diff --git a/packages/bot-skeleton/src/services/api/ticks_service.js b/packages/bot-skeleton/src/services/api/ticks_service.js index 3ca6c3e687bc..2eaf3e8a50ce 100644 --- a/packages/bot-skeleton/src/services/api/ticks_service.js +++ b/packages/bot-skeleton/src/services/api/ticks_service.js @@ -2,7 +2,6 @@ import { Map } from 'immutable'; import { historyToTicks, getLast } from 'binary-utils'; import { doUntilDone, getUUID } from '../tradeEngine/utils/helpers'; import { observer as globalObserver } from '../../utils/observer'; -import { api_base } from './api-base'; const parseTick = tick => ({ epoch: +tick.epoch, @@ -40,7 +39,8 @@ const updateCandles = (candles, ohlc) => { const getType = isCandle => (isCandle ? 'candles' : 'ticks'); export default class TicksService { - constructor() { + constructor(api) { + this.api = api; this.ticks = new Map(); this.candles = new Map(); this.tickListeners = new Map(); @@ -60,13 +60,23 @@ export default class TicksService { if (!this.active_symbols_promise) { this.active_symbols_promise = new Promise(resolve => { - this.pipSizes = api_base.pip_sizes; - resolve(this.pipSizes); + this.getActiveSymbols().then(active_symbols => { + this.pipSizes = active_symbols + .reduce((s, i) => s.set(i.symbol, +(+i.pip).toExponential().substring(3)), new Map()) + .toObject(); + resolve(this.pipSizes); + }); }); } return this.active_symbols_promise; } + getActiveSymbols = async () => { + await this.api.expectResponse('authorize'); + const active_symbols = await this.api.send({ active_symbols: 'brief' }); + return active_symbols.active_symbols; + }; + request(options) { const { symbol, granularity } = options; @@ -79,6 +89,7 @@ export default class TicksService { if (style === 'candles' && this.candles.hasIn([symbol, Number(granularity)])) { return Promise.resolve(this.candles.getIn([symbol, Number(granularity)])); } + return this.requestStream({ ...options, style }); } @@ -152,7 +163,7 @@ export default class TicksService { ...(tickSubscription || []), ]; - Promise.all(subscription.map(id => doUntilDone(() => api_base.api.forget(id)))); + Promise.all(subscription.map(id => doUntilDone(() => this.api.forget(id)))); this.subscriptions = new Map(); } @@ -184,7 +195,7 @@ export default class TicksService { } observe() { - api_base.api.onMessage().subscribe(({ data }) => { + this.api.onMessage().subscribe(({ data }) => { if (data.msg_type === 'tick') { const { tick } = data; const { symbol, id } = tick; @@ -249,7 +260,7 @@ export default class TicksService { style, }; return new Promise((resolve, reject) => { - doUntilDone(() => api_base.api.send(request_object), [], api_base) + doUntilDone(() => this.api.send(request_object)) .then(r => { if (style === 'ticks') { const ticks = historyToTicks(r.history); @@ -267,27 +278,4 @@ export default class TicksService { .catch(reject); }); } - - forget = subscription_id => { - if (subscription_id) { - api_base.api.forget(subscription_id); - } - }; - - unsubscribeFromTicksService() { - if (this.ticks_history_promise) { - const { stringified_options } = this.ticks_history_promise; - const { symbol = '' } = JSON.parse(stringified_options); - if (symbol) { - this.forget(this.subscriptions.getIn(['tick', symbol])); - } - } - if (this.candles_promise) { - const { stringified_options } = this.candles_promise; - const { symbol = '' } = JSON.parse(stringified_options); - if (symbol) { - this.forget(this.subscriptions.getIn(['candle', symbol])); - } - } - } } diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/Balance.js b/packages/bot-skeleton/src/services/tradeEngine/trade/Balance.js index 03a01578c671..19f3aad85318 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/Balance.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/Balance.js @@ -1,14 +1,13 @@ import { getFormattedText } from '@deriv/shared'; import { info } from '../utils/broadcast'; import DBotStore from '../../../scratch/dbot-store'; -import { api_base } from '../../api/api-base'; let balance_string = ''; export default Engine => class Balance extends Engine { observeBalance() { - const subscription = api_base.api.onMessage().subscribe(({ data }) => { + this.api.onMessage().subscribe(({ data }) => { if (data.msg_type === 'balance') { const { balance: { balance: b, currency }, @@ -19,7 +18,6 @@ export default Engine => info({ accountID: this.accountInfo.loginid, balance: balance_string }); } }); - api_base.pushSubscription(subscription); } // eslint-disable-next-line class-methods-use-this diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/OpenContract.js b/packages/bot-skeleton/src/services/tradeEngine/trade/OpenContract.js index 6b007c29e7f6..52c610a5f0a0 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/OpenContract.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/OpenContract.js @@ -3,12 +3,11 @@ import { sell, openContractReceived } from './state/actions'; import { contractStatus, contract as broadcastContract } from '../utils/broadcast'; import { doUntilDone } from '../utils/helpers'; import DBotStore from '../../../scratch/dbot-store'; -import { api_base } from '../../api/api-base'; export default Engine => class OpenContract extends Engine { observeOpenContract() { - const subscription = api_base.api.onMessage().subscribe(({ data }) => { + this.api.onMessage().subscribe(({ data }) => { if (data.msg_type === 'proposal_open_contract') { const contract = data.proposal_open_contract; @@ -42,7 +41,6 @@ export default Engine => } } }); - api_base.pushSubscription(subscription); } waitForAfter() { @@ -53,13 +51,7 @@ export default Engine => subscribeToOpenContract(contract_id = this.contractId) { this.contractId = contract_id; - const request_object = { - proposal_open_contract: 1, - contract_id, - subscribe: 1, - }; - - doUntilDone(() => api_base.api.send(request_object)) + doUntilDone(() => this.api.send({ proposal_open_contract: 1, contract_id, subscribe: 1 })) .then(data => { const { populateConfig } = DBotStore.instance; populateConfig(data.proposal_open_contract); @@ -67,7 +59,7 @@ export default Engine => }) .catch(error => { if (error.error.code !== 'AlreadySubscribed') { - doUntilDone(() => api_base.api.send(request_object)).then( + doUntilDone(() => this.api.send({ proposal_open_contract: 1, contract_id, subscribe: 1 })).then( response => (this.openContractId = response.proposal_open_contract.id) ); } diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/Proposal.js b/packages/bot-skeleton/src/services/tradeEngine/trade/Proposal.js index 515d40b9421a..17e7914b298a 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/Proposal.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/Proposal.js @@ -1,7 +1,6 @@ import { localize } from '@deriv/translations'; import { proposalsReady, clearProposals } from './state/actions'; import { tradeOptionToProposal, doUntilDone } from '../utils/helpers'; -import { api_base } from '../../api/api-base'; export default Engine => class Proposal extends Engine { @@ -70,7 +69,7 @@ export default Engine => Promise.all( this.proposal_templates.map(proposal => { - doUntilDone(() => api_base.api.send(proposal)).catch(error => { + doUntilDone(() => this.api.send(proposal)).catch(error => { // We intercept ContractBuyValidationError as user may have specified // e.g. a DIGITUNDER 0 or DIGITOVER 9, while one proposal may be invalid // the other is valid. We will error on Purchase rather than here. @@ -95,7 +94,7 @@ export default Engine => } observeProposals() { - const subscription = api_base.api.onMessage().subscribe(response => { + this.api.onMessage().subscribe(response => { if (response.data.msg_type === 'proposal') { const { passthrough, proposal } = response.data; if ( @@ -109,7 +108,6 @@ export default Engine => } } }); - api_base.pushSubscription(subscription); } unsubscribeProposals() { @@ -130,7 +128,7 @@ export default Engine => return Promise.resolve(); } - return doUntilDone(() => api_base.api.forget(proposal.id)).then(() => { + return doUntilDone(() => this.api.forget(proposal.id)).then(() => { removeForgetProposalById(proposal.id); }); }) diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/Purchase.js b/packages/bot-skeleton/src/services/tradeEngine/trade/Purchase.js index cd3730f840eb..800c54201f93 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/Purchase.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/Purchase.js @@ -3,7 +3,6 @@ import { BEFORE_PURCHASE } from './state/constants'; import { contractStatus, info, log } from '../utils/broadcast'; import { getUUID, recoverFromError, doUntilDone } from '../utils/helpers'; import { log_types } from '../../../constants/messages'; -import { api_base } from '../../api/api-base'; let delayIndex = 0; let purchase_reference; @@ -42,7 +41,7 @@ export default Engine => buy_price: buy.buy_price, }); }; - const action = () => api_base.api.send({ buy: id, price: askPrice }); + const action = () => this.api.send({ buy: id, price: askPrice }); this.isSold = false; contractStatus({ id: 'contract.purchase_sent', diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/Sell.js b/packages/bot-skeleton/src/services/tradeEngine/trade/Sell.js index d2dc6bb7a3dc..203cb9d6bdee 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/Sell.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/Sell.js @@ -3,7 +3,6 @@ import { contractStatus, log } from '../utils/broadcast'; import { recoverFromError, doUntilDone } from '../utils/helpers'; import { log_types } from '../../../constants/messages'; import { observer as globalObserver } from '../../../utils/observer'; -import { api_base } from '../../api/api-base'; export default Engine => class Sell extends Engine { @@ -43,9 +42,9 @@ export default Engine => const contract_id = this.contractId; const sellContractAndGetContractInfo = () => { - return doUntilDone(() => api_base.api.send({ sell: contract_id, price: 0 })) + return doUntilDone(() => this.api.send({ sell: contract_id, price: 0 })) .then(sell_response => { - doUntilDone(() => api_base.api.send({ proposal_open_contract: 1, contract_id })).then( + doUntilDone(() => this.api.send({ proposal_open_contract: 1, contract_id })).then( () => sell_response ); }) @@ -71,7 +70,7 @@ export default Engine => // For every other error, check whether the contract is not actually already sold. return doUntilDone(() => - api_base.api.send({ + this.api.send({ proposal_open_contract: 1, contract_id, }) diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/index.js b/packages/bot-skeleton/src/services/tradeEngine/trade/index.js index a165ea37f8dc..145bfcf67219 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/index.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/index.js @@ -15,7 +15,6 @@ import { doUntilDone } from '../utils/helpers'; import { expectInitArg } from '../utils/sanitize'; import { createError } from '../../../utils/error'; import { observer as globalObserver } from '../../../utils/observer'; -import { api_base } from '../../api/api-base'; const watchBefore = store => watchScope({ @@ -65,6 +64,7 @@ const watchScope = ({ store, stopScope, passScope, passFlag }) => { export default class TradeEngine extends Balance(Purchase(Sell(OpenContract(Proposal(Ticks(Total(class {}))))))) { constructor($scope) { super(); + this.api = $scope.api; this.observer = $scope.observer; this.$scope = $scope; this.observe(); @@ -106,13 +106,17 @@ export default class TradeEngine extends Balance(Purchase(Sell(OpenContract(Prop if (this.token === token) { return Promise.resolve(); } + + doUntilDone(() => this.api.authorize(token)).catch(e => { + this.$scope.observer.emit('Error', e); + }); return new Promise(resolve => { // Try to recover from a situation where API doesn't give us a correct response on // "proposal_open_contract" which would make the bot run forever. When there's a "sell" // event, wait a couple seconds for the API to give us the correct "proposal_open_contract" // response, if there's none after x seconds. Send an explicit request, which _should_ // solve the issue. This is a backup! - api_base.api.onMessage().subscribe(({ data }) => { + this.api.onMessage().subscribe(({ data }) => { if (data.msg_type === 'transaction' && data.transaction.action === 'sell') { this.transaction_recovery_timeout = setTimeout(() => { const { contract } = this.data; @@ -120,14 +124,26 @@ export default class TradeEngine extends Balance(Purchase(Sell(OpenContract(Prop const is_open_contract = contract.status === 'open'; if (is_same_contract && is_open_contract) { doUntilDone(() => { - api_base.api.send({ proposal_open_contract: 1, contract_id: contract.contract_id }); + this.api.send({ proposal_open_contract: 1, contract_id: contract.contract_id }); }, ['PriceMoved']); } }, 1500); } - this.accountInfo = api_base.account_info; - this.token = api_base.token; - resolve(); + if (data.msg_type === 'authorize') { + this.accountInfo = data; + this.token = token; + + // Only subscribe to balance in browser, not for tests. + if (document) { + doUntilDone(() => this.api.send({ balance: 1, subscribe: 1 })).then(r => { + this.balance = Number(r.balance.balance); + resolve(); + }); + } else { + resolve(); + } + doUntilDone(() => this.api.send({ transaction: 1, subscribe: 1 })); + } }); }); } diff --git a/packages/bot-skeleton/src/services/tradeEngine/utils/cliTools.js b/packages/bot-skeleton/src/services/tradeEngine/utils/cliTools.js index 63cb063a7dc2..bac5c53d459d 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/utils/cliTools.js +++ b/packages/bot-skeleton/src/services/tradeEngine/utils/cliTools.js @@ -1,9 +1,11 @@ import TicksService from '../../api/ticks_service'; import Observer from '../../../utils/observer'; +import { generateDerivApiInstance } from '../../api/appId'; export const createScope = () => { const observer = new Observer(); - const ticksService = new TicksService(); + const api = generateDerivApiInstance(); + const ticksService = new TicksService(api); const stopped = false; - return { observer, ticksService, stopped }; + return { observer, api, ticksService, stopped }; }; diff --git a/packages/bot-skeleton/src/services/tradeEngine/utils/helpers.js b/packages/bot-skeleton/src/services/tradeEngine/utils/helpers.js index 8a996f9ec836..ecb02e769017 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/utils/helpers.js +++ b/packages/bot-skeleton/src/services/tradeEngine/utils/helpers.js @@ -130,17 +130,13 @@ export const shouldThrowError = (error, errors_to_ignore = []) => { return !is_ignorable_error; }; -export const recoverFromError = (promiseFn, recoverFn, errors_to_ignore, delay_index, api_base) => { +export const recoverFromError = (promiseFn, recoverFn, errors_to_ignore, delay_index) => { return new Promise((resolve, reject) => { const promise = promiseFn(); if (promise) { promise.then(resolve).catch(error => { - /** - * if bot is not running there is no point of recovering from error - * `!api_base.is_running` will check the bot status if it is not running it will kick out the control from loop - */ - if (shouldThrowError(error, errors_to_ignore) || (api_base && !api_base.is_running)) { + if (shouldThrowError(error, errors_to_ignore)) { reject(error); return; } @@ -176,13 +172,7 @@ export const recoverFromError = (promiseFn, recoverFn, errors_to_ignore, delay_i }); }; -/** - * @param {*} promiseFn api call - it could be api call or subscription - * @param {*} errors_to_ignore list of errors to ignore - * @param {*} api_base instance of APIBase class to check if the bot is running or not - * @returns a new promise - */ -export const doUntilDone = (promiseFn, errors_to_ignore, api_base) => { +export const doUntilDone = (promiseFn, errors_to_ignore) => { let delay_index = 1; return new Promise((resolve, reject) => { @@ -192,7 +182,7 @@ export const doUntilDone = (promiseFn, errors_to_ignore, api_base) => { }; const repeatFn = () => { - recoverFromError(promiseFn, recoverFn, errors_to_ignore, delay_index, api_base).then(resolve).catch(reject); + recoverFromError(promiseFn, recoverFn, errors_to_ignore, delay_index).then(resolve).catch(reject); }; repeatFn(); diff --git a/packages/bot-skeleton/src/services/tradeEngine/utils/interpreter.js b/packages/bot-skeleton/src/services/tradeEngine/utils/interpreter.js index 788d172dbe39..d43cb67f01d0 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/utils/interpreter.js +++ b/packages/bot-skeleton/src/services/tradeEngine/utils/interpreter.js @@ -4,7 +4,6 @@ import { createScope } from './cliTools'; import Interface from '../Interface'; import { unrecoverable_errors } from '../../../constants/messages'; import { observer as globalObserver } from '../../../utils/observer'; -import { api_base } from '../../api/api-base'; JSInterpreter.prototype.takeStateSnapshot = function () { const newStateStack = cloneThorough(this.stateStack, undefined, undefined, undefined, true); @@ -181,14 +180,16 @@ const Interpreter = () => { } function terminateSession() { + const { connection } = $scope.api; + if (connection.readyState === 0) { + connection.addEventListener('open', () => connection.close()); + } else if (connection.readyState === 1) { + connection.close(); + } + $scope.stopped = true; $scope.is_error_triggered = false; globalObserver.emit('bot.stop'); - const { ticksService } = $scope; - // Unsubscribe previous ticks_history subscription - ticksService.unsubscribeFromTicksService(); - // Unsubscribe the subscriptions from Proposal, Balance and OpenContract - api_base.clearSubscriptions(); } function run(code) { diff --git a/packages/bot-web-ui/src/components/trade-animation/trade-animation.jsx b/packages/bot-web-ui/src/components/trade-animation/trade-animation.jsx index de40ff31ad8c..738ed174987a 100644 --- a/packages/bot-web-ui/src/components/trade-animation/trade-animation.jsx +++ b/packages/bot-web-ui/src/components/trade-animation/trade-animation.jsx @@ -85,16 +85,9 @@ const TradeAnimation = ({ info_direction, toggleAnimationInfoModal, cashier_validation, - performSelfExclusionCheck, }) => { const [is_button_disabled, updateIsButtonDisabled] = React.useState(false); const is_unavailable_for_payment_agent = cashier_validation?.includes('WithdrawServiceUnavailableForPA'); - - // perform self-exclusion checks which will be stored under the self-exclusion-store - React.useEffect(() => { - performSelfExclusionCheck(); - }, []); - React.useEffect(() => { if (is_button_disabled) { setTimeout(() => { @@ -102,7 +95,6 @@ const TradeAnimation = ({ }, 1000); } }, [is_button_disabled]); - const status_classes = ['', '', '']; let progress_status = contract_stage - @@ -182,7 +174,6 @@ TradeAnimation.propTypes = { is_stop_button_disabled: PropTypes.bool, onRunButtonClick: PropTypes.func, onStopButtonClick: PropTypes.func, - performSelfExclusionCheck: PropTypes.func, profit: PropTypes.number, should_show_overlay: PropTypes.bool, }; @@ -196,7 +187,6 @@ export default connect(({ summary_card, run_panel, toolbar, ui, client }) => ({ is_stop_button_disabled: run_panel.is_stop_button_disabled, onRunButtonClick: run_panel.onRunButtonClick, onStopButtonClick: run_panel.onStopButtonClick, - performSelfExclusionCheck: run_panel.performSelfExclusionCheck, profit: summary_card.profit, should_show_overlay: run_panel.should_show_overlay, toggleAnimationInfoModal: toolbar.toggleAnimationInfoModal, diff --git a/packages/bot-web-ui/src/stores/run-panel-store.js b/packages/bot-web-ui/src/stores/run-panel-store.js index c35b2390467e..c0144b8e494a 100644 --- a/packages/bot-web-ui/src/stores/run-panel-store.js +++ b/packages/bot-web-ui/src/stores/run-panel-store.js @@ -32,7 +32,6 @@ export default class RunPanelStore { toggleDrawer: action.bound, setActiveTabIndex: action.bound, onCloseDialog: action.bound, - performSelfExclusionCheck: action.bound, showStopMultiplierContractDialog: action.bound, showLoginDialog: action.bound, showRealAccountDialog: action.bound, @@ -131,11 +130,6 @@ export default class RunPanelStore { ); } - async performSelfExclusionCheck() { - const { self_exclusion } = this.root_store; - await self_exclusion.checkRestriction(); - } - async onRunButtonClick() { const { core, summary_card, route_prompt_dialog, self_exclusion } = this.root_store; const { client, ui } = core; @@ -154,6 +148,7 @@ export default class RunPanelStore { */ if (is_ios || isSafari()) this.preloadAudio(); + await self_exclusion.checkRestriction(); if (!self_exclusion.should_bot_run) { self_exclusion.setIsRestricted(true); return; From 69825d33ad1aa81c393f9eef324dc000bff62937 Mon Sep 17 00:00:00 2001 From: Carol Sachdeva <58209918+carol-binary@users.noreply.github.com> Date: Mon, 9 Jan 2023 18:28:41 +0800 Subject: [PATCH 11/84] Revert V20230106_0 (#7334) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Revert "fix: summary panel flickering (#7321)" This reverts commit b134c888eecbda9424540bc05509837821d5089f. * Revert "translations: 📚 sync translations with crowdin (#7316)" This reverts commit 37266a2e0317f5d03b8d1dddd943030cf4c17e6d. * Revert "fix: dbot performance issue -- unified websocket connection and moved… (#7103)" This reverts commit 1abb7debf6a5a6ad12700e48e621bffbbf3372d1. --- packages/bot-skeleton/package.json | 2 - .../bot-skeleton/src/scratch/dbot-store.js | 8 -- packages/bot-skeleton/src/scratch/dbot.js | 10 +- .../bot-skeleton/src/services/api/api-base.js | 123 ------------------ .../bot-skeleton/src/services/api/appId.js | 16 --- .../src/services/api/ticks_service.js | 48 +++---- .../src/services/tradeEngine/trade/Balance.js | 4 +- .../tradeEngine/trade/OpenContract.js | 14 +- .../services/tradeEngine/trade/Proposal.js | 8 +- .../services/tradeEngine/trade/Purchase.js | 3 +- .../src/services/tradeEngine/trade/Sell.js | 7 +- .../src/services/tradeEngine/trade/index.js | 28 +++- .../services/tradeEngine/utils/cliTools.js | 6 +- .../src/services/tradeEngine/utils/helpers.js | 18 +-- .../services/tradeEngine/utils/interpreter.js | 13 +- .../trade-animation/trade-animation.jsx | 10 -- packages/bot-web-ui/src/stores/app-store.js | 2 +- .../bot-web-ui/src/stores/run-panel-store.js | 7 +- packages/p2p/src/translations/fr.json | 4 +- packages/p2p/src/translations/id.json | 4 +- .../translations/src/translations/it.json | 52 ++++---- .../translations/src/translations/ru.json | 16 +-- .../translations/src/translations/th.json | 6 +- 23 files changed, 111 insertions(+), 298 deletions(-) delete mode 100644 packages/bot-skeleton/src/services/api/api-base.js diff --git a/packages/bot-skeleton/package.json b/packages/bot-skeleton/package.json index b19bf02aea06..96becac19d3c 100644 --- a/packages/bot-skeleton/package.json +++ b/packages/bot-skeleton/package.json @@ -46,8 +46,6 @@ "immutable": "^3.8.2", "localforage": "^1.9.0", "lz-string": "^1.4.4", - "mobx": "^6.6.1", - "mobx-react": "^7.5.1", "redux": "^4.0.1", "redux-thunk": "^2.2.0", "scratch-blocks": "0.1.0-prerelease.20200917235131", diff --git a/packages/bot-skeleton/src/scratch/dbot-store.js b/packages/bot-skeleton/src/scratch/dbot-store.js index fb7333342df2..1d951ec9ebc2 100644 --- a/packages/bot-skeleton/src/scratch/dbot-store.js +++ b/packages/bot-skeleton/src/scratch/dbot-store.js @@ -1,6 +1,3 @@ -import { reaction } from 'mobx'; -import { api_base } from '../services/api/api-base'; - class DBotStoreInterface { // TODO here we are suppose to define an interface and implement fields of DBotStore. handleFileChange = () => { @@ -30,11 +27,6 @@ class DBotStore extends DBotStoreInterface { this.handleFileChange = store.handleFileChange; this.startLoading = store.startLoading; this.endLoading = store.endLoading; - - reaction( - () => this.client.loginid, - () => api_base.createNewInstance(this.client.loginid) - ); } static setInstance(store) { diff --git a/packages/bot-skeleton/src/scratch/dbot.js b/packages/bot-skeleton/src/scratch/dbot.js index 4df1e4afb380..adee21e1bab2 100644 --- a/packages/bot-skeleton/src/scratch/dbot.js +++ b/packages/bot-skeleton/src/scratch/dbot.js @@ -10,7 +10,6 @@ import { observer as globalObserver } from '../utils/observer'; import ApiHelpers from '../services/api/api-helpers'; import Interpreter from '../services/tradeEngine/utils/interpreter'; import { setColors } from './hooks/colours'; -import { api_base } from '../services/api/api-base'; class DBot { constructor() { @@ -98,7 +97,7 @@ class DBot { window.dispatchEvent(new Event('resize')); window.addEventListener('dragover', DBot.handleDragOver); window.addEventListener('drop', e => DBot.handleDropOver(e, handleFileChange)); - api_base.init(); + // disable overflow el_scratch_div.parentNode.style.overflow = 'hidden'; resolve(); @@ -135,7 +134,7 @@ class DBot { } this.interpreter = Interpreter(); - api_base.setIsRunning(true); + this.interpreter.run(code).catch(error => { globalObserver.emit('Error', error); this.stopBot(); @@ -227,7 +226,6 @@ class DBot { * that trade will be completed first to reflect correct contract status in UI. */ stopBot() { - api_base.setIsRunning(false); if (this.interpreter) { this.interpreter.stop(); } @@ -243,10 +241,6 @@ class DBot { } } - terminateConnection = () => { - api_base.terminate(); - }; - /** * Unselects any selected block before running the bot. */ diff --git a/packages/bot-skeleton/src/services/api/api-base.js b/packages/bot-skeleton/src/services/api/api-base.js deleted file mode 100644 index 5fa052992ced..000000000000 --- a/packages/bot-skeleton/src/services/api/api-base.js +++ /dev/null @@ -1,123 +0,0 @@ -import { observer as globalObserver } from '../../utils/observer'; -import { generateDerivApiInstance, getLoginId, getToken } from './appId'; - -class APIBase { - api; - token; - account_id; - pip_sizes = {}; - account_info = {}; - is_running = false; - subscriptions = []; - time_interval = null; - - init(force_update = false) { - if (getLoginId()) { - this.toggleRunButton(true); - if (force_update) this.terminate(); - this.api = generateDerivApiInstance(); - this.initEventListeners(); - this.authorizeAndSubscribe(); - if (this.time_interval) clearInterval(this.time_interval); - this.time_interval = null; - this.getTime(); - } - } - - terminate() { - // eslint-disable-next-line no-console - console.log('connection terminated'); - if (this.api) this.api.disconnect(); - } - - initEventListeners() { - if (window) { - window.addEventListener('online', this.reconnectIfNotConnected); - window.addEventListener('focus', this.reconnectIfNotConnected); - } - } - - createNewInstance(account_id) { - if (this.account_id !== account_id) { - this.init(true); - } - } - - reconnectIfNotConnected = () => { - // eslint-disable-next-line no-console - console.log('connection state: ', this.api.connection.readyState); - if (this.api.connection.readyState !== 1) { - // eslint-disable-next-line no-console - console.log('Info: Connection to the server was closed, trying to reconnect.'); - this.init(); - } - }; - - authorizeAndSubscribe() { - const { token, account_id } = getToken(); - if (token) { - this.token = token; - this.account_id = account_id; - this.getActiveSymbols(); - this.api - .authorize(this.token) - .then(({ authorize }) => { - this.subscribe(); - this.account_info = authorize; - }) - .catch(e => { - globalObserver.emit('Error', e); - }); - } - } - - subscribe() { - this.api.send({ balance: 1, subscribe: 1 }).catch(e => { - globalObserver.emit('Error', e); - }); - this.api.send({ transaction: 1, subscribe: 1 }).catch(e => { - globalObserver.emit('Error', e); - }); - } - - getActiveSymbols = async () => { - const { active_symbols = [] } = await this.api.send({ active_symbols: 'brief' }).catch(e => { - globalObserver.emit('Error', e); - }); - const pip_sizes = {}; - active_symbols.forEach(({ symbol, pip }) => { - pip_sizes[symbol] = +(+pip).toExponential().substring(3); - }); - this.pip_sizes = pip_sizes; - this.toggleRunButton(false); - }; - - toggleRunButton = toggle => { - const run_button = document.querySelector('#db-animation__run-button'); - if (!run_button) return; - run_button.disabled = toggle; - }; - - setIsRunning(toggle = false) { - this.is_running = toggle; - } - - pushSubscription(subscription) { - this.subscriptions.push(subscription); - } - - clearSubscriptions() { - this.subscriptions.forEach(s => s.unsubscribe()); - this.subscriptions = []; - } - - getTime() { - if (!this.time_interval) { - this.time_interval = setInterval(() => { - this.api.send({ time: 1 }); - }, 30000); - } - } -} - -export const api_base = new APIBase(); diff --git a/packages/bot-skeleton/src/services/api/appId.js b/packages/bot-skeleton/src/services/api/appId.js index e56a9931fbea..ed7417a9d34d 100644 --- a/packages/bot-skeleton/src/services/api/appId.js +++ b/packages/bot-skeleton/src/services/api/appId.js @@ -10,19 +10,3 @@ export const generateDerivApiInstance = () => { }); return deriv_api; }; - -export const getLoginId = () => { - const login_id = localStorage.getItem('active_loginid'); - if (login_id && login_id !== 'null') return login_id; - return null; -}; - -export const getToken = () => { - const active_loginid = getLoginId(); - const client_accounts = JSON.parse(localStorage.getItem('client.accounts')) || undefined; - const active_account = (client_accounts && client_accounts[active_loginid]) || {}; - return { - token: active_account?.token || undefined, - account_id: active_loginid || undefined, - }; -}; diff --git a/packages/bot-skeleton/src/services/api/ticks_service.js b/packages/bot-skeleton/src/services/api/ticks_service.js index 3ca6c3e687bc..2eaf3e8a50ce 100644 --- a/packages/bot-skeleton/src/services/api/ticks_service.js +++ b/packages/bot-skeleton/src/services/api/ticks_service.js @@ -2,7 +2,6 @@ import { Map } from 'immutable'; import { historyToTicks, getLast } from 'binary-utils'; import { doUntilDone, getUUID } from '../tradeEngine/utils/helpers'; import { observer as globalObserver } from '../../utils/observer'; -import { api_base } from './api-base'; const parseTick = tick => ({ epoch: +tick.epoch, @@ -40,7 +39,8 @@ const updateCandles = (candles, ohlc) => { const getType = isCandle => (isCandle ? 'candles' : 'ticks'); export default class TicksService { - constructor() { + constructor(api) { + this.api = api; this.ticks = new Map(); this.candles = new Map(); this.tickListeners = new Map(); @@ -60,13 +60,23 @@ export default class TicksService { if (!this.active_symbols_promise) { this.active_symbols_promise = new Promise(resolve => { - this.pipSizes = api_base.pip_sizes; - resolve(this.pipSizes); + this.getActiveSymbols().then(active_symbols => { + this.pipSizes = active_symbols + .reduce((s, i) => s.set(i.symbol, +(+i.pip).toExponential().substring(3)), new Map()) + .toObject(); + resolve(this.pipSizes); + }); }); } return this.active_symbols_promise; } + getActiveSymbols = async () => { + await this.api.expectResponse('authorize'); + const active_symbols = await this.api.send({ active_symbols: 'brief' }); + return active_symbols.active_symbols; + }; + request(options) { const { symbol, granularity } = options; @@ -79,6 +89,7 @@ export default class TicksService { if (style === 'candles' && this.candles.hasIn([symbol, Number(granularity)])) { return Promise.resolve(this.candles.getIn([symbol, Number(granularity)])); } + return this.requestStream({ ...options, style }); } @@ -152,7 +163,7 @@ export default class TicksService { ...(tickSubscription || []), ]; - Promise.all(subscription.map(id => doUntilDone(() => api_base.api.forget(id)))); + Promise.all(subscription.map(id => doUntilDone(() => this.api.forget(id)))); this.subscriptions = new Map(); } @@ -184,7 +195,7 @@ export default class TicksService { } observe() { - api_base.api.onMessage().subscribe(({ data }) => { + this.api.onMessage().subscribe(({ data }) => { if (data.msg_type === 'tick') { const { tick } = data; const { symbol, id } = tick; @@ -249,7 +260,7 @@ export default class TicksService { style, }; return new Promise((resolve, reject) => { - doUntilDone(() => api_base.api.send(request_object), [], api_base) + doUntilDone(() => this.api.send(request_object)) .then(r => { if (style === 'ticks') { const ticks = historyToTicks(r.history); @@ -267,27 +278,4 @@ export default class TicksService { .catch(reject); }); } - - forget = subscription_id => { - if (subscription_id) { - api_base.api.forget(subscription_id); - } - }; - - unsubscribeFromTicksService() { - if (this.ticks_history_promise) { - const { stringified_options } = this.ticks_history_promise; - const { symbol = '' } = JSON.parse(stringified_options); - if (symbol) { - this.forget(this.subscriptions.getIn(['tick', symbol])); - } - } - if (this.candles_promise) { - const { stringified_options } = this.candles_promise; - const { symbol = '' } = JSON.parse(stringified_options); - if (symbol) { - this.forget(this.subscriptions.getIn(['candle', symbol])); - } - } - } } diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/Balance.js b/packages/bot-skeleton/src/services/tradeEngine/trade/Balance.js index 03a01578c671..19f3aad85318 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/Balance.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/Balance.js @@ -1,14 +1,13 @@ import { getFormattedText } from '@deriv/shared'; import { info } from '../utils/broadcast'; import DBotStore from '../../../scratch/dbot-store'; -import { api_base } from '../../api/api-base'; let balance_string = ''; export default Engine => class Balance extends Engine { observeBalance() { - const subscription = api_base.api.onMessage().subscribe(({ data }) => { + this.api.onMessage().subscribe(({ data }) => { if (data.msg_type === 'balance') { const { balance: { balance: b, currency }, @@ -19,7 +18,6 @@ export default Engine => info({ accountID: this.accountInfo.loginid, balance: balance_string }); } }); - api_base.pushSubscription(subscription); } // eslint-disable-next-line class-methods-use-this diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/OpenContract.js b/packages/bot-skeleton/src/services/tradeEngine/trade/OpenContract.js index 6b007c29e7f6..52c610a5f0a0 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/OpenContract.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/OpenContract.js @@ -3,12 +3,11 @@ import { sell, openContractReceived } from './state/actions'; import { contractStatus, contract as broadcastContract } from '../utils/broadcast'; import { doUntilDone } from '../utils/helpers'; import DBotStore from '../../../scratch/dbot-store'; -import { api_base } from '../../api/api-base'; export default Engine => class OpenContract extends Engine { observeOpenContract() { - const subscription = api_base.api.onMessage().subscribe(({ data }) => { + this.api.onMessage().subscribe(({ data }) => { if (data.msg_type === 'proposal_open_contract') { const contract = data.proposal_open_contract; @@ -42,7 +41,6 @@ export default Engine => } } }); - api_base.pushSubscription(subscription); } waitForAfter() { @@ -53,13 +51,7 @@ export default Engine => subscribeToOpenContract(contract_id = this.contractId) { this.contractId = contract_id; - const request_object = { - proposal_open_contract: 1, - contract_id, - subscribe: 1, - }; - - doUntilDone(() => api_base.api.send(request_object)) + doUntilDone(() => this.api.send({ proposal_open_contract: 1, contract_id, subscribe: 1 })) .then(data => { const { populateConfig } = DBotStore.instance; populateConfig(data.proposal_open_contract); @@ -67,7 +59,7 @@ export default Engine => }) .catch(error => { if (error.error.code !== 'AlreadySubscribed') { - doUntilDone(() => api_base.api.send(request_object)).then( + doUntilDone(() => this.api.send({ proposal_open_contract: 1, contract_id, subscribe: 1 })).then( response => (this.openContractId = response.proposal_open_contract.id) ); } diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/Proposal.js b/packages/bot-skeleton/src/services/tradeEngine/trade/Proposal.js index 515d40b9421a..17e7914b298a 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/Proposal.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/Proposal.js @@ -1,7 +1,6 @@ import { localize } from '@deriv/translations'; import { proposalsReady, clearProposals } from './state/actions'; import { tradeOptionToProposal, doUntilDone } from '../utils/helpers'; -import { api_base } from '../../api/api-base'; export default Engine => class Proposal extends Engine { @@ -70,7 +69,7 @@ export default Engine => Promise.all( this.proposal_templates.map(proposal => { - doUntilDone(() => api_base.api.send(proposal)).catch(error => { + doUntilDone(() => this.api.send(proposal)).catch(error => { // We intercept ContractBuyValidationError as user may have specified // e.g. a DIGITUNDER 0 or DIGITOVER 9, while one proposal may be invalid // the other is valid. We will error on Purchase rather than here. @@ -95,7 +94,7 @@ export default Engine => } observeProposals() { - const subscription = api_base.api.onMessage().subscribe(response => { + this.api.onMessage().subscribe(response => { if (response.data.msg_type === 'proposal') { const { passthrough, proposal } = response.data; if ( @@ -109,7 +108,6 @@ export default Engine => } } }); - api_base.pushSubscription(subscription); } unsubscribeProposals() { @@ -130,7 +128,7 @@ export default Engine => return Promise.resolve(); } - return doUntilDone(() => api_base.api.forget(proposal.id)).then(() => { + return doUntilDone(() => this.api.forget(proposal.id)).then(() => { removeForgetProposalById(proposal.id); }); }) diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/Purchase.js b/packages/bot-skeleton/src/services/tradeEngine/trade/Purchase.js index cd3730f840eb..800c54201f93 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/Purchase.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/Purchase.js @@ -3,7 +3,6 @@ import { BEFORE_PURCHASE } from './state/constants'; import { contractStatus, info, log } from '../utils/broadcast'; import { getUUID, recoverFromError, doUntilDone } from '../utils/helpers'; import { log_types } from '../../../constants/messages'; -import { api_base } from '../../api/api-base'; let delayIndex = 0; let purchase_reference; @@ -42,7 +41,7 @@ export default Engine => buy_price: buy.buy_price, }); }; - const action = () => api_base.api.send({ buy: id, price: askPrice }); + const action = () => this.api.send({ buy: id, price: askPrice }); this.isSold = false; contractStatus({ id: 'contract.purchase_sent', diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/Sell.js b/packages/bot-skeleton/src/services/tradeEngine/trade/Sell.js index d2dc6bb7a3dc..203cb9d6bdee 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/Sell.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/Sell.js @@ -3,7 +3,6 @@ import { contractStatus, log } from '../utils/broadcast'; import { recoverFromError, doUntilDone } from '../utils/helpers'; import { log_types } from '../../../constants/messages'; import { observer as globalObserver } from '../../../utils/observer'; -import { api_base } from '../../api/api-base'; export default Engine => class Sell extends Engine { @@ -43,9 +42,9 @@ export default Engine => const contract_id = this.contractId; const sellContractAndGetContractInfo = () => { - return doUntilDone(() => api_base.api.send({ sell: contract_id, price: 0 })) + return doUntilDone(() => this.api.send({ sell: contract_id, price: 0 })) .then(sell_response => { - doUntilDone(() => api_base.api.send({ proposal_open_contract: 1, contract_id })).then( + doUntilDone(() => this.api.send({ proposal_open_contract: 1, contract_id })).then( () => sell_response ); }) @@ -71,7 +70,7 @@ export default Engine => // For every other error, check whether the contract is not actually already sold. return doUntilDone(() => - api_base.api.send({ + this.api.send({ proposal_open_contract: 1, contract_id, }) diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/index.js b/packages/bot-skeleton/src/services/tradeEngine/trade/index.js index a165ea37f8dc..145bfcf67219 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/index.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/index.js @@ -15,7 +15,6 @@ import { doUntilDone } from '../utils/helpers'; import { expectInitArg } from '../utils/sanitize'; import { createError } from '../../../utils/error'; import { observer as globalObserver } from '../../../utils/observer'; -import { api_base } from '../../api/api-base'; const watchBefore = store => watchScope({ @@ -65,6 +64,7 @@ const watchScope = ({ store, stopScope, passScope, passFlag }) => { export default class TradeEngine extends Balance(Purchase(Sell(OpenContract(Proposal(Ticks(Total(class {}))))))) { constructor($scope) { super(); + this.api = $scope.api; this.observer = $scope.observer; this.$scope = $scope; this.observe(); @@ -106,13 +106,17 @@ export default class TradeEngine extends Balance(Purchase(Sell(OpenContract(Prop if (this.token === token) { return Promise.resolve(); } + + doUntilDone(() => this.api.authorize(token)).catch(e => { + this.$scope.observer.emit('Error', e); + }); return new Promise(resolve => { // Try to recover from a situation where API doesn't give us a correct response on // "proposal_open_contract" which would make the bot run forever. When there's a "sell" // event, wait a couple seconds for the API to give us the correct "proposal_open_contract" // response, if there's none after x seconds. Send an explicit request, which _should_ // solve the issue. This is a backup! - api_base.api.onMessage().subscribe(({ data }) => { + this.api.onMessage().subscribe(({ data }) => { if (data.msg_type === 'transaction' && data.transaction.action === 'sell') { this.transaction_recovery_timeout = setTimeout(() => { const { contract } = this.data; @@ -120,14 +124,26 @@ export default class TradeEngine extends Balance(Purchase(Sell(OpenContract(Prop const is_open_contract = contract.status === 'open'; if (is_same_contract && is_open_contract) { doUntilDone(() => { - api_base.api.send({ proposal_open_contract: 1, contract_id: contract.contract_id }); + this.api.send({ proposal_open_contract: 1, contract_id: contract.contract_id }); }, ['PriceMoved']); } }, 1500); } - this.accountInfo = api_base.account_info; - this.token = api_base.token; - resolve(); + if (data.msg_type === 'authorize') { + this.accountInfo = data; + this.token = token; + + // Only subscribe to balance in browser, not for tests. + if (document) { + doUntilDone(() => this.api.send({ balance: 1, subscribe: 1 })).then(r => { + this.balance = Number(r.balance.balance); + resolve(); + }); + } else { + resolve(); + } + doUntilDone(() => this.api.send({ transaction: 1, subscribe: 1 })); + } }); }); } diff --git a/packages/bot-skeleton/src/services/tradeEngine/utils/cliTools.js b/packages/bot-skeleton/src/services/tradeEngine/utils/cliTools.js index 63cb063a7dc2..bac5c53d459d 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/utils/cliTools.js +++ b/packages/bot-skeleton/src/services/tradeEngine/utils/cliTools.js @@ -1,9 +1,11 @@ import TicksService from '../../api/ticks_service'; import Observer from '../../../utils/observer'; +import { generateDerivApiInstance } from '../../api/appId'; export const createScope = () => { const observer = new Observer(); - const ticksService = new TicksService(); + const api = generateDerivApiInstance(); + const ticksService = new TicksService(api); const stopped = false; - return { observer, ticksService, stopped }; + return { observer, api, ticksService, stopped }; }; diff --git a/packages/bot-skeleton/src/services/tradeEngine/utils/helpers.js b/packages/bot-skeleton/src/services/tradeEngine/utils/helpers.js index 8a996f9ec836..ecb02e769017 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/utils/helpers.js +++ b/packages/bot-skeleton/src/services/tradeEngine/utils/helpers.js @@ -130,17 +130,13 @@ export const shouldThrowError = (error, errors_to_ignore = []) => { return !is_ignorable_error; }; -export const recoverFromError = (promiseFn, recoverFn, errors_to_ignore, delay_index, api_base) => { +export const recoverFromError = (promiseFn, recoverFn, errors_to_ignore, delay_index) => { return new Promise((resolve, reject) => { const promise = promiseFn(); if (promise) { promise.then(resolve).catch(error => { - /** - * if bot is not running there is no point of recovering from error - * `!api_base.is_running` will check the bot status if it is not running it will kick out the control from loop - */ - if (shouldThrowError(error, errors_to_ignore) || (api_base && !api_base.is_running)) { + if (shouldThrowError(error, errors_to_ignore)) { reject(error); return; } @@ -176,13 +172,7 @@ export const recoverFromError = (promiseFn, recoverFn, errors_to_ignore, delay_i }); }; -/** - * @param {*} promiseFn api call - it could be api call or subscription - * @param {*} errors_to_ignore list of errors to ignore - * @param {*} api_base instance of APIBase class to check if the bot is running or not - * @returns a new promise - */ -export const doUntilDone = (promiseFn, errors_to_ignore, api_base) => { +export const doUntilDone = (promiseFn, errors_to_ignore) => { let delay_index = 1; return new Promise((resolve, reject) => { @@ -192,7 +182,7 @@ export const doUntilDone = (promiseFn, errors_to_ignore, api_base) => { }; const repeatFn = () => { - recoverFromError(promiseFn, recoverFn, errors_to_ignore, delay_index, api_base).then(resolve).catch(reject); + recoverFromError(promiseFn, recoverFn, errors_to_ignore, delay_index).then(resolve).catch(reject); }; repeatFn(); diff --git a/packages/bot-skeleton/src/services/tradeEngine/utils/interpreter.js b/packages/bot-skeleton/src/services/tradeEngine/utils/interpreter.js index 788d172dbe39..d43cb67f01d0 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/utils/interpreter.js +++ b/packages/bot-skeleton/src/services/tradeEngine/utils/interpreter.js @@ -4,7 +4,6 @@ import { createScope } from './cliTools'; import Interface from '../Interface'; import { unrecoverable_errors } from '../../../constants/messages'; import { observer as globalObserver } from '../../../utils/observer'; -import { api_base } from '../../api/api-base'; JSInterpreter.prototype.takeStateSnapshot = function () { const newStateStack = cloneThorough(this.stateStack, undefined, undefined, undefined, true); @@ -181,14 +180,16 @@ const Interpreter = () => { } function terminateSession() { + const { connection } = $scope.api; + if (connection.readyState === 0) { + connection.addEventListener('open', () => connection.close()); + } else if (connection.readyState === 1) { + connection.close(); + } + $scope.stopped = true; $scope.is_error_triggered = false; globalObserver.emit('bot.stop'); - const { ticksService } = $scope; - // Unsubscribe previous ticks_history subscription - ticksService.unsubscribeFromTicksService(); - // Unsubscribe the subscriptions from Proposal, Balance and OpenContract - api_base.clearSubscriptions(); } function run(code) { diff --git a/packages/bot-web-ui/src/components/trade-animation/trade-animation.jsx b/packages/bot-web-ui/src/components/trade-animation/trade-animation.jsx index de40ff31ad8c..738ed174987a 100644 --- a/packages/bot-web-ui/src/components/trade-animation/trade-animation.jsx +++ b/packages/bot-web-ui/src/components/trade-animation/trade-animation.jsx @@ -85,16 +85,9 @@ const TradeAnimation = ({ info_direction, toggleAnimationInfoModal, cashier_validation, - performSelfExclusionCheck, }) => { const [is_button_disabled, updateIsButtonDisabled] = React.useState(false); const is_unavailable_for_payment_agent = cashier_validation?.includes('WithdrawServiceUnavailableForPA'); - - // perform self-exclusion checks which will be stored under the self-exclusion-store - React.useEffect(() => { - performSelfExclusionCheck(); - }, []); - React.useEffect(() => { if (is_button_disabled) { setTimeout(() => { @@ -102,7 +95,6 @@ const TradeAnimation = ({ }, 1000); } }, [is_button_disabled]); - const status_classes = ['', '', '']; let progress_status = contract_stage - @@ -182,7 +174,6 @@ TradeAnimation.propTypes = { is_stop_button_disabled: PropTypes.bool, onRunButtonClick: PropTypes.func, onStopButtonClick: PropTypes.func, - performSelfExclusionCheck: PropTypes.func, profit: PropTypes.number, should_show_overlay: PropTypes.bool, }; @@ -196,7 +187,6 @@ export default connect(({ summary_card, run_panel, toolbar, ui, client }) => ({ is_stop_button_disabled: run_panel.is_stop_button_disabled, onRunButtonClick: run_panel.onRunButtonClick, onStopButtonClick: run_panel.onStopButtonClick, - performSelfExclusionCheck: run_panel.performSelfExclusionCheck, profit: summary_card.profit, should_show_overlay: run_panel.should_show_overlay, toggleAnimationInfoModal: toolbar.toggleAnimationInfoModal, diff --git a/packages/bot-web-ui/src/stores/app-store.js b/packages/bot-web-ui/src/stores/app-store.js index 862140f7d1e5..2088fa4b7da7 100644 --- a/packages/bot-web-ui/src/stores/app-store.js +++ b/packages/bot-web-ui/src/stores/app-store.js @@ -39,7 +39,7 @@ export default class AppStore { onUnmount() { DBot.terminateBot(); - DBot.terminateConnection(); + if (Blockly.derivWorkspace) { clearInterval(Blockly.derivWorkspace.save_workspace_interval); Blockly.derivWorkspace.dispose(); diff --git a/packages/bot-web-ui/src/stores/run-panel-store.js b/packages/bot-web-ui/src/stores/run-panel-store.js index c35b2390467e..c0144b8e494a 100644 --- a/packages/bot-web-ui/src/stores/run-panel-store.js +++ b/packages/bot-web-ui/src/stores/run-panel-store.js @@ -32,7 +32,6 @@ export default class RunPanelStore { toggleDrawer: action.bound, setActiveTabIndex: action.bound, onCloseDialog: action.bound, - performSelfExclusionCheck: action.bound, showStopMultiplierContractDialog: action.bound, showLoginDialog: action.bound, showRealAccountDialog: action.bound, @@ -131,11 +130,6 @@ export default class RunPanelStore { ); } - async performSelfExclusionCheck() { - const { self_exclusion } = this.root_store; - await self_exclusion.checkRestriction(); - } - async onRunButtonClick() { const { core, summary_card, route_prompt_dialog, self_exclusion } = this.root_store; const { client, ui } = core; @@ -154,6 +148,7 @@ export default class RunPanelStore { */ if (is_ios || isSafari()) this.preloadAudio(); + await self_exclusion.checkRestriction(); if (!self_exclusion.should_bot_run) { self_exclusion.setIsRestricted(true); return; diff --git a/packages/p2p/src/translations/fr.json b/packages/p2p/src/translations/fr.json index 377fe2a81fef..e4022ee5e8ce 100644 --- a/packages/p2p/src/translations/fr.json +++ b/packages/p2p/src/translations/fr.json @@ -2,7 +2,7 @@ "6794664": "Annonces qui correspondent à votre solde et à votre limite P2P Deriv.", "19789721": "Personne ne t'a bloqué. Ouaii !", "21103557": "Solde P2P dérivé = dépôts qui ne peuvent pas être annulés (virements bancaires, etc.) + une partie des dépôts qui peuvent être annulés (paiements par carte de crédit, etc.)", - "24711354": "Total des ordres <0>30j | <1>tous", + "24711354": "Total des commandes <0>30j | <1>à vie", "47573834": "Taux fixe (1 {{account_currency}})", "50672601": "Acheté", "51881712": "Vous avez déjà une annonce avec le même taux de change pour cette paire de devises et ce type d'ordre.

Veuillez définir un taux différent pour votre annonce.", @@ -307,7 +307,7 @@ "-2059312414": "Détails de l'annonce", "-1769584466": "Statistiques", "-2090878601": "Limite journalière", - "-130547447": "Volume des trades <0>30d | <1>tous", + "-130547447": "Volume des trades <0>30d | <1>à vie", "-1792280476": "Choisissez votre mode de paiement", "-293182503": "Annuler l'ajout de ce mode de paiement ?", "-1850127397": "Si vous choisissez d'annuler, les données que vous avez saisies seront perdues.", diff --git a/packages/p2p/src/translations/id.json b/packages/p2p/src/translations/id.json index fadb811baa60..647a3c20d4a8 100644 --- a/packages/p2p/src/translations/id.json +++ b/packages/p2p/src/translations/id.json @@ -2,7 +2,7 @@ "6794664": "Iklan yang sesuai dengan saldo dan batas P2P Deriv Anda.", "19789721": "Tidak ada yang memblokir Anda. Yay!", "21103557": "Saldo Deriv P2P = deposit yang tidak dapat dibatalkan (melalui tranfer bank, dsb) + sejumlah deposit yang mungkin dapat dibatalkan (melalui kartu kredit, dsb)", - "24711354": "Total order <0>30hari | <1>semua", + "24711354": "Total order <0>30hari | <1>seumur hidup", "47573834": "Harga tetap (1 {{account_currency}})", "50672601": "Membeli", "51881712": "Anda sudah membuat iklan dengan nilai tukar yang sama untuk pasangan mata uang dan jenis order.

Mohon pilih nilai tukar lain untuk iklan Anda.", @@ -307,7 +307,7 @@ "-2059312414": "Detail iklan", "-1769584466": "Statistik", "-2090878601": "Batas harian", - "-130547447": "Transaksi <0>30 hari | <1>semua", + "-130547447": "Volume transaksi <0>30 hari | <1>seumur hidup", "-1792280476": "Pilih metode pembayaran Anda", "-293182503": "Batalkan penambahan metode pembayaran ini?", "-1850127397": "Jika Anda memilih untuk membatalkan, detail yang Anda masukkan akan hilang.", diff --git a/packages/translations/src/translations/it.json b/packages/translations/src/translations/it.json index 4b387ac0744b..b3d410f48790 100644 --- a/packages/translations/src/translations/it.json +++ b/packages/translations/src/translations/it.json @@ -245,7 +245,7 @@ "327534692": "Il valore di durata non è consentito. Per avviare il bot, inserire {{min}}.", "328539132": "Ripete le istruzioni ad esso relative per un numero specifico di volte", "329404045": "<0>Passa al conto reale<1> per creare un conto {{account_title}} {{platform}}.", - "332886946": "<1>Hai bisogno di aiuto per usare Acuity? <0/>Consulta questa <2>guida utente.", + "332886946": "<1>Hai bisogno di aiuto per usare Acuity? <0/>Consulta questa <2>guida per l'utente.", "333456603": "Limiti per i prelievi", "334680754": "Passa al tuo conto reale per creare un conto Deriv MT5", "334942497": "Tempo di acquista", @@ -517,7 +517,7 @@ "665089217": "Invia <0>il documenti di verifica dell'identità per autenticare il tuo conto e accedere alla cassa.", "665777772": "XLM/USD", "665872465": "Nell'esempio sottostante, è stato selezionato il prezzo di apertura, che viene poi assegnato a una variabile chiamata \"op\".", - "666724936": "Inserisci un numero ID valido.", + "666724936": "Inserisci un numero di ID valido.", "668344562": "Sintetici, FX maggiori (lotti standard/micro), FX minori, panieri di indici, materie prime e criptovalute", "672008428": "ZEC/USD", "673915530": "Giurisdizione e scelta delle legge applicabile", @@ -710,7 +710,7 @@ "918447723": "Reale", "920125517": "Aggiungi conto demo", "921901739": "- i dati del conto bancario collegato al tuo conto", - "924046954": "Carica un documento che mostri il tuo nome e il numero di conto bancario o le informazioni del conto.", + "924046954": "Carica un documento che mostri il tuo nome e il numero di conto bancario o i dettagli del conto.", "926813068": "Fisso/variabile", "929608744": "Non puoi effettuare prelievi", "930346117": "Le lettere maiuscole non sono di grande aiuto", @@ -778,7 +778,7 @@ "1006664890": "Silenzioso", "1009032439": "Sempre", "1010198306": "Questo blocco crea una lista con stringhe e numeri.", - "1010337648": "Non siamo stati in grado di verificare il documento a verifica della proprietà.", + "1010337648": "Non siamo stati in grado di verificare la tua prova di proprietà.", "1012102263": "Non potrai accedere al tuo conto fino a questa data (massimo 6 settimane da oggi).", "1015201500": "Stabilisci le opzioni di trading come durata e puntata.", "1016220824": "Devi passare a un conto reale per usare questa opzione. <0/>Per farlo, seleziona un conto reale da <1>Cambia conto.", @@ -855,7 +855,7 @@ "1086118495": "Hub per i trader", "1088138125": "Tick {{current_tick}} - ", "1089085289": "Numero di telefono", - "1096078516": "Verificheremo i documenti e ti aggiorneremo sullo stato della procedura entro 3 giorni.", + "1096078516": "Analizzeremo i documenti e ti aggiorneremo sullo stato entro 3 giorni.", "1096175323": "Occorre un conto Deriv", "1098147569": "Acquistare materie prime o azioni di una società.", "1098622295": "\"i\" inizia con il valore 1, e aumenta di 2 a ogni interazione. La ripetizione si ripete fino a quando \"i\" raggiunge il valore di 12, dopodiché termina.", @@ -972,7 +972,7 @@ "1232353969": "0-5 operazioni negli ultimi 12 mesi", "1233300532": "Payout", "1234292259": "Fonte di ricchezza", - "1234764730": "Carica uno screenshot del tuo nome e indirizzo email dalla sezione delle informazioni personali.", + "1234764730": "Carica uno screenshot del tuo nome e indirizzo email dalla sezione dei dettagli personali.", "1235426525": "50%", "1237330017": "Pensionato", "1238311538": "Amministratore", @@ -1234,7 +1234,7 @@ "1540585098": "Rifiuta", "1541969455": "Entrambi", "1544642951": "Selezionando \"Solo ascendente\", ottieni il payout se tick consecutivi superano successivamente il punto di entrata. Non ottieni alcun payout se qualsiasi tick è minore o uguale a uno dei tick precedenti.", - "1547148381": "Le dimensioni del file sono troppo grandi (consentiti solo fino a 8MB). Carica un altro file.", + "1547148381": "Il file è troppo grande (sono consentiti solo fino a 8MB). Carica un altro file.", "1548765374": "La verifica del numero di documento non è andata a buon fine", "1549098835": "Totale prelievo", "1551172020": "Paniere AUD", @@ -1332,7 +1332,7 @@ "1675030608": "Per creare questo conto, abbiamo bisogno prima che tu invii nuovamente la prova dell'indirizzo.", "1677027187": "Forex", "1677990284": "Le mie app", - "1680666439": "Carica l'estratto conto bancario con il tuo nome, il numero di conto e la cronologia delle transazioni.", + "1680666439": "Carica lo estratto conto bancario con il tuo nome, il numero di conto e la cronologia delle transazioni.", "1682409128": "Strategia senza nome", "1682636566": "Invia di nuovo e-mail a", "1683963454": "Il contratto verrà chiuso automaticamente al successivo prezzo disponibile dell'asset il {{date}} alle {{timestamp}}.", @@ -1367,7 +1367,7 @@ "1723398114": "Una recente bolletta delle utenze (ad es. elettricità, acqua, gas, telefono o internet)", "1723589564": "Rappresenta il numero massimo di contratti in essere nel tuo portafoglio. Ogni riga presente sul tuo portafoglio vale una posizione aperta. Una volta raggiunto il valore massimo, non potrai aprire nuove posizioni senza prima chiudere una posizione esistente.", "1724696797": "È possibile avere un solo conto fiat.", - "1725958461": "Numero del conto", + "1725958461": "Numero di conto", "1726472773": "Funzione che non restituisce un valore", "1726565314": "Chiudi il conto", "1727681395": "Totale asset attivi nei conti demo Deriv e {{platform_name_mt5}}.", @@ -1433,7 +1433,7 @@ "1791971912": "Recente", "1793913365": "Per depositare denaro, passa al conto {{currency_symbol}}.", "1794815502": "Scarica la cronologia delle tue operazioni.", - "1796787905": "Carica il/i seguente/i documento/i.", + "1796787905": "Carica il/i documento/i seguente/i.", "1798943788": "Puoi solo effettuare depositi.", "1801093206": "Ottieni l'elenco candele", "1801927731": "Conti {{platform_name_dxtrade}}", @@ -1610,7 +1610,7 @@ "1988153223": "Indirizzo e-mail", "1988302483": "Take profit:", "1988601220": "Valore della durata", - "1990331072": "Documento a verifica della proprietà", + "1990331072": "Prova di proprietà", "1990735316": "Aumento pari a", "1991448657": "Non conosci il tuo numero di identificazione fiscale? Clicca <0>qui per saperne di più.", "1991524207": "Indice Jump 100", @@ -1656,7 +1656,7 @@ "2037665157": "Espandi tutti i blocchi", "2037906477": "ottieni sotto elenco da #", "2042050260": "- Prezzo d'acquisto: il prezzo d'acquisto (puntata) del contratto", - "2042115724": "Carica uno screenshot del tuo conto e della pagina delle informazioni personali con il tuo nome, numero di conto, numero di telefono e indirizzo email.", + "2042115724": "Carica uno screenshot del tuo conto e della pagina dei dettagli personali con il tuo nome, numero di conto, numero di telefono e indirizzo email.", "2042778835": "La presente politica sui reclami potrebbe cambiare nel tempo, e si applica ai conti registrati con {{legal_entity_name}}.", "2044086432": "Quello di chiusura è l'ultimo tick entro l'orario di termine. Se selezioni un orario di termine preciso, quest'ultimo sarà l'orario selezionato.", "2046273837": "Ultimo tick", @@ -1702,7 +1702,7 @@ "2096456845": "Data di nascita*", "2097170986": "Tether (Omni)", "2097381850": "Calcola la linea della Media mobile semplice da un elenco con un periodo", - "2097932389": "Carica 2 schermate separate dalla pagina delle informazioni personali e dalla pagina del conto tramite la pagina <0>https://app.astropay.com/profile", + "2097932389": "Carica 2 schermate separate dalla pagina dei dettagli personali e dalla pagina del conto tramite <0>https://app.astropay.com/profile", "2100713124": "conto", "2101972779": "Utilizzando un elenco di tick, ripropone l'esempio precedente.", "2102572780": "Il codice deve comprendere 6 caratteri.", @@ -1821,7 +1821,7 @@ "-922751756": "Meno di un anno", "-542986255": "Nessuna", "-1337206552": "Secondo le tue conoscenze, il trading con i CFD ti consente di", - "-456863190": "Metti una posizione sul movimento del prezzo di un asset il cui risultato è un rendimento fisso o nullo.", + "-456863190": "Metti una posizione sul movimento del prezzo di un asset il cui risultato è un rendimento fisso o nulla.", "-1314683258": "Effettuare un investimento a lungo termine per un profitto garantito.", "-1546090184": "Come influisce la leva sul trading di CFD?", "-1636427115": "La leva finanziaria ti aiuta a mitigare il rischio.", @@ -1939,13 +1939,13 @@ "-1030759620": "Funzionari governativi", "-1196936955": "Carica uno screenshot del tuo nome e indirizzo email dalla sezione delle informazioni personali.", "-1286823855": "Carica l'estratto conto della bolletta del cellulare con il tuo nome e numero di telefono.", - "-1309548471": "Carica l'estratto conto bancario con il tuo nome e le informazioni del conto.", - "-1410396115": "Carica una foto che mostri il tuo nome e le prime sei e le ultime quattro cifre del numero della tua carta. Se la carta non riporta il tuo nome, carica l'estratto conto bancario con il tuo nome e il numero della carta nella cronologia delle transazioni.", - "-3805155": "Carica uno screenshot di una delle seguenti informazioni per elaborare la transazione:", + "-1309548471": "Carica il tuo estratto conto bancario con il tuo nome e i dettagli del conto.", + "-1410396115": "Carica una foto che mostri il tuo nome e le prime sei e ultime quattro cifre del numero della tua carta. Se la carta non riporta il tuo nome, carica l'estratto conto bancario con il tuo nome e il numero della carta nella cronologia delle transazioni.", + "-3805155": "Carica uno screenshot di uno dei seguenti elementi per elaborare la transazione:", "-1523487566": "- la sezione del profilo del tuo conto sul sito web", "-613062596": "- la pagina delle informazioni sul conto sull'app", "-1718304498": "ID utente", - "-609424336": "Carica uno screenshot del tuo nome, numero di conto e indirizzo email dalla sezione delle informazioni personali dell'app o della sezione del profilo del tuo conto sul sito web.", + "-609424336": "Carica uno screenshot del tuo nome, numero di conto e indirizzo email dalla sezione dei dettagli personali dell'app o della sezione del profilo del tuo conto sul sito web.", "-1954436643": "Carica uno screenshot del tuo nome utente nella pagina delle informazioni generali all'<0>indirizzo https://onlinenaira.com/members/index.htm", "-79853954": "Carica uno screenshot del tuo numero di conto e del numero di telefono nella pagina del conto bancario/portafoglio mobile all'<0>indirizzo https://onlinenaira.com/members/bank.htm", "-1192882870": "Carica uno screenshot del tuo nome e del tuo numero di conto dalla sezione dei dettagli personali.", @@ -2039,10 +2039,10 @@ "-1725454783": "Non riuscito", "-839094775": "Indietro", "-856213726": "Dovrai inoltre consegnare un documento di verifica dell'identità.", - "-987011273": "Il documento a verifica della proprietà non è richiesto.", - "-808299796": "Al momento non è necessario presentare un documento a verifica della proprietà. Ti informeremo se in futuro sarà richiesto.", - "-179726573": "Abbiamo ricevuto il tuo documento a verifica della proprietà.", - "-813779897": "La verifica della proprietà è andata a buon fine.", + "-987011273": "La tua prova di proprietà non è richiesta.", + "-808299796": "Al momento non è necessario presentare una prova di proprietà. Ti informeremo se in futuro sarà richiesta una prova della proprietà.", + "-179726573": "Abbiamo ricevuto la tua prova di proprietà.", + "-813779897": "La verifica della proprietà è stata superata.", "-1389323399": "Devi inserire {{min_number}}-{{max_number}} caratteri.", "-1313806160": "Richiedi una nuova password e controlla di aver ricevuto un'e-mail con il nuovo token.", "-329713179": "Ok", @@ -2377,7 +2377,7 @@ "-451858550": "Facendo click su \"Continua\" verrai reindirizzato a {{ service }}, un fornitore di servizi di pagamento esterno. {{ website_name }} declina qualsiasi responsabilità per i contenuti o i servizi forniti da {{ service }}. Se riscontri problemi relativi ai servizi di {{ service }}, contatta direttamente {{ service }}.", "-2005265642": "Fiat onramp è un servizio di cassa che permette di convertire valute fiat in criptovalute per ricaricare i conti per criptovalute di Deriv. Qui sono elencati gli scambi di criptovalute di parti terze; è necessario creare un conto apposito per utilizzare i loro servizi.", "-1593063457": "Seleziona strumento di pagamento", - "-953082600": "Alcuni metodi di pagamento possono non essere elencati qui, anche se gli agenti di pagamento potrebbero comunque offrirli. Se non riesci a trovare il tuo metodo preferito, contatta direttamente gli agenti di pagamento per ulteriori verifiche.", + "-953082600": "Alcuni metodi di pagamento potrebbero non essere elencati qui, ma gli agenti di pagamento potrebbero comunque offrirli. Se non riesci a trovare il tuo metodo preferito, contatta direttamente gli agenti di pagamento per verificare ulteriormente.", "-2004264970": "L'indirizzo di portafoglio deve comprendere dai 25 ai 64 caratteri.", "-1707299138": "L'indirizzo di portafoglio {{currency_symbol}}", "-38063175": "Portafoglio in {{account_text}}", @@ -2767,8 +2767,8 @@ "-1719731099": "Grazie all'autenticazione a due fattori, il conto è protetto sia dalla password che dal telefono: in questo modo solo tu puoi accedere al conto anche se qualcuno conosce la password.", "-2087822170": "Sei offline", "-1669693571": "Verifica la tua connessione.", - "-1706642239": "<1>È richiesto <0>un documento a verifica della proprietà", - "-553262593": "<0><1>Il tuo conto è attualmente bloccato<2><3>Carica il documento a verifica della <4>proprietà per sbloccarlo. <5>", + "-1706642239": "<1>È richiesta <0>una prova di proprietà", + "-553262593": "<0><1>Il tuo conto è attualmente bloccato<2><3>Carica la prova di <4>proprietà per sbloccare il tuo conto. <5>", "-1834929362": "Carica il documento", "-1043638404": "<0>Verifica della proprietà <1>non riuscita", "-1766760306": "<0><1>Carica il documento <2>con i dati corretti.<3>", @@ -2955,7 +2955,7 @@ "-1300381594": "Ottieni gli strumenti di trading Acuity", "-860609405": "Password", "-742647506": "Trasferisci fondi", - "-1972393174": "Fai trading con CFD sui nostri sintetici, panieri e sugli FX derivati.", + "-1972393174": "Fai trading con CFD sui nostri sintetici, sui panieri e sugli FX derivati.", "-1357917360": "Terminale web", "-1454896285": "L'app per Desktop di MT5 non è supportata da Windows XP, Windows 2003 e Windows Vista.", "-810388996": "Scarica l'app mobile Deriv X", diff --git a/packages/translations/src/translations/ru.json b/packages/translations/src/translations/ru.json index 6d0d7f372f9c..49d90352585e 100644 --- a/packages/translations/src/translations/ru.json +++ b/packages/translations/src/translations/ru.json @@ -566,7 +566,7 @@ "724203548": "Вы можете отправить жалобу на платформу <0>онлайн-урегулирования споров (ODR) Европейской Комиссии. Это не относится к клиентам из Великобритании.", "728042840": "Чтобы продолжить торговать у нас, пожалуйста, подтвердите свое место жительства.", "728824018": "Испанский индекс", - "729651741": "Выберите фото", + "729651741": "Выберите фотографию", "730473724": "Этот блок выполняет логическую операцию «И» или «ИЛИ» с заданными значениями.", "731382582": "BNB/USD", "734390964": "Недостаточно средств на счете", @@ -709,7 +709,7 @@ "915735109": "Вернуться на {{platform_name}}", "918447723": "Реальный", "920125517": "Добавить демо-счет", - "921901739": "- данные банковского счета, привязанного к вашему счету", + "921901739": "- данные вашего банковского счета, привязанного к вашему счету", "924046954": "Загрузите документ с вашим именем и номером банковского счета или реквизитами счета.", "926813068": "Фиксированный/переменный", "929608744": "Вы не можете выводить средства", @@ -855,7 +855,7 @@ "1086118495": "Центр трейдера", "1088138125": "Тик {{current_tick}} - ", "1089085289": "Номер мобильного телефона", - "1096078516": "Мы рассмотрим ваши документы и уведомим вас об их статусе в течение 3 дней.", + "1096078516": "Мы рассмотрим ваши документы и уведомим вас о их статусе в течение 3 дней.", "1096175323": "Вам понадобится счет Deriv", "1098147569": "Приобретайте товары или акции компании.", "1098622295": "«i» начинается со значения 1 и увеличивается на 2 в каждом повторении. Цикл будет повторяться до тех пор, пока «i» не достигнет значения 12, и затем цикл будет прерван.", @@ -946,7 +946,7 @@ "1201773643": "числовой", "1203297580": "Этот блок отправляет сообщение в Telegram-канал.", "1204223111": "В этом примере цены открытия из списка свечей присваиваются переменной с именем \"candle_list\".", - "1206227936": "Как скрыть карту?", + "1206227936": "Как замаскировать карту?", "1206821331": "Вооруженные силы", "1208729868": "Тики", "1208903663": "Неверный ключ", @@ -1192,7 +1192,7 @@ "1481977420": "Помогите нам верифицировать ваш запрос на вывод средств.", "1484336612": "Этот блок используется для завершения или продолжения цикла и может быть размещен в любом месте блока цикла.", "1487086154": "Ваши документы успешно отправлены", - "1488548367": "Загрузить снова", + "1488548367": "Загрузите снова", "1490583127": "DBot пока не готов к использованию на реальных счетах", "1491392301": "<0>Продано за: {{sold_for}}", "1492686447": "Ваш счет MT5 Финансовый STP будет открыт в Deriv (FX) Ltd. Все операции на этом счете регулируются правилами и руководящими принципами Управления финансовых услуг Лабуана (LFSA). Правила и принципы Управления финансовых услуг Лабуана (LFSA) не распространяются ни на один из ваших других счетов, включая счет Deriv.", @@ -1234,7 +1234,7 @@ "1540585098": "Отклонить", "1541969455": "Оба", "1544642951": "Выбрав \"Только вверх\", вы получите выплату, если несколько тиков подряд будут расти по отношению к котировке на входе. Если любой тик покажет снижение или будет равен одному из предыдущих тиков, вы не получите выплату.", - "1547148381": "Файл слишком большой (разрешено не более 8 МБ). Попробуйте другой файл.", + "1547148381": "Этот файл слишком велик (разрешено не более 8 МБ). Пожалуйста, загрузите еще один файл.", "1548765374": "Не удалось верифицировать номер документа", "1549098835": "Общая сумма вывода", "1551172020": "Индекс AUD", @@ -1433,7 +1433,7 @@ "1791971912": "Недавние", "1793913365": "Чтобы внести средства, перейдите на свой счет {{currency_symbol}}.", "1794815502": "Загрузить историю транзакций.", - "1796787905": "Загрузите следующие документы.", + "1796787905": "Пожалуйста, загрузите следующие документы.", "1798943788": "Вы можете делать только депозиты.", "1801093206": "Получить список свечей", "1801927731": "счета {{platform_name_dxtrade}}", @@ -1944,7 +1944,7 @@ "-3805155": "Загрузите скриншот одного из следующих изображений для обработки транзакции:", "-1523487566": "- раздел профиля вашей учетной записи на сайте", "-613062596": "- страница «Информация об учетной записи» в приложении", - "-1718304498": "ID пользователя", + "-1718304498": "Идентификатор пользователя", "-609424336": "Загрузите скриншот своего имени, номера счета и адреса электронной почты из раздела личных данных приложения или раздела профиля своей учетной записи на веб-сайте.", "-1954436643": "Загрузите скриншот своего имени пользователя на странице «Общая информация» по адресу <0>https://onlinenaira.com/members/index.htm", "-79853954": "Загрузите скриншот номера своего счета и номера телефона на странице «Банковский счет/мобильный кошелек» по адресу <0>https://onlinenaira.com/members/bank.htm", diff --git a/packages/translations/src/translations/th.json b/packages/translations/src/translations/th.json index c30b93cfd7fe..b2fb527430ee 100644 --- a/packages/translations/src/translations/th.json +++ b/packages/translations/src/translations/th.json @@ -589,7 +589,7 @@ "759783233": "สําหรับข้อมูลเพิ่มเติมและความช่วยเหลือให้คําปรึกษาและบริการสนับสนุนต่าง โปรดไปที่ <0>begambleaware.org", "760528514": "โปรดทราบว่า การเปลี่ยนค่าของ \"i\" จะไม่เปลี่ยนแปลงค่าของรายการตัวต้นฉบับในลิสต์", "761576760": "ฝากเงินเข้าบัญชีของคุณเพื่อเริ่มทำการซื้อขาย", - "762185380": "<0>เพิ่มทวีผลที่ได้รับ โดย <0>มีความเสี่ยงเพียงเฉพาะ ทุนทรัพย์ที่คุณลงไป", + "762185380": "<0>ได้ผลตอบแทนเพิ่มทวีคูณ โดย <0>เสี่ยงเพียงเฉพาะ สิ่งที่คุณวางเดิมพัน", "762871622": "{{remaining_time}}วินาที", "763019867": "บัญชีเกมของคุณมีกำหนดที่จะถูกปิด", "764366329": "วงเงินในการซื้อขาย", @@ -2888,7 +2888,7 @@ "-895091803": "หากคุณกำลังมองหาสัญญาการซื้อขายส่วนต่าง", "-1447215751": "ไม่แน่ใจ? ลองนี่สิ", "-2338797": "<0>เพิ่มผลตอบแทนสูงสุด โดย <0>เสี่ยงมากกว่า สิ่งที่คุณวางเดิมพัน", - "-1682067341": "รับ <0>ผลที่ได้รับในอัตราคงที่ โดย <0>เสี่ยงเพียง ทุนทรัพย์ที่คุณลงไป", + "-1682067341": "รับ <0>ผลตอบแทนอัตราคงที่ โดย <0>เสี่ยงเพียง สิ่งที่คุณวางเดิมพัน", "-1744351732": "ไม่แน่ใจว่าจะเริ่มต้นที่ไหน?", "-943710774": "นโยบายการร้องเรียนนี้ซึ่งอาจมีการเปลี่ยนแปลงเป็นครั้งคราว มีผลบังคับใช้กับบัญชีของคุณที่ลงทะเบียนกับ {{legal_entity_name}} ซึ่งมีที่อยู่สำนักงานที่จดทะเบียนไว้ที่ First Floor, Millennium House, Victoria Road, Douglas, Isle of Man, IM2 4RW บริษัทนี้ได้รับใบอนุญาตและถูกกำกับควบคุมตามกฎหมายโดย (1) Gambling Supervision Commission ในเกาะไอล์ออฟแมน (ปัจจุบัน <0>ใบอนุญาต ออกเมื่อวันที่ 31 สิงหาคม ค. ศ. 2017) และ (2) Gambling Commission ในสหราชอาณาจักร (<1>ใบอนุญาตเลขที่ 39172)", "-255056078": "นโยบายการร้องเรียนนี้ซึ่งอาจมีการเปลี่ยนแปลงเป็นครั้งคราว มีผลบังคับใช้กับบัญชีของคุณที่ลงทะเบียนกับ {{legal_entity_name}} ซึ่งมีที่อยู่สำนักงานที่จดทะเบียนไว้ที่ Level 3, Triq Dun Karm, Birkirkara, BKR 9033 ประเทศมอลตา บริษัทได้รับใบอนุญาตและถูกกำกับควบคุมตามกฎหมายโดย Malta Gaming Authority ในประเทศมอลตาสำหรับผลิตภัณฑ์การพนันเท่านั้น <0>ใบอนุญาตเลขที่ MGA/B2C/102/2000 และสำหรับลูกค้าที่อาศัยอยู่ในสหราชอาณาจักรโดย UK Gambling Commission (เลขที่บัญชี 39495)", @@ -3216,7 +3216,7 @@ "-313112159": "บล็อกนี้จะคล้ายกับบล็อกด้านบน แต่ต่างกันที่ว่าบล๊อกนี้จะส่งคืนค่ามาอันหนึ่ง โดยค่าที่ส่งคืนนั้นสามารถถูกกำหนดให้กับตัวแปรที่คุณเลือกได้", "-1783320173": "คืนค่าภายในฟังก์ชันก่อนกําหนด", "-1485521724": "การส่งคืนตามเงื่อนไข", - "-1482801393": "ผลที่ได้รับ", + "-1482801393": "ผลตอบแทน", "-46453136": "ได้รับ", "-1838027177": "อย่างแรก", "-1182568049": "รับรายการในลิสต์", From 3cd1f981a7e9237fccdd43dcb088a53c77eda7be Mon Sep 17 00:00:00 2001 From: Niloofar Sadeghi <93518187+niloofar-deriv@users.noreply.github.com> Date: Mon, 9 Jan 2023 15:11:32 +0330 Subject: [PATCH 12/84] Niloofar Sadeghi / Refactor tests in the route-with-sub-routes.spec.tsx file (Core) (#7215) * test: writting test for route-with-sub-routes component * refactor: removed extra export from the component Co-authored-by: Niloofar Sadeghi --- .../__tests__/route-with-sub-routes.spec.tsx | 79 +++++++++++++------ .../Routes/route-with-sub-routes.jsx | 2 - 2 files changed, 53 insertions(+), 28 deletions(-) diff --git a/packages/core/src/App/Components/Routes/__tests__/route-with-sub-routes.spec.tsx b/packages/core/src/App/Components/Routes/__tests__/route-with-sub-routes.spec.tsx index 3ca94f68d347..cceaaa6cd435 100644 --- a/packages/core/src/App/Components/Routes/__tests__/route-with-sub-routes.spec.tsx +++ b/packages/core/src/App/Components/Routes/__tests__/route-with-sub-routes.spec.tsx @@ -1,30 +1,57 @@ -// TODO refactor old tests in this component import React from 'react'; -import { RouteWithSubRoutesRender } from '../route-with-sub-routes.jsx'; import { Redirect } from 'react-router-dom'; -import { PlatformContext } from '@deriv/shared'; - -// configure({ adapter: new Adapter() }); - -describe('', () => { - it('should render one component', () => { - // const comp = ( - // - // - // - // ); - // const wrapper = shallow(comp); - // expect(wrapper).toHaveLength(1); +import { render, screen } from '@testing-library/react'; +import RouteWithSubRoutes from '../route-with-sub-routes'; + +type TMockFunction = { + path: string; + exact?: boolean; +}; + +jest.mock('Stores/connect', () => ({ + __esModule: true, + default: 'mockedDefaultExport', + connect: + () => + (Component: T) => + Component, +})); + +jest.mock('react-router-dom', () => ({ + ...jest.requireActual('react-router-dom'), + Route: jest.fn(({ path, exact }: TMockFunction) => ( +
+ {`path param: ${path}`} + {`exact param: ${exact}`} +
+ )), +})); + +afterEach(() => jest.clearAllMocks()); + +const route = { + getTitle: jest.fn(), + component: Redirect, + is_logging_in: true, + is_logged_in: true, + exact: true, + path: '/test-path', +}; + +const MockRouteWithSubRoutesRender = () => ; + +describe('RouteWithSubRoutes component', () => { + it('should render the "RouteWithSubRoutes" component', () => { + render(); + const span_element = screen.getByText(/path param: \/test-path/i); + expect(span_element).toBeInTheDocument(); + }); + + it('should render properties', () => { + render(); + const path_param = screen.getByText(/\/test-path/i); + const exact_param = screen.getByText(/exact param: true/i); + expect(path_param).toBeInTheDocument(); + expect(exact_param).toBeInTheDocument(); }); - // it('should have props as passed as route', () => { - // const route = { path: '/', component: Redirect, title: '', exact: true, to: '/root' }; - // const comp = ( - // - // - // - // ); - // const wrapper = shallow(comp); - // expect(wrapper.prop('exact')).toBe(true); - // expect(wrapper.prop('path')).toBe('/'); - // }); }); diff --git a/packages/core/src/App/Components/Routes/route-with-sub-routes.jsx b/packages/core/src/App/Components/Routes/route-with-sub-routes.jsx index 7bd184418608..11ef42ef5e27 100644 --- a/packages/core/src/App/Components/Routes/route-with-sub-routes.jsx +++ b/packages/core/src/App/Components/Routes/route-with-sub-routes.jsx @@ -75,8 +75,6 @@ const RouteWithSubRoutes = route => { return ; }; -export { RouteWithSubRoutes as RouteWithSubRoutesRender }; // For tests - export default connect(({ gtm, common }) => ({ pushDataLayer: gtm.pushDataLayer, checkAppId: common.checkAppId, From a44342b489921c8c4d50403d2c737ca540e9568b Mon Sep 17 00:00:00 2001 From: Niloofar Sadeghi <93518187+niloofar-deriv@users.noreply.github.com> Date: Mon, 9 Jan 2023 15:12:17 +0330 Subject: [PATCH 13/84] refactor: login-button test file (#7245) Co-authored-by: Niloofar Sadeghi --- .../Header/__tests__/login-button.spec.tsx | 22 +++++-------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/packages/core/src/App/Components/Layout/Header/__tests__/login-button.spec.tsx b/packages/core/src/App/Components/Layout/Header/__tests__/login-button.spec.tsx index c851cee9f918..abcb3f32088b 100644 --- a/packages/core/src/App/Components/Layout/Header/__tests__/login-button.spec.tsx +++ b/packages/core/src/App/Components/Layout/Header/__tests__/login-button.spec.tsx @@ -1,23 +1,11 @@ -// TODO refactor old tests in this component import React from 'react'; -import { Button } from '@deriv/components'; +import { render, screen } from '@testing-library/react'; import { LoginButton } from '../login-button.jsx'; -import { render } from '@testing-library/react'; - -// configure({ adapter: new Adapter() }); describe('LoginButton', () => { - it('should render one component', () => { - render(); - // const wrapper = shallow(); - // expect(wrapper).toHaveLength(1); + it('should have the right className base on the property', () => { + render(); + const button = screen.getByRole('button'); + expect(button).toHaveClass('acc-info__button'); }); - // it('should have Button', () => { - // const wrapper = shallow(); - // expect(wrapper.find(Button).exists()).toBe(true); - // }); - // it('should have onClick prop of Button as an instance of Function', () => { - // const wrapper = shallow(); - // expect(wrapper.find(Button).prop('onClick')).toBeInstanceOf(Function); - // }); }); From fe8cc3f78ed85360df4f0ff589a7773d1716276a Mon Sep 17 00:00:00 2001 From: Niloofar Sadeghi <93518187+niloofar-deriv@users.noreply.github.com> Date: Mon, 9 Jan 2023 15:13:14 +0330 Subject: [PATCH 14/84] refactor: account-info test file (#7244) Co-authored-by: Niloofar Sadeghi --- .../src/components/popover/popover.tsx | 1 + .../Header/__tests__/account-info.spec.tsx | 167 ++++++++++-------- .../Components/Layout/Header/account-info.jsx | 13 +- 3 files changed, 107 insertions(+), 74 deletions(-) diff --git a/packages/components/src/components/popover/popover.tsx b/packages/components/src/components/popover/popover.tsx index 9661d670aab6..b175ec643413 100644 --- a/packages/components/src/components/popover/popover.tsx +++ b/packages/components/src/components/popover/popover.tsx @@ -57,6 +57,7 @@ const Popover = ({ return (
} className={classNames({ 'dc-popover__wrapper': relative_render })} onClick={onClick} diff --git a/packages/core/src/App/Components/Layout/Header/__tests__/account-info.spec.tsx b/packages/core/src/App/Components/Layout/Header/__tests__/account-info.spec.tsx index 61c7399fc01a..106d5f706b96 100644 --- a/packages/core/src/App/Components/Layout/Header/__tests__/account-info.spec.tsx +++ b/packages/core/src/App/Components/Layout/Header/__tests__/account-info.spec.tsx @@ -1,77 +1,102 @@ -// TODO refactor old tests in this component import React from 'react'; +import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; import AccountInfo from '../account-info.jsx'; -import { Icon } from '@deriv/components'; -import { AccountSwitcher } from '../../../../Containers/AccountSwitcher'; -import { CSSTransition } from 'react-transition-group'; -import { render } from '@testing-library/react'; -describe('AccountInfo', () => { - it('should render one component', () => { +describe('AccountInfo component', () => { + it('should show "disabled_message" when "is_disabled" property is "true"', () => { + render(); + const popover = screen.getByTestId('dt_popover_container'); + userEvent.hover(popover); + const disabled_message = screen.getByText(/test disabled message/i); + expect(disabled_message).toBeInTheDocument(); + }); + + it('should have "acc-info--is-disabled" class when "is_disabled" property is "true"', () => { + render(); + const div_element = screen.getByTestId('dt_acc_info'); + expect(div_element).toHaveClass('acc-info--is-disabled'); + }); + + it('should have "acc-info--is-virtual" class when "is_virtual" property is "true"', () => { + render(); + const div_element = screen.getByTestId('dt_acc_info'); + expect(div_element).toHaveClass('acc-info--is-virtual'); + }); + + it('should not have "acc-info--show" class when "is_dialog_on" property is "false"', () => { + render(); + const div_element = screen.getByTestId('dt_acc_info'); + expect(div_element).not.toHaveClass('acc-info--show'); + }); + + it('can not "toggleDialog" when "is_disabled" property is "true"', () => { + const toggleDialog = jest.fn(); + render(); + const div_element = screen.getByTestId('dt_acc_info'); + userEvent.click(div_element); + expect(toggleDialog).toHaveBeenCalledTimes(0); + }); + + it('should render "AccountInfoIcon" with the proper className', () => { + const { rerender } = render(); + expect(screen.getByTestId('dt_icon')).toHaveClass('acc-info__id-icon--usd'); + + rerender(); + expect(screen.getByTestId('dt_icon')).toHaveClass('acc-info__id-icon--virtual'); + }); + + it('should render "IcLock" icon when "is_disabled" property is "true"', () => { + render(); + const icon = screen.getByTestId('dt_lock_icon'); + expect(icon).toBeInTheDocument(); + }); + + it('should render "IcChevronDownBold" icon when "is_disabled" property is "false"', () => { + render(); + const icon = screen.getByTestId('dt_select_arrow'); + expect(icon).toBeInTheDocument(); + }); + + it('should not render balance section when "currency" property passed', () => { render(); - // const wrapper = shallow(); - // expect(wrapper).toHaveLength(1); + const balance_wrapper = screen.queryByTestId('dt_balance'); + expect(balance_wrapper).not.toBeInTheDocument(); + }); + + it('should have "acc-info__balance--no-currency" class when "is_virtual" property is "false" and we don\'t have "currency" property', () => { + render(); + const balance_wrapper = screen.getByTestId('dt_balance'); + expect(balance_wrapper).toHaveClass('acc-info__balance--no-currency'); + }); + + it('should have "No currency assigned" text when we don\'t have "currency" property', () => { + render(); + const text = screen.getByText(/no currency assigned/i); + expect(text).toBeInTheDocument(); + }); + + it('should have "123456789 USD" text when we have "currency" and "balance" properties', () => { + render(); + const text = screen.getByText(/123456789 usd/i); + expect(text).toBeInTheDocument(); + expect(screen.queryByText(/no currency assigned/i)).not.toBeInTheDocument(); + }); + + it('should render proper "AccountType" base on the passed properties', () => { + const { rerender } = render(); + expect(screen.getByText(/multipliers/i)).toBeInTheDocument(); + + rerender(); + expect(screen.getByText(/gaming/i)).toBeInTheDocument(); + + rerender(); + expect(screen.getByText(/options/i)).toBeInTheDocument(); + + rerender(); + expect(screen.getByText(/options/i)).toBeInTheDocument(); + + rerender(); + expect(screen.getByText(/derived/i)).toBeInTheDocument(); }); - // it('should have .acc-info--show if is_dialog_on is true', () => { - // const wrapper = shallow(); - // expect(wrapper.find('.acc-info--show').exists()).toBe(true); - // }); - // it('should not have .acc-info--show if is_dialog_on is false', () => { - // const wrapper = shallow(); - // expect(wrapper.find('.acc-info--show').exists()).toBe(false); - // }); - // it('should have .acc-info--is-virtual if is_virtual is true', () => { - // const wrapper = shallow(); - // expect(wrapper.find('.acc-info--is-virtual').exists()).toBe(true); - // }); - // it('should not have .acc-info--is-virtual if is_virtual is false', () => { - // const wrapper = shallow(); - // expect(wrapper.find('.acc-info--is-virtual').exists()).toBe(false); - // }); - // it('should contain and children', () => { - // const wrapper = shallow( - // true} is_upgrade_enabled={true} /> - // ); - // expect( - // wrapper.contains( - // - //
- // true} is_upgrade_enabled={true} /> - //
- //
- // ) - // ); - // }); - // it("should have CSSTransition's prop 'in' equal to false when is_dialog_on is false", () => { - // const wrapper = shallow( - // true} is_upgrade_enabled={true} /> - // ); - // expect(wrapper.find(CSSTransition).prop('in')).toBe(false); - // }); - // it("should have CSSTransition's prop 'in' equal to true when is_dialog_on is true", () => { - // const wrapper = shallow( - // true} is_upgrade_enabled={true} /> - // ); - // expect(wrapper.find(CSSTransition).prop('in')).toBe(true); - // }); - // it("should have AccountSwitcher's prop 'is_visible' equal to true when is_dialog_on is true", () => { - // const wrapper = shallow( - // true} is_upgrade_enabled={true} /> - // ); - // expect(wrapper.find(AccountSwitcher).prop('is_visible')).toBe(true); - // }); - // it("should have AccountSwitcher's prop 'is_visible' equal to false when is_dialog_on is false", () => { - // const wrapper = shallow( - // true} is_upgrade_enabled={true} /> - // ); - // expect(wrapper.find(AccountSwitcher).prop('is_visible')).toBe(false); - // }); - // it('should not have .acc-balance-amount when balance is undefined', () => { - // const wrapper = shallow(); - // expect(wrapper.find('.acc-balance-amount').exists()).toBe(false); - // }); - // it('should render balance when balance is passed in props', () => { - // const wrapper = shallow(); - // expect(wrapper.contains(

123456789 USD

)).toBe(true); - // }); }); diff --git a/packages/core/src/App/Components/Layout/Header/account-info.jsx b/packages/core/src/App/Components/Layout/Header/account-info.jsx index 69b5f254fbf4..ad02d60a8813 100644 --- a/packages/core/src/App/Components/Layout/Header/account-info.jsx +++ b/packages/core/src/App/Components/Layout/Header/account-info.jsx @@ -19,6 +19,7 @@ const AccountInfoWrapper = ({ is_disabled, disabled_message, children }) => const AccountInfoIcon = ({ is_virtual, currency }) => ( { - const currency_lower = currency.toLowerCase(); + const currency_lower = currency?.toLowerCase(); return (

)} {is_disabled ? ( - + ) : ( - + )}

From 773ece19a01ce0329c88270dab205976b5a24e99 Mon Sep 17 00:00:00 2001 From: Niloofar Sadeghi <93518187+niloofar-deriv@users.noreply.github.com> Date: Mon, 9 Jan 2023 15:15:19 +0330 Subject: [PATCH 15/84] Niloofar Sadeghi / Refactor tests in the network-status.spec.tsx file (#7230) * test: writting test for network-status component * refactor: improve namings * refactor: improve tests * build: remove extra packages from core Co-authored-by: Niloofar Sadeghi --- .../src/components/popover/popover.tsx | 1 + .../Footer/__tests__/network-status.spec.tsx | 90 +++++++++---------- .../Layout/Footer/network-status.jsx | 3 +- 3 files changed, 44 insertions(+), 50 deletions(-) diff --git a/packages/components/src/components/popover/popover.tsx b/packages/components/src/components/popover/popover.tsx index b175ec643413..eab1a0a1737a 100644 --- a/packages/components/src/components/popover/popover.tsx +++ b/packages/components/src/components/popover/popover.tsx @@ -61,6 +61,7 @@ const Popover = ({ ref={hover_ref as RefObject} className={classNames({ 'dc-popover__wrapper': relative_render })} onClick={onClick} + data-testid='dt_popover_wrapper' > {relative_render && (
diff --git a/packages/core/src/App/Components/Layout/Footer/__tests__/network-status.spec.tsx b/packages/core/src/App/Components/Layout/Footer/__tests__/network-status.spec.tsx index d10b18e9a637..c1bfcf1984f2 100644 --- a/packages/core/src/App/Components/Layout/Footer/__tests__/network-status.spec.tsx +++ b/packages/core/src/App/Components/Layout/Footer/__tests__/network-status.spec.tsx @@ -1,56 +1,48 @@ -// TODO refactor old tests in this component import React from 'react'; -import { Popover } from '@deriv/components'; -import { NetworkStatus } from '../network-status.jsx'; +import userEvent from '@testing-library/user-event'; import { render, screen } from '@testing-library/react'; +import { NetworkStatus } from '../network-status.jsx'; + +const MockNetworkStatus = ({ is_mobile = true }) => ( + +); + +describe('network-status component', () => { + it('should has "network-status__wrapper--is-mobile" class when the "is_mobile" property is true', () => { + render(); + const div_element = screen.getByTestId('dt_network_status'); + expect(div_element).toHaveClass('network-status__wrapper--is-mobile'); + }); -const status = { - class: 'online', - tooltip: 'Online', -}; + it('should has correct class based on class passed in the "status" property', () => { + const { rerender } = render(); + expect(screen.getByTestId('dt_network_status_element')).toHaveClass('network-status__circle--offline'); -describe('NetworkStatus Component', () => { - it('should has "network-status__wrapper--is-mobile" class when the "is_mobile" is true', () => { - render(); - const divElement = screen.getByTestId('dt_network_status_id'); - expect(divElement).toHaveClass('network-status__wrapper--is-mobile'); + rerender(); + expect(screen.getByTestId('dt_network_status_element')).toHaveClass('network-status__circle--online'); + + rerender(); + expect(screen.getByTestId('dt_network_status_element')).toHaveClass('network-status__circle--blinker'); + }); + + it('should contain "Popover" with default message when "status.tooltip" is empty', () => { + render(); + const popover_wrapper = screen.getByTestId('dt_popover_wrapper'); + userEvent.hover(popover_wrapper); + const network_status = screen.getByText(/connecting to server/i); + expect(network_status).toBeInTheDocument(); }); - // it('should render one component', () => { - // const wrapper = shallow(); - // expect(wrapper).toHaveLength(1); - // }); - // it('should have correct class based on class passed in status', () => { - // const wrapper = shallow(); - // expect(wrapper.find('.network-status__circle--online').exists()).toBe(true); - // wrapper.setProps({ status: { class: 'offline' } }); - // expect(wrapper.find('.network-status__circle--offline').exists()).toBe(true); - // wrapper.setProps({ status: { class: 'blinker' } }); - // expect(wrapper.find('.network-status__circle--blinker').exists()).toBe(true); - // }); - // it('should contain Tooltip message passed in status', () => { - // const wrapper = shallow(); - // expect( - // wrapper.contains( - // - //
- // - // ) - // ).toBe(true); - // }); - // it('should contain Popover with default message and div with only default class if status does not contain them', () => { - // status = {}; - // const wrapper = shallow(); - // expect( - // wrapper.contains( - // - //
- // - // ) - // ).toBe(true); - // }); + it('should contain "Tooltip" message passed in the status property', () => { + const status = { + class: 'online', + tooltip: 'Online', + }; + + render(); + const popover_wrapper = screen.getByTestId('dt_popover_wrapper'); + userEvent.hover(popover_wrapper); + const network_status = screen.getByText(/online/i); + expect(network_status).toBeInTheDocument(); + }); }); diff --git a/packages/core/src/App/Components/Layout/Footer/network-status.jsx b/packages/core/src/App/Components/Layout/Footer/network-status.jsx index 369286c5dc53..9d6f844288b7 100644 --- a/packages/core/src/App/Components/Layout/Footer/network-status.jsx +++ b/packages/core/src/App/Components/Layout/Footer/network-status.jsx @@ -8,6 +8,7 @@ import { connect } from 'Stores/connect'; const NetworkStatus = ({ is_mobile, status }) => { const network_status_element = (
{ ); return (
{is_mobile ? ( network_status_element From 67881eaffec790645fce6d292df6887bef0ca6ef Mon Sep 17 00:00:00 2001 From: Farzin Mirzaie <72082844+farzin-deriv@users.noreply.github.com> Date: Mon, 9 Jan 2023 19:54:47 +0800 Subject: [PATCH 16/84] Farzin/67865/Add an option in BackOffice for clients to update their residential address (when the address differs from the one on the submitted document) (#6673) * feat(account): :construction: wip * feat(account): :construction: wip * feat(account): :construction: wip * feat(account): :construction: wip * feat(account): :construction: wip * feat(account): :construction: wip * feat(account): :construction: wip * feat(account): :construction: wip * feat(account): :construction: wip * feat(account): :construction: wip * feat(account): :construction: wip * feat(account): :construction: wip * feat(account): :construction: wip * fix(account): :memo: resolve PR comments * fix(account): :bug: display `POAAddressMismatchHintBox` only wheh `poa_address_mismatch` * refactor(account): :recycle: relay on BE response to show the edit result notification * refactor(account): :recycle: relay on BE response to show the edit result notification * refactor(account): :recycle: relay on BE response to show the edit result notification * chore(account): :loud_sound: add some logs for testing * chore(account): :mute: remove test logs * fix(account): :bug: increase the timeout duration * ci: :green_heart: trigger build Co-authored-by: Farzin Mirzaie Co-authored-by: Farzin Mirzaie --- .../poa-address-mismatch-hint-box/index.ts | 3 + .../poa-address-mismatch-hint-box.scss | 13 +++++ .../poa-address-mismatch-hint-box.tsx | 33 +++++++++++ .../__tests__/personal-details.spec.js | 2 + .../PersonalDetails/personal-details.jsx | 26 ++++++++- .../Containers/app-notification-messages.jsx | 3 + .../core/src/Stores/notification-store.js | 56 ++++++++++++++++++- 7 files changed, 134 insertions(+), 2 deletions(-) create mode 100644 packages/account/src/Components/poa-address-mismatch-hint-box/index.ts create mode 100644 packages/account/src/Components/poa-address-mismatch-hint-box/poa-address-mismatch-hint-box.scss create mode 100644 packages/account/src/Components/poa-address-mismatch-hint-box/poa-address-mismatch-hint-box.tsx diff --git a/packages/account/src/Components/poa-address-mismatch-hint-box/index.ts b/packages/account/src/Components/poa-address-mismatch-hint-box/index.ts new file mode 100644 index 000000000000..31e248e51349 --- /dev/null +++ b/packages/account/src/Components/poa-address-mismatch-hint-box/index.ts @@ -0,0 +1,3 @@ +import POAAddressMismatchHintBox from './poa-address-mismatch-hint-box'; + +export default POAAddressMismatchHintBox; diff --git a/packages/account/src/Components/poa-address-mismatch-hint-box/poa-address-mismatch-hint-box.scss b/packages/account/src/Components/poa-address-mismatch-hint-box/poa-address-mismatch-hint-box.scss new file mode 100644 index 000000000000..78e06f14d253 --- /dev/null +++ b/packages/account/src/Components/poa-address-mismatch-hint-box/poa-address-mismatch-hint-box.scss @@ -0,0 +1,13 @@ +.poa-address-mismatch-hint-box { + &--wrapper { + .dc-hint-box { + align-items: start; + max-width: 40rem; + + &__icon { + min-width: 1.6rem; + min-height: 1.6rem; + } + } + } +} diff --git a/packages/account/src/Components/poa-address-mismatch-hint-box/poa-address-mismatch-hint-box.tsx b/packages/account/src/Components/poa-address-mismatch-hint-box/poa-address-mismatch-hint-box.tsx new file mode 100644 index 000000000000..fc9e6e17918d --- /dev/null +++ b/packages/account/src/Components/poa-address-mismatch-hint-box/poa-address-mismatch-hint-box.tsx @@ -0,0 +1,33 @@ +import React from 'react'; +import { Text, HintBox } from '@deriv/components'; +import { Localize } from '@deriv/translations'; +import './poa-address-mismatch-hint-box.scss'; + +const POAAddressMismatchHintBox = () => { + const ref = React.useRef(null); + + React.useEffect(() => { + // To make scrolling work on mobile we need to add a delay. + setTimeout(() => ref?.current?.scrollIntoView(), 0); + }, []); + + return ( +
+ + + + } + is_warn + /> +
+ ); +}; + +export default POAAddressMismatchHintBox; diff --git a/packages/account/src/Sections/Profile/PersonalDetails/__tests__/personal-details.spec.js b/packages/account/src/Sections/Profile/PersonalDetails/__tests__/personal-details.spec.js index 27c553aad1c7..5908e032cb17 100644 --- a/packages/account/src/Sections/Profile/PersonalDetails/__tests__/personal-details.spec.js +++ b/packages/account/src/Sections/Profile/PersonalDetails/__tests__/personal-details.spec.js @@ -21,6 +21,8 @@ describe('', () => { const history = createBrowserHistory(); it('should_render_successfully', async () => { + window.HTMLElement.prototype.scrollIntoView = jest.fn(); + const promise = Promise.resolve(); const fetchResidenceList = jest.fn(() => promise); const fetchStatesList = jest.fn(() => promise); diff --git a/packages/account/src/Sections/Profile/PersonalDetails/personal-details.jsx b/packages/account/src/Sections/Profile/PersonalDetails/personal-details.jsx index e66fbcdce99d..7cd1d57926be 100644 --- a/packages/account/src/Sections/Profile/PersonalDetails/personal-details.jsx +++ b/packages/account/src/Sections/Profile/PersonalDetails/personal-details.jsx @@ -44,6 +44,7 @@ import FormBody from 'Components/form-body'; import FormBodySection from 'Components/form-body-section'; import FormSubHeader from 'Components/form-sub-header'; import LoadErrorMessage from 'Components/load-error-message'; +import POAAddressMismatchHintBox from 'Components/poa-address-mismatch-hint-box'; import { getEmploymentStatusList } from 'Sections/Assessment/FinancialAssessment/financial-information-list'; const validate = (errors, values) => (fn, arr, err_msg) => { @@ -109,6 +110,9 @@ export const PersonalDetailsForm = ({ states_list, current_landing_company, refreshNotifications, + showPOAAddressMismatchSuccessNotification, + showPOAAddressMismatchFailureNotification, + Notifications, fetchResidenceList, fetchStatesList, has_residence, @@ -117,6 +121,7 @@ export const PersonalDetailsForm = ({ history, is_social_signup, updateAccountStatus, + has_poa_address_mismatch, }) => { const [is_loading, setIsLoading] = React.useState(true); @@ -241,6 +246,15 @@ export const PersonalDetailsForm = ({ setIsBtnLoading(false); setSubmitting(false); } else { + // Adding a delay to show the notification after the page reload + setTimeout(() => { + if (data.set_settings.notification) { + showPOAAddressMismatchSuccessNotification(); + } else if (has_poa_address_mismatch) { + showPOAAddressMismatchFailureNotification(); + } + }, 2000); + // force request to update settings cache since settings have been updated const response = await WS.authorized.storage.getSettings(); if (response.error) { @@ -548,6 +562,7 @@ export const PersonalDetailsForm = ({ dirty, }) => ( <> + {Notifications && } {show_form && (
+ {has_poa_address_mismatch && }
@@ -1269,6 +1285,9 @@ PersonalDetailsForm.propTypes = { residence_list: PropTypes.arrayOf(PropTypes.object), states_list: PropTypes.array, refreshNotifications: PropTypes.func, + showPOAAddressMismatchSuccessNotification: PropTypes.func, + showPOAAddressMismatchFailureNotification: PropTypes.func, + Notifications: PropTypes.node, fetchResidenceList: PropTypes.func, fetchStatesList: PropTypes.func, has_residence: PropTypes.bool, @@ -1278,9 +1297,10 @@ PersonalDetailsForm.propTypes = { history: PropTypes.object, is_social_signup: PropTypes.bool, updateAccountStatus: PropTypes.func, + has_poa_address_mismatch: PropTypes.bool, }; -export default connect(({ client, notifications }) => ({ +export default connect(({ client, notifications, ui }) => ({ account_settings: client.account_settings, has_residence: client.has_residence, getChangeableFields: client.getChangeableFields, @@ -1296,5 +1316,9 @@ export default connect(({ client, notifications }) => ({ fetchStatesList: client.fetchStatesList, is_social_signup: client.is_social_signup, refreshNotifications: notifications.refreshNotifications, + showPOAAddressMismatchSuccessNotification: notifications.showPOAAddressMismatchSuccessNotification, + showPOAAddressMismatchFailureNotification: notifications.showPOAAddressMismatchFailureNotification, + Notifications: ui.notification_messages_ui, updateAccountStatus: client.updateAccountStatus, + has_poa_address_mismatch: client.account_status.status?.includes('poa_address_mismatch'), }))(withRouter(PersonalDetailsForm)); diff --git a/packages/core/src/App/Containers/app-notification-messages.jsx b/packages/core/src/App/Containers/app-notification-messages.jsx index f8adf2ef9720..be1af2bfab3e 100644 --- a/packages/core/src/App/Containers/app-notification-messages.jsx +++ b/packages/core/src/App/Containers/app-notification-messages.jsx @@ -120,6 +120,9 @@ const AppNotificationMessages = ({ 'poa_verified', 'poa_failed', 'resticted_mt5_with_failed_poa', + 'poa_address_mismatch_warning', + 'poa_address_mismatch_success', + 'poa_address_mismatch_failure', ].includes(message.key) || message.type === 'p2p_completed_order' : true; diff --git a/packages/core/src/Stores/notification-store.js b/packages/core/src/Stores/notification-store.js index 5529304d3117..e223bd0e3d06 100644 --- a/packages/core/src/Stores/notification-store.js +++ b/packages/core/src/Stores/notification-store.js @@ -203,7 +203,11 @@ export default class NotificationStore extends BaseStore { if (LocalStore.get('active_loginid') !== 'null') this.resetVirtualBalanceNotification(LocalStore.get('active_loginid')); - if (window.location.pathname !== routes.cashier_p2p) { + if (window.location.pathname === routes.personal_details) { + this.notification_messages = this.notification_messages.filter( + notification => notification.platform === 'Account' + ); + } else if (window.location.pathname !== routes.cashier_p2p) { this.notification_messages = this.notification_messages.filter(notification => { if (notification.platform === undefined || notification.platform.includes(getPathname())) { return true; @@ -280,6 +284,8 @@ export default class NotificationStore extends BaseStore { withdrawal_locked, } = getStatusValidations(status || []); + this.handlePOAAddressMismatchNotifications(); + if (!has_enabled_two_fa && obj_total_balance.amount_real > 0) { this.addNotificationMessage(this.client_notifications.two_f_a); } else { @@ -1310,4 +1316,52 @@ export default class NotificationStore extends BaseStore { updateNotifications(notifications_array) { this.notifications = notifications_array.filter(message => !excluded_notifications.includes(message.key)); } + + handlePOAAddressMismatchNotifications = () => { + const { client } = this.root_store; + const { account_status } = client; + const { status } = account_status; + const { poa_address_mismatch } = getStatusValidations(status || []); + + if (poa_address_mismatch) { + this.showPOAAddressMismatchWarningNotification(); + } + }; + + showPOAAddressMismatchWarningNotification = () => { + this.addNotificationMessage({ + key: 'poa_address_mismatch_warning', + header: localize('Please update your address'), + message: localize( + 'It appears that the address in your document doesn’t match the address in your Deriv profile. Please update your personal details now with the correct address.' + ), + action: { + route: routes.personal_details, + text: localize('Go to Personal details'), + }, + type: 'warning', + should_show_again: true, + }); + }; + + showPOAAddressMismatchSuccessNotification = () => { + this.addNotificationMessage({ + key: 'poa_address_mismatch_success', + header: localize('Your proof of address has been verified'), + type: 'announce', + should_show_again: true, + platform: 'Account', + }); + }; + + showPOAAddressMismatchFailureNotification = () => { + this.addNotificationMessage({ + key: 'poa_address_mismatch_failure', + header: localize('Your address doesn’t match your profile'), + message: localize('Update the address in your profile.'), + type: 'danger', + should_show_again: true, + platform: 'Account', + }); + }; } From a232823c45a2162f4580edb2bb46b2a70e9d5b07 Mon Sep 17 00:00:00 2001 From: Bahar Date: Mon, 9 Jan 2023 19:55:50 +0800 Subject: [PATCH 17/84] bahar/83538/feat: deriv-ez-fund-transfer-web-page-development (#7220) * feat: deriv-ez-fund-transfer-web-page-development * fix: responsive_side_note_texts --- .../__tests__/account-transfer-form.spec.tsx | 3 + .../account-transfer-form-side-note.tsx | 66 ++++++++++++++-- .../account-transfer-form.scss | 6 +- .../account-transfer-form.tsx | 59 ++++++++++---- .../account-transfer-receipt.tsx | 16 ++-- .../__tests__/account-transfer-store.spec.js | 38 ++++++++++ .../src/stores/account-transfer-store.js | 76 +++++++++++++++---- packages/cashier/src/stores/general-store.js | 9 ++- .../cashier/src/types/shared/account.types.ts | 1 + .../components/icon/derivez/ic-derivez.svg | 1 + packages/core/src/Constants/cfd-text.js | 1 + packages/shared/brand.config.json | 4 + packages/shared/src/utils/brand/brand.ts | 1 + packages/shared/src/utils/cfd/cfd.ts | 5 +- .../shared/src/utils/platform/platform.ts | 1 + 15 files changed, 243 insertions(+), 44 deletions(-) create mode 100644 packages/components/src/components/icon/derivez/ic-derivez.svg diff --git a/packages/cashier/src/pages/account-transfer/account-transfer-form/__tests__/account-transfer-form.spec.tsx b/packages/cashier/src/pages/account-transfer/account-transfer-form/__tests__/account-transfer-form.spec.tsx index 5b76f237f015..82a2f9816c07 100644 --- a/packages/cashier/src/pages/account-transfer/account-transfer-form/__tests__/account-transfer-form.spec.tsx +++ b/packages/cashier/src/pages/account-transfer/account-transfer-form/__tests__/account-transfer-form.spec.tsx @@ -83,6 +83,9 @@ describe('', () => { }, }, }, + common: { + is_from_derivgo: false, + }, }; }); beforeAll(() => { diff --git a/packages/cashier/src/pages/account-transfer/account-transfer-form/account-transfer-form-side-note.tsx b/packages/cashier/src/pages/account-transfer/account-transfer-form/account-transfer-form-side-note.tsx index a547892e9ce7..d65ea41c7912 100644 --- a/packages/cashier/src/pages/account-transfer/account-transfer-form/account-transfer-form-side-note.tsx +++ b/packages/cashier/src/pages/account-transfer/account-transfer-form/account-transfer-form-side-note.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { Localize } from '@deriv/translations'; import { GetLimits } from '@deriv/api-types'; -import { DesktopWrapper, Text } from '@deriv/components'; +import { Text } from '@deriv/components'; import { getCurrencyDisplayCode, getPlatformSettings } from '@deriv/shared'; import { TReactChildren } from 'Types'; @@ -13,8 +13,10 @@ type TAccountTransferNoteProps = { allowed_transfers_count: GetLimits['daily_transfers']; currency: string; is_crypto_to_crypto_transfer: boolean; + is_derivez_transfer: boolean; is_dxtrade_allowed: boolean; is_dxtrade_transfer: boolean; + is_from_derivgo: boolean; is_mt_transfer: boolean; minimum_fee: string | number; transfer_fee: string | number; @@ -31,17 +33,30 @@ const AccountTransferNote = ({ allowed_transfers_count, currency, is_crypto_to_crypto_transfer, + is_derivez_transfer, is_dxtrade_allowed, is_dxtrade_transfer, + is_from_derivgo, is_mt_transfer, minimum_fee, transfer_fee, }: TAccountTransferNoteProps) => { const platform_name_dxtrade = getPlatformSettings('dxtrade').name; const platform_name_mt5 = getPlatformSettings('mt5').name; + const platform_name_derivez = getPlatformSettings('derivez').name; + //TODO: to refactor derivez notes once this account is used in deriv app and not only from derivgo const getTransferFeeNote = () => { if (transfer_fee === 0) { + if (is_from_derivgo && is_derivez_transfer) { + return ( + + ); + } + return is_dxtrade_allowed ? ( ); } else if (transfer_fee === 1) { + if (is_from_derivgo && is_derivez_transfer) { + return ( + + ); + } + return is_dxtrade_allowed ? ( ); - } else if (transfer_fee === 2 && (is_mt_transfer || is_dxtrade_transfer)) { + } else if (transfer_fee === 2 && (is_mt_transfer || is_dxtrade_transfer || is_derivez_transfer)) { + if (is_from_derivgo && is_derivez_transfer) { + return ( + + ); + } + return is_dxtrade_allowed ? ( ); - } else if (transfer_fee === 2 && !is_mt_transfer && !is_dxtrade_transfer) { + } else if (transfer_fee === 2 && !is_mt_transfer && !is_dxtrade_transfer && !is_derivez_transfer) { return ( - {is_dxtrade_allowed ? ( + {is_from_derivgo && is_derivez_transfer ? ( + + ) : is_dxtrade_allowed ? ( - {is_dxtrade_allowed ? ( + {is_from_derivgo && is_derivez_transfer ? ( + + ) : is_dxtrade_allowed ? ( { return ( {(account.currency || account.platform_icon) && ( -
+
{
- {account.is_dxtrade || account.is_mt ? account.text : getCurrencyName(account.currency)} - - - {account.value} + {account.is_dxtrade || account.is_mt || account.is_derivez + ? account.text + : getCurrencyName(account.currency)} + {!account.is_derivez && ( + + {account.value} + + )}
@@ -60,17 +64,20 @@ const AccountOption = ({ account, idx }: TAccountsList) => { ); }; -let remaining_transfers: boolean | undefined; let accounts_from: Array = []; -let mt_accounts_from: Array = []; -let dxtrade_accounts_from: Array = []; let accounts_to: Array = []; -let mt_accounts_to: Array = []; +let derivez_accounts_from: Array = []; +let derivez_accounts_to: Array = []; +let dxtrade_accounts_from: Array = []; let dxtrade_accounts_to: Array = []; +let mt_accounts_from: Array = []; +let mt_accounts_to: Array = []; +let remaining_transfers: boolean | undefined; const AccountTransferForm = observer(({ error, setSideNotes }: TAccountTransferFormProps) => { const { client, + common: { is_from_derivgo }, modules: { cashier }, } = useStore(); @@ -113,10 +120,12 @@ const AccountTransferForm = observer(({ error, setSideNotes }: TAccountTransferF const { daily_transfers } = account_limits; const mt5_remaining_transfers = daily_transfers?.mt5; const dxtrade_remaining_transfers = daily_transfers?.dxtrade; + const derivez_remaining_transfers = daily_transfers?.derivez; const internal_remaining_transfers = daily_transfers?.internal; const is_mt_transfer = selected_to.is_mt || selected_from.is_mt; const is_dxtrade_transfer = selected_to.is_dxtrade || selected_from.is_dxtrade; + const is_derivez_transfer = selected_to.is_derivez || selected_from.is_derivez; const platform_name_dxtrade = getPlatformSettings('dxtrade').name; @@ -144,14 +153,18 @@ const AccountTransferForm = observer(({ error, setSideNotes }: TAccountTransferF return selected_from.currency === selected_to.currency ? !amount : !converter_from_amount; }; - const getAccounts = (type: string, { is_mt, is_dxtrade }: TAccount) => { + const getAccounts = (type: string, { is_mt, is_dxtrade, is_derivez }: TAccount) => { if (type === 'from') { if (is_mt) return mt_accounts_from; if (is_dxtrade) return dxtrade_accounts_from; + if (is_derivez) return derivez_accounts_from; + return accounts_from; } else if (type === 'to') { if (is_mt) return mt_accounts_to; if (is_dxtrade) return dxtrade_accounts_to; + if (is_derivez) return derivez_accounts_to; + return accounts_to; } return []; @@ -165,44 +178,54 @@ const AccountTransferForm = observer(({ error, setSideNotes }: TAccountTransferF accounts_from = []; mt_accounts_from = []; dxtrade_accounts_from = []; + derivez_accounts_from = []; accounts_to = []; mt_accounts_to = []; dxtrade_accounts_to = []; + derivez_accounts_to = []; accounts_list.forEach((account, idx) => { const text = ; const value = account.value; - const is_cfd_account = account.is_mt || account.is_dxtrade; + const is_cfd_account = account.is_mt || account.is_dxtrade || account.is_derivez; getAccounts('from', account).push({ text, value, is_mt: account.is_mt, is_dxtrade: account.is_dxtrade, + is_derivez: account.is_derivez, nativepicker_text: `${is_cfd_account ? account.market_type : getCurrencyName(account.currency)} (${ account.balance } ${is_cfd_account ? account.currency : account.text})`, }); const is_selected_from = account.value === selected_from.value; - if ((selected_from.is_mt && account.is_dxtrade) || (selected_from.is_dxtrade && account.is_mt)) return; + if ( + (selected_from.is_mt && (account.is_dxtrade || account.is_derivez)) || + (selected_from.is_dxtrade && (account.is_mt || account.is_derivez)) || + (selected_from.is_derivez && (account.is_mt || account.is_dxtrade)) + ) + return; // account from and to cannot be the same if (!is_selected_from) { const is_selected_from_mt = selected_from.is_mt && account.is_mt; const is_selected_from_dxtrade = selected_from.is_dxtrade && account.is_dxtrade; + const is_selected_from_derivez = selected_from.is_derivez && account.is_derivez; // cannot transfer to MT account from MT // cannot transfer to Dxtrade account from Dxtrade - const is_disabled = is_selected_from_mt || is_selected_from_dxtrade; + const is_disabled = is_selected_from_mt || is_selected_from_dxtrade || is_selected_from_derivez; getAccounts('to', account).push({ text, value, is_mt: account.is_mt, is_dxtrade: account.is_dxtrade, + is_derivez: account.is_derivez, disabled: is_disabled, nativepicker_text: `${is_cfd_account ? account.market_type : getCurrencyName(account.currency)} (${ account.balance @@ -216,6 +239,7 @@ const AccountTransferForm = observer(({ error, setSideNotes }: TAccountTransferF ...(dxtrade_accounts_from.length && { [localize('{{platform_name_dxtrade}} accounts', { platform_name_dxtrade })]: dxtrade_accounts_from, }), + ...(derivez_accounts_from.length && { [localize('Deriv EZ accounts')]: derivez_accounts_from }), ...(accounts_from.length && { [localize('Deriv accounts')]: accounts_from }), }); @@ -224,6 +248,7 @@ const AccountTransferForm = observer(({ error, setSideNotes }: TAccountTransferF ...(dxtrade_accounts_to.length && { [localize('{{platform_name_dxtrade}} accounts', { platform_name_dxtrade })]: dxtrade_accounts_to, }), + ...(derivez_accounts_to.length && { [localize('Deriv EZ accounts')]: derivez_accounts_to }), ...(accounts_to.length && { [localize('Deriv accounts')]: accounts_to }), }); }, [accounts_list, selected_to, selected_from]); // eslint-disable-line react-hooks/exhaustive-deps @@ -240,6 +265,7 @@ const AccountTransferForm = observer(({ error, setSideNotes }: TAccountTransferF internal: internal_remaining_transfers?.allowed, mt5: mt5_remaining_transfers?.allowed, dxtrade: dxtrade_remaining_transfers?.allowed, + derivez: derivez_remaining_transfers?.allowed, }} transfer_fee={transfer_fee} currency={selected_from.currency} @@ -249,6 +275,8 @@ const AccountTransferForm = observer(({ error, setSideNotes }: TAccountTransferF is_dxtrade_allowed={is_dxtrade_allowed} is_dxtrade_transfer={is_dxtrade_transfer} is_mt_transfer={is_mt_transfer} + is_from_derivgo={is_from_derivgo} + is_derivez_transfer={is_derivez_transfer} /> ); setSideNotes([ @@ -265,6 +293,8 @@ const AccountTransferForm = observer(({ error, setSideNotes }: TAccountTransferF return mt5_remaining_transfers?.available; } else if (is_dxtrade_transfer) { return dxtrade_remaining_transfers?.available; + } else if (is_derivez_transfer) { + return derivez_remaining_transfers?.available; } return internal_remaining_transfers?.available; }; @@ -523,6 +553,7 @@ const AccountTransferForm = observer(({ error, setSideNotes }: TAccountTransferF internal: internal_remaining_transfers?.allowed, mt5: mt5_remaining_transfers?.allowed, dxtrade: dxtrade_remaining_transfers?.allowed, + derivez: derivez_remaining_transfers?.allowed, }} transfer_fee={transfer_fee} currency={selected_from.currency} @@ -531,6 +562,8 @@ const AccountTransferForm = observer(({ error, setSideNotes }: TAccountTransferF is_dxtrade_allowed={is_dxtrade_allowed} is_dxtrade_transfer={is_dxtrade_transfer} is_mt_transfer={is_mt_transfer} + is_from_derivgo={is_from_derivgo} + is_derivez_transfer={is_derivez_transfer} /> diff --git a/packages/cashier/src/pages/account-transfer/account-transfer-receipt/account-transfer-receipt.tsx b/packages/cashier/src/pages/account-transfer/account-transfer-receipt/account-transfer-receipt.tsx index bbdd2eb99233..5fb87c7921c8 100644 --- a/packages/cashier/src/pages/account-transfer/account-transfer-receipt/account-transfer-receipt.tsx +++ b/packages/cashier/src/pages/account-transfer/account-transfer-receipt/account-transfer-receipt.tsx @@ -93,9 +93,11 @@ const AccountTransferReceipt = observer(({ history }: RouteComponentProps) => {
- - {selected_from.value} - + {!(is_from_derivgo && selected_from.is_derivez) && ( + + {selected_from.value} + + )}
@@ -108,9 +110,11 @@ const AccountTransferReceipt = observer(({ history }: RouteComponentProps) => {
- - {selected_to.value} - + {!(is_from_derivgo && selected_to.is_derivez) && ( + + {selected_to.value} + + )}
diff --git a/packages/cashier/src/stores/__tests__/account-transfer-store.spec.js b/packages/cashier/src/stores/__tests__/account-transfer-store.spec.js index 4c2a0dad6f73..c41b361fe153 100644 --- a/packages/cashier/src/stores/__tests__/account-transfer-store.spec.js +++ b/packages/cashier/src/stores/__tests__/account-transfer-store.spec.js @@ -45,6 +45,14 @@ const DXR_USD_account = { market_type: 'financial', }; +const DEZ_USD_account = { + account_type: 'derivez', + balance: '10.00', + currency: 'USD', + loginid: 'EZR10001', + market_type: 'all', +}; + beforeEach(() => { accounts = [ CR_USD_account, @@ -54,6 +62,7 @@ beforeEach(() => { { ...MT_USD_account, loginid: 'MTR40000265' }, { ...DXR_USD_account, loginid: 'DXR1002' }, { ...DXR_USD_account, loginid: 'DXR1003' }, + { ...DEZ_USD_account, loginid: 'EZR10001' }, ]; WS = { authorized: { @@ -109,6 +118,15 @@ beforeEach(() => { market_type: 'financial', platform: 'dxtrade', }, + { + account_id: 'EZR10001', + account_type: 'real', + balance: 0, + currency: 'USD', + login: 'EZR10001', + market_type: 'all', + platform: 'derivez', + }, ], }), wait: jest.fn(), @@ -132,6 +150,9 @@ beforeEach(() => { setAccountStatus: jest.fn(), setBalanceOtherAccounts: jest.fn(), }, + common: { + is_from_derivgo: false, + }, modules: { cashier: { general_store: { @@ -438,6 +459,23 @@ describe('AccountTransferStore', () => { expect(account_transfer_store.accounts_list.length).toBe(9); }); + it('should sort and set accounts when calling sortAccountsTransfer method when from derivgo', async () => { + await account_transfer_store.sortAccountsTransfer( + { + accounts: [...accounts, MT_USD_account, DXR_USD_account], + }, + true + ); + + expect(account_transfer_store.accounts_list[0].text).toMatch(/^Deriv X(.)*$/); + expect(account_transfer_store.accounts_list[1].text).toMatch(/^Deriv X(.)*$/); + expect(account_transfer_store.accounts_list[2].text).toMatch(/^Deriv X(.)*$/); + expect(account_transfer_store.accounts_list[3].text).toMatch(/^Deriv EZ(.)*$/); + expect(account_transfer_store.accounts_list[8].text).toBe('USD'); + expect(account_transfer_store.accounts_list[9].text).toBe('eUSDT'); + expect(account_transfer_store.accounts_list.length).toBe(10); + }); + it('should set current logged in client as the default transfer from account when calling sortAccountsTransfer method', async () => { await account_transfer_store.sortAccountsTransfer({ accounts }); diff --git a/packages/cashier/src/stores/account-transfer-store.js b/packages/cashier/src/stores/account-transfer-store.js index 5c83f800574d..1ad7be8bc5d5 100644 --- a/packages/cashier/src/stores/account-transfer-store.js +++ b/packages/cashier/src/stores/account-transfer-store.js @@ -143,9 +143,10 @@ export default class AccountTransferStore { // 2. fiat to mt & vice versa // 3. crypto to mt & vice versa async onMountAccountTransfer() { - const { client, modules } = this.root_store; + const { client, common, modules } = this.root_store; const { onMountCommon, setLoading, setOnRemount } = modules.cashier.general_store; const { active_accounts, is_logged_in } = client; + const { is_from_derivgo } = common; setLoading(true); setOnRemount(this.onMountAccountTransfer); @@ -174,11 +175,17 @@ export default class AccountTransferStore { return; } + if (!is_from_derivgo) { + transfer_between_accounts.accounts = transfer_between_accounts.accounts.filter( + account => account.account_type !== CFD_PLATFORMS.DERIVEZ + ); + } + if (!this.canDoAccountTransfer(transfer_between_accounts.accounts)) { return; } - await this.sortAccountsTransfer(transfer_between_accounts); + await this.sortAccountsTransfer(transfer_between_accounts, is_from_derivgo); this.setTransferFee(); this.setMinimumFee(); this.setTransferLimit(); @@ -248,12 +255,15 @@ export default class AccountTransferStore { setTransferLimit() { const is_mt_transfer = this.selected_from.is_mt || this.selected_to.is_mt; const is_dxtrade_transfer = this.selected_from.is_dxtrade || this.selected_to.is_dxtrade; + const is_derivez_transfer = this.selected_from.is_derivez || this.selected_to.is_derivez; let limits_key; if (is_mt_transfer) { limits_key = 'limits_mt5'; } else if (is_dxtrade_transfer) { limits_key = 'limits_dxtrade'; + } else if (is_derivez_transfer) { + limits_key = 'limits_derivez'; } else { limits_key = 'limits'; } @@ -275,7 +285,7 @@ export default class AccountTransferStore { }; } - async sortAccountsTransfer(response_accounts) { + async sortAccountsTransfer(response_accounts, is_from_derivgo) { const transfer_between_accounts = response_accounts || (await this.WS.authorized.transferBetweenAccounts()); if (!this.accounts_list.length) { if (transfer_between_accounts.error) { @@ -283,11 +293,20 @@ export default class AccountTransferStore { } } + if (!is_from_derivgo && transfer_between_accounts && Array.isArray(transfer_between_accounts.accounts)) { + transfer_between_accounts.accounts = transfer_between_accounts.accounts.filter( + account => account.account_type !== CFD_PLATFORMS.DERIVEZ + ); + } + const mt5_login_list = (await this.WS.storage.mt5LoginList())?.mt5_login_list; // TODO: move `tradingPlatformAccountsList` to deriv-api to use storage const dxtrade_accounts_list = (await this.WS.tradingPlatformAccountsList(CFD_PLATFORMS.DXTRADE)) ?.trading_platform_accounts; + const derivez_accounts_list = (await this.WS.tradingPlatformAccountsList(CFD_PLATFORMS.DERIVEZ)) + ?.trading_platform_accounts; + // TODO: remove this temporary mapping when API adds market_type and sub_account_type to transfer_between_accounts const accounts = transfer_between_accounts.accounts.map(account => { if (account.account_type === CFD_PLATFORMS.MT5 && Array.isArray(mt5_login_list) && mt5_login_list.length) { @@ -314,6 +333,17 @@ export default class AccountTransferStore { return { ...account, ...found_account, account_type: CFD_PLATFORMS.DXTRADE }; } + if ( + account.account_type === CFD_PLATFORMS.DERIVEZ && + Array.isArray(derivez_accounts_list) && + derivez_accounts_list.length + ) { + const found_account = derivez_accounts_list.find(acc => acc.login === account.loginid); + + if (found_account === undefined) return account; + + return { ...account, ...found_account, account_type: CFD_PLATFORMS.DERIVEZ }; + } return account; }); // sort accounts as follows: @@ -324,6 +354,8 @@ export default class AccountTransferStore { accounts.sort((a, b) => { const a_is_mt = a.account_type === CFD_PLATFORMS.MT5; const b_is_mt = b.account_type === CFD_PLATFORMS.MT5; + const a_is_derivez = a.account_type === CFD_PLATFORMS.DERIVEZ; + const b_is_derivez = b.account_type === CFD_PLATFORMS.DERIVEZ; const a_is_crypto = !a_is_mt && isCryptocurrency(a.currency); const b_is_crypto = !b_is_mt && isCryptocurrency(b.currency); const a_is_fiat = !a_is_mt && !a_is_crypto; @@ -336,6 +368,8 @@ export default class AccountTransferStore { return b.market_type === 'gaming' || b.market_type === 'synthetic' ? 1 : -1; } return 1; + } else if ((a_is_crypto && b_is_derivez) || (a_is_fiat && b_is_derivez) || (a_is_derivez && b_is_mt)) { + return -1; } else if ((a_is_crypto && b_is_crypto) || (a_is_fiat && b_is_fiat)) { return a.currency < b.currency ? -1 : 1; } else if ((a_is_crypto && b_is_mt) || (a_is_fiat && b_is_crypto) || (a_is_fiat && b_is_mt)) { @@ -351,15 +385,19 @@ export default class AccountTransferStore { const cfd_platforms = { mt5: { name: 'Deriv MT5', icon: 'IcMt5' }, dxtrade: { name: 'Deriv X', icon: 'IcDxtrade' }, + derivez: { name: 'Deriv EZ', icon: 'IcDerivez' }, }; const is_cfd = Object.keys(cfd_platforms).includes(account.account_type); const cfd_text_display = cfd_platforms[account.account_type]?.name; - const cfd_icon_display = `${cfd_platforms[account.account_type]?.icon}-${getCFDAccount({ - market_type: account.market_type, - sub_account_type: account.sub_account_type, - platform: account.account_type, - is_eu: this.root_store.client.is_eu, - })}`; + const cfd_icon_display = + account.account_type === CFD_PLATFORMS.DERIVEZ + ? `${cfd_platforms[account.account_type]?.icon}` + : `${cfd_platforms[account.account_type]?.icon}-${getCFDAccount({ + market_type: account.market_type, + sub_account_type: account.sub_account_type, + platform: account.account_type, + is_eu: this.root_store.client.is_eu, + })}`; const non_eu_accounts = account.landing_company_short && account.landing_company_short !== 'svg' && @@ -394,6 +432,7 @@ export default class AccountTransferStore { is_crypto: isCryptocurrency(account.currency), is_mt: account.account_type === CFD_PLATFORMS.MT5, is_dxtrade: account.account_type === CFD_PLATFORMS.DXTRADE, + is_derivez: account.account_type === CFD_PLATFORMS.DERIVEZ, ...(is_cfd && { platform_icon: cfd_icon_display, status: account?.status, @@ -474,13 +513,17 @@ export default class AccountTransferStore { } else if ( (selected_from.is_mt && this.selected_to.is_mt) || (selected_from.is_dxtrade && this.selected_to.is_dxtrade) || - (selected_from.is_dxtrade && this.selected_to.is_mt) || - (selected_from.is_mt && this.selected_to.is_dxtrade) + (selected_from.is_dxtrade && (this.selected_to.is_mt || this.selected_to.is_derivez)) || + (selected_from.is_mt && (this.selected_to.is_dxtrade || this.selected_to.is_derivez)) || + (selected_from.is_derivez && this.selected_to.is_derivez) || + (selected_from.is_derivez && (this.selected_to.is_dxtrade || this.selected_to.is_mt)) ) { // not allowed to transfer from MT to MT // not allowed to transfer from Dxtrade to Dxtrade // not allowed to transfer between MT and Dxtrade - const first_non_cfd = this.accounts_list.find(account => !account.is_mt && !account.is_dxtrade); + const first_non_cfd = this.accounts_list.find( + account => !account.is_mt && !account.is_dxtrade && !account.is_derivez + ); this.onChangeTransferTo({ target: { value: first_non_cfd.value } }); } @@ -509,8 +552,9 @@ export default class AccountTransferStore { } requestTransferBetweenAccounts = async ({ amount }) => { - const { client, modules } = this.root_store; + const { client, modules, common } = this.root_store; const { setLoading } = modules.cashier.general_store; + const { is_from_derivgo } = common; const { is_logged_in, responseMt5LoginList, @@ -538,6 +582,12 @@ export default class AccountTransferStore { amount ); + if (!is_from_derivgo && transfer_between_accounts && Array.isArray(transfer_between_accounts.accounts)) { + transfer_between_accounts.accounts = transfer_between_accounts.accounts.filter( + account => account.account_type !== CFD_PLATFORMS.DERIVEZ + ); + } + if (is_mt_transfer) this.setIsMT5TransferInProgress(false); if (transfer_between_accounts.error) { diff --git a/packages/cashier/src/stores/general-store.js b/packages/cashier/src/stores/general-store.js index 4e8dc10aa0d8..75d0e468ba1f 100644 --- a/packages/cashier/src/stores/general-store.js +++ b/packages/cashier/src/stores/general-store.js @@ -328,6 +328,7 @@ export default class GeneralStore extends BaseStore { async onMountCommon(should_remount) { const { client, common, modules } = this.root_store; + const { is_from_derivgo, routeTo } = common; const { account_transfer, onramp, payment_agent, payment_agent_transfer, transaction_history } = modules.cashier; @@ -356,22 +357,22 @@ export default class GeneralStore extends BaseStore { } if (!account_transfer.accounts_list.length) { - account_transfer.sortAccountsTransfer(); + account_transfer.sortAccountsTransfer(null, is_from_derivgo); } if (!payment_agent.is_payment_agent_visible && window.location.pathname.endsWith(routes.cashier_pa)) { - common.routeTo(routes.cashier_deposit); + routeTo(routes.cashier_deposit); } if (!onramp.is_onramp_tab_visible && window.location.pathname.endsWith(routes.cashier_onramp)) { - common.routeTo(routes.cashier_deposit); + routeTo(routes.cashier_deposit); } if ( !transaction_history.is_crypto_transactions_visible && window.location.pathname.endsWith(routes.cashier_crypto_transactions) ) { - common.routeTo(routes.cashier_deposit); + routeTo(routes.cashier_deposit); transaction_history.setIsCryptoTransactionsVisible(true); transaction_history.onMount(); } diff --git a/packages/cashier/src/types/shared/account.types.ts b/packages/cashier/src/types/shared/account.types.ts index 0db8e9af6b07..5532bda220ab 100644 --- a/packages/cashier/src/types/shared/account.types.ts +++ b/packages/cashier/src/types/shared/account.types.ts @@ -8,6 +8,7 @@ export type TAccount = { currency?: string; disabled?: boolean; is_dxtrade?: boolean; + is_derivez?: boolean; is_mt?: boolean; market_type?: string; nativepicker_text: string; diff --git a/packages/components/src/components/icon/derivez/ic-derivez.svg b/packages/components/src/components/icon/derivez/ic-derivez.svg new file mode 100644 index 000000000000..3b596acb30d3 --- /dev/null +++ b/packages/components/src/components/icon/derivez/ic-derivez.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/core/src/Constants/cfd-text.js b/packages/core/src/Constants/cfd-text.js index add82c24894d..ba455f536b8a 100644 --- a/packages/core/src/Constants/cfd-text.js +++ b/packages/core/src/Constants/cfd-text.js @@ -13,4 +13,5 @@ export const CFD_TEXT = { financial_fx: () => localize('Financial Labuan'), financial_v: () => localize('Financial Vanuatu'), financial_svg: () => localize('Financial SVG'), + derivez: () => localize('Deriv EZ'), }; diff --git a/packages/shared/brand.config.json b/packages/shared/brand.config.json index 773ff3543140..c5f9b7e5288d 100644 --- a/packages/shared/brand.config.json +++ b/packages/shared/brand.config.json @@ -27,6 +27,10 @@ "name": "Deriv X", "icon": "IcBrandDxtrade" }, + "derivez": { + "name": "Deriv EZ", + "icon": "IcDerivez" + }, "smarttrader": { "name": "SmartTrader", "icon": "IcBrandSmarttrader" diff --git a/packages/shared/src/utils/brand/brand.ts b/packages/shared/src/utils/brand/brand.ts index 35c18b62079f..e3f9dd786e95 100644 --- a/packages/shared/src/utils/brand/brand.ts +++ b/packages/shared/src/utils/brand/brand.ts @@ -20,6 +20,7 @@ type TPlatforms = { dbot: TPlatform; mt5: TPlatform; dxtrade: TPlatform; + derivez: TPlatform; smarttrader: TPlatform; bbot: TPlatform; go: TPlatform; diff --git a/packages/shared/src/utils/cfd/cfd.ts b/packages/shared/src/utils/cfd/cfd.ts index c84a4369729a..b8a3f0d071a5 100644 --- a/packages/shared/src/utils/cfd/cfd.ts +++ b/packages/shared/src/utils/cfd/cfd.ts @@ -20,7 +20,7 @@ const CFD_text: { [key: string]: string } = { financial_svg: 'Financial SVG', } as const; -type TPlatform = 'dxtrade' | 'mt5'; +type TPlatform = 'dxtrade' | 'mt5' | 'derivez'; type TMarketType = 'financial' | 'synthetic' | 'gaming' | 'all' | undefined; type TShortcode = 'svg' | 'bvi' | 'labuan' | 'vanuatu'; type TGetAccount = { @@ -39,7 +39,7 @@ type TGetCFDAccountKey = TGetAccount & { // sub_account_type financial_stp only happens in "financial" market_type export const getCFDAccountKey = ({ market_type, sub_account_type, platform, shortcode }: TGetCFDAccountKey) => { if (market_type === 'all') { - return 'dxtrade'; + return platform === CFD_PLATFORMS.DERIVEZ ? 'derivez' : 'dxtrade'; } if (market_type === 'gaming' || market_type === 'synthetic') { @@ -152,6 +152,7 @@ export const getCFDAccountDisplay = ({ // TODO condition will be changed when card 74063 is merged if (market_type === 'synthetic' && platform === CFD_PLATFORMS.DXTRADE) return localize('Synthetic'); if (market_type === 'all' && platform === CFD_PLATFORMS.DXTRADE && is_transfer_form) return ''; + if (platform === CFD_PLATFORMS.DERIVEZ) return ''; return cfd_account_display; }; diff --git a/packages/shared/src/utils/platform/platform.ts b/packages/shared/src/utils/platform/platform.ts index 99b3009f81b3..59192e8c8142 100644 --- a/packages/shared/src/utils/platform/platform.ts +++ b/packages/shared/src/utils/platform/platform.ts @@ -25,6 +25,7 @@ export const platform_name = Object.freeze({ export const CFD_PLATFORMS = Object.freeze({ MT5: 'mt5', DXTRADE: 'dxtrade', + DERIVEZ: 'derivez', }); export const isBot = () => From 11d3eb642d2b417e04cd8b2b86e44a94e766d77f Mon Sep 17 00:00:00 2001 From: Niloofar Sadeghi <93518187+niloofar-deriv@users.noreply.github.com> Date: Mon, 9 Jan 2023 15:58:34 +0330 Subject: [PATCH 18/84] Niloofar / Task - Refactor tests in the toggle-fullscreen.spec.tsx file (#7232) * refactor: toggle-fullscreen test file * fix: circle/ci issue Co-authored-by: Niloofar Sadeghi --- .../src/components/popover/popover.tsx | 1 - .../__tests__/toggle-fullscreen.spec.tsx | 29 +++++++++++-------- .../Layout/Footer/toggle-fullscreen.jsx | 2 +- .../Header/__tests__/account-info.spec.tsx | 2 +- 4 files changed, 19 insertions(+), 15 deletions(-) diff --git a/packages/components/src/components/popover/popover.tsx b/packages/components/src/components/popover/popover.tsx index eab1a0a1737a..dfd56350e749 100644 --- a/packages/components/src/components/popover/popover.tsx +++ b/packages/components/src/components/popover/popover.tsx @@ -57,7 +57,6 @@ const Popover = ({ return (
} className={classNames({ 'dc-popover__wrapper': relative_render })} onClick={onClick} diff --git a/packages/core/src/App/Components/Layout/Footer/__tests__/toggle-fullscreen.spec.tsx b/packages/core/src/App/Components/Layout/Footer/__tests__/toggle-fullscreen.spec.tsx index 0824695cace2..76a6b94aca1a 100644 --- a/packages/core/src/App/Components/Layout/Footer/__tests__/toggle-fullscreen.spec.tsx +++ b/packages/core/src/App/Components/Layout/Footer/__tests__/toggle-fullscreen.spec.tsx @@ -1,21 +1,26 @@ -// TODO refactor old tests in this component import React from 'react'; -import { ToggleFullScreen } from '../toggle-fullscreen.jsx'; -import { Icon } from '@deriv/components'; import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import { ToggleFullScreen } from '../toggle-fullscreen.jsx'; describe('ToggleFullScreen Component', () => { - it('should not have "ic-fullscreen--active" class when "is_full_screen" is false', () => { + it('should not have "ic-fullscreen--active" class when "is_full_screen" is "false"', () => { render(); - const aElement = screen.getByTestId('dt_fullscreen_toggle'); - expect(aElement).not.toHaveClass('ic-fullscreen--active'); + const a_element = screen.getByTestId('dt_fullscreen_toggle'); + expect(a_element).not.toHaveClass('ic-fullscreen--active'); }); - // it('should have "Full screen" text when "is_full_screen" is false', () => { - // render(); - // }); + it('should have "Full screen" text when "is_full_screen" is "false"', () => { + render(); + const popover_wrapper = screen.getByTestId('dt_popover_wrapper'); + userEvent.hover(popover_wrapper); + const message = screen.getByText(/full screen/i); + expect(message).toBeInTheDocument(); + }); - // it('should render "IcFullScreen" icon when "is_full_screen" is false', () => { - // render(); - // }); + it('should render "IcFullScreen" icon when "is_full_screen" is "false"', () => { + render(); + const icon = screen.getByTestId('dt_icon'); + expect(icon).toBeInTheDocument(); + }); }); diff --git a/packages/core/src/App/Components/Layout/Footer/toggle-fullscreen.jsx b/packages/core/src/App/Components/Layout/Footer/toggle-fullscreen.jsx index bd24d266871d..1835de531903 100644 --- a/packages/core/src/App/Components/Layout/Footer/toggle-fullscreen.jsx +++ b/packages/core/src/App/Components/Layout/Footer/toggle-fullscreen.jsx @@ -55,7 +55,7 @@ const ToggleFullScreen = () => { {is_full_screen ? ( ) : ( - + )} diff --git a/packages/core/src/App/Components/Layout/Header/__tests__/account-info.spec.tsx b/packages/core/src/App/Components/Layout/Header/__tests__/account-info.spec.tsx index 106d5f706b96..f0a50f2c6bf8 100644 --- a/packages/core/src/App/Components/Layout/Header/__tests__/account-info.spec.tsx +++ b/packages/core/src/App/Components/Layout/Header/__tests__/account-info.spec.tsx @@ -6,7 +6,7 @@ import AccountInfo from '../account-info.jsx'; describe('AccountInfo component', () => { it('should show "disabled_message" when "is_disabled" property is "true"', () => { render(); - const popover = screen.getByTestId('dt_popover_container'); + const popover = screen.getByTestId('dt_popover_wrapper'); userEvent.hover(popover); const disabled_message = screen.getByText(/test disabled message/i); expect(disabled_message).toBeInTheDocument(); From f67451a9b3bc2b5b5bc63f408fda15d016ddb5b1 Mon Sep 17 00:00:00 2001 From: ameerul-deriv <103412909+ameerul-deriv@users.noreply.github.com> Date: Mon, 9 Jan 2023 20:31:49 +0800 Subject: [PATCH 19/84] fix: description should be called from general_store, not my_ads (#7236) --- packages/p2p/src/components/my-ads/create-ad-form.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/p2p/src/components/my-ads/create-ad-form.jsx b/packages/p2p/src/components/my-ads/create-ad-form.jsx index c8bdea41b064..326327599d0f 100644 --- a/packages/p2p/src/components/my-ads/create-ad-form.jsx +++ b/packages/p2p/src/components/my-ads/create-ad-form.jsx @@ -95,7 +95,7 @@ const CreateAdForm = () => { Date: Mon, 9 Jan 2023 20:33:30 +0800 Subject: [PATCH 20/84] fix: fixed the overflowed text in buy/sell order instruction details (#7264) --- packages/p2p/src/components/order-details/order-details.jsx | 2 +- packages/p2p/src/components/order-details/order-details.scss | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/p2p/src/components/order-details/order-details.jsx b/packages/p2p/src/components/order-details/order-details.jsx index 4f17b46c023b..d71fa224f678 100644 --- a/packages/p2p/src/components/order-details/order-details.jsx +++ b/packages/p2p/src/components/order-details/order-details.jsx @@ -19,12 +19,12 @@ import PaymentMethodAccordionHeader from './payment-method-accordion-header.jsx' import PaymentMethodAccordionContent from './payment-method-accordion-content.jsx'; import MyProfileSeparatorContainer from '../my-profile/my-profile-separator-container'; import { setDecimalPlaces, removeTrailingZeros, roundOffDecimal } from 'Utils/format-value'; -import 'Components/order-details/order-details.scss'; import LoadingModal from '../loading-modal'; import InvalidVerificationLinkModal from '../invalid-verification-link-modal'; import EmailLinkBlockedModal from '../email-link-blocked-modal'; import EmailLinkVerifiedModal from '../email-link-verified-modal'; import { getDateAfterHours } from 'Utils/date-time'; +import './order-details.scss'; const OrderDetails = observer(() => { const { general_store, my_profile_store, order_store, sendbird_store } = useStores(); diff --git a/packages/p2p/src/components/order-details/order-details.scss b/packages/p2p/src/components/order-details/order-details.scss index b08887c72a2c..4e4a02c29b75 100644 --- a/packages/p2p/src/components/order-details/order-details.scss +++ b/packages/p2p/src/components/order-details/order-details.scss @@ -231,6 +231,7 @@ $card-width: 456px; line-height: 1.43; color: var(--text-general); word-break: break-word; + white-space: pre-line; } } From 3473fb397d4829c59b61f21a634a8eec9a9d44b6 Mon Sep 17 00:00:00 2001 From: kate-deriv <121025168+kate-deriv@users.noreply.github.com> Date: Mon, 9 Jan 2023 15:34:55 +0300 Subject: [PATCH 21/84] kate/80180/Update_DP2P_content_on_cashier_page (#7233) * fix: Update DP2P content on cashier page * test: rewrite test for cashier-onboarding file because the taxt was changed --- .../__tests__/cashier-onboarding.spec.js | 8 ++++---- .../cashier-onboarding/cashier-onboarding-providers.js | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/cashier/src/components/cashier-onboarding/__tests__/cashier-onboarding.spec.js b/packages/cashier/src/components/cashier-onboarding/__tests__/cashier-onboarding.spec.js index d08984e42a29..f888d71f1f55 100644 --- a/packages/cashier/src/components/cashier-onboarding/__tests__/cashier-onboarding.spec.js +++ b/packages/cashier/src/components/cashier-onboarding/__tests__/cashier-onboarding.spec.js @@ -100,7 +100,7 @@ describe('', () => { expect(screen.getByText('Deposit with Deriv P2P')).toBeInTheDocument(); expect( screen.getByText( - 'Deposit in your local currency via peer-to-peer exchange with fellow traders in your country.' + 'Deposit with your local currency via peer-to-peer exchange with fellow traders in your country.' ) ).toBeInTheDocument(); }); @@ -262,7 +262,7 @@ describe('', () => { const node_list = screen.getAllByTestId('dt_cashier_onboarding_detail_div'); const deposit_with_dp2p_detail_div = Array.from(node_list).find(node => node.textContent.includes( - 'Deposit in your local currency via peer-to-peer exchange with fellow traders in your country.' + 'Deposit with your local currency via peer-to-peer exchange with fellow traders in your country.' ) ); fireEvent.click(deposit_with_dp2p_detail_div); @@ -283,7 +283,7 @@ describe('', () => { const node_list = screen.getAllByTestId('dt_cashier_onboarding_detail_div'); const deposit_with_dp2p_detail_div = Array.from(node_list).find(node => node.textContent.includes( - 'Deposit in your local currency via peer-to-peer exchange with fellow traders in your country.' + 'Deposit with your local currency via peer-to-peer exchange with fellow traders in your country.' ) ); fireEvent.click(deposit_with_dp2p_detail_div); @@ -301,7 +301,7 @@ describe('', () => { const node_list = screen.getAllByTestId('dt_cashier_onboarding_detail_div'); const deposit_with_dp2p_detail_div = Array.from(node_list).find(node => node.textContent.includes( - 'Deposit in your local currency via peer-to-peer exchange with fellow traders in your country.' + 'Deposit with your local currency via peer-to-peer exchange with fellow traders in your country.' ) ); fireEvent.click(deposit_with_dp2p_detail_div); diff --git a/packages/cashier/src/components/cashier-onboarding/cashier-onboarding-providers.js b/packages/cashier/src/components/cashier-onboarding/cashier-onboarding-providers.js index addd5049c8b0..f1bdc155f1c1 100644 --- a/packages/cashier/src/components/cashier-onboarding/cashier-onboarding-providers.js +++ b/packages/cashier/src/components/cashier-onboarding/cashier-onboarding-providers.js @@ -73,7 +73,7 @@ const createDp2pProvider = onClick => { return { detail_click: onClick, detail_description: localize( - 'Deposit in your local currency via peer-to-peer exchange with fellow traders in your country.' + 'Deposit with your local currency via peer-to-peer exchange with fellow traders in your country.' ), detail_header: localize('Deposit with Deriv P2P'), }; From c9dd30a2b880887628949710a91ef0c629667555 Mon Sep 17 00:00:00 2001 From: kate-deriv <121025168+kate-deriv@users.noreply.github.com> Date: Mon, 9 Jan 2023 15:49:25 +0300 Subject: [PATCH 22/84] fix: add hook useCallback for topWidgets component to avoid rerender (#7319) --- .../src/Modules/Trading/Containers/trade.jsx | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/packages/trader/src/Modules/Trading/Containers/trade.jsx b/packages/trader/src/Modules/Trading/Containers/trade.jsx index 7b01d9213eeb..b86795169f37 100644 --- a/packages/trader/src/Modules/Trading/Containers/trade.jsx +++ b/packages/trader/src/Modules/Trading/Containers/trade.jsx @@ -128,14 +128,17 @@ const Trade = ({ } }; - const topWidgets = ({ ...params }) => ( - + const topWidgets = React.useCallback( + ({ ...params }) => ( + + ), + [open_market, try_synthetic_indices, try_open_markets, charts_ref, is_digits_widget_active] ); const form_wrapper_class = isMobile() ? 'mobile-wrapper' : 'sidebar__container desktop-only'; From 81b7d844d801d68be59935d02902a1a7d1d0d5bf Mon Sep 17 00:00:00 2001 From: balakrishna-deriv <56330681+balakrishna-deriv@users.noreply.github.com> Date: Tue, 10 Jan 2023 10:34:18 +0400 Subject: [PATCH 23/84] Tib|Bala/No 404 during cloudflare pages routing (#7280) * Rename 404.html to custom404.html Cloudflare pages don't need it and nginx will work like before since the filname is defined in the nginx config. * refactor: rename 404 file * chore: add vercel.json * chore: add SPA fallback Co-authored-by: thibault-deriv <104425314+thibault-deriv@users.noreply.github.com> Co-authored-by: Yashim Wong --- default.conf | 2 +- packages/cfd/build/config.js | 2 +- packages/core/build/config.js | 2 +- packages/core/src/root_files/{404.html => custom404.html} | 0 packages/reports/build/config.js | 2 +- packages/trader/build/config.js | 2 +- vercel.json | 3 +++ 7 files changed, 8 insertions(+), 5 deletions(-) rename packages/core/src/root_files/{404.html => custom404.html} (100%) create mode 100644 vercel.json diff --git a/default.conf b/default.conf index dc30eaf06a1a..ecb687ff0ffd 100644 --- a/default.conf +++ b/default.conf @@ -10,7 +10,7 @@ server { charset UTF-8; - error_page 404 /404.html; + error_page 404 /custom404.html; location @custom_error_503 { return 503; diff --git a/packages/cfd/build/config.js b/packages/cfd/build/config.js index 518dbeb33af1..224d935f137b 100644 --- a/packages/cfd/build/config.js +++ b/packages/cfd/build/config.js @@ -7,7 +7,7 @@ const IS_RELEASE = process.env.NODE_ENV === 'production' || process.env.NODE_ENV const generateSWConfig = () => ({ importWorkboxFrom: 'local', cleanupOutdatedCaches: true, - exclude: [/CNAME$/, /index\.html$/, /404\.html$/], + exclude: [/CNAME$/, /index\.html$/, /custom404\.html$/], skipWaiting: true, clientsClaim: true, }); diff --git a/packages/core/build/config.js b/packages/core/build/config.js index ce683e74a215..dec4a3e76f9f 100644 --- a/packages/core/build/config.js +++ b/packages/core/build/config.js @@ -87,7 +87,7 @@ const copyConfig = base => { to: 'assetlinks.json', toType: 'file', }, - { from: path.resolve(__dirname, '../src/root_files/404.html'), to: '404.html', toType: 'file' }, + { from: path.resolve(__dirname, '../src/root_files/custom404.html'), to: 'custom404.html', toType: 'file' }, { from: path.resolve(__dirname, '../src/root_files/localstorage-sync.html'), to: 'localstorage-sync.html', diff --git a/packages/core/src/root_files/404.html b/packages/core/src/root_files/custom404.html similarity index 100% rename from packages/core/src/root_files/404.html rename to packages/core/src/root_files/custom404.html diff --git a/packages/reports/build/config.js b/packages/reports/build/config.js index 86801396ab25..8c9c59a52b34 100644 --- a/packages/reports/build/config.js +++ b/packages/reports/build/config.js @@ -5,7 +5,7 @@ const { IS_RELEASE } = require('./constants'); const generateSWConfig = () => ({ importWorkboxFrom: 'local', cleanupOutdatedCaches: true, - exclude: [/CNAME$/, /index\.html$/, /404\.html$/], + exclude: [/CNAME$/, /index\.html$/, /custom404\.html$/], skipWaiting: true, clientsClaim: true, }); diff --git a/packages/trader/build/config.js b/packages/trader/build/config.js index bc266d6a99eb..51c26e37ee65 100644 --- a/packages/trader/build/config.js +++ b/packages/trader/build/config.js @@ -6,7 +6,7 @@ const { IS_RELEASE } = require('./constants'); const generateSWConfig = () => ({ importWorkboxFrom: 'local', cleanupOutdatedCaches: true, - exclude: [/CNAME$/, /index\.html$/, /404\.html$/, /^public\/images\/favicons\//, /^favicon\.ico$/], + exclude: [/CNAME$/, /index\.html$/, /custom404\.html$/, /^public\/images\/favicons\//, /^favicon\.ico$/], skipWaiting: true, clientsClaim: true, }); diff --git a/vercel.json b/vercel.json new file mode 100644 index 000000000000..4fa234ff1b77 --- /dev/null +++ b/vercel.json @@ -0,0 +1,3 @@ +{ + "routes": [{ "handle": "filesystem" }, { "src": "/(.*)", "dest": "/index.html" }] +} From c95beaf1259812e4f2899fcd60027f69552f632f Mon Sep 17 00:00:00 2001 From: amina-deriv <84661147+amina-deriv@users.noreply.github.com> Date: Wed, 11 Jan 2023 10:10:43 +0400 Subject: [PATCH 24/84] Amina/feat: milestone_2_dbvi (#6935) * fix: update master * fix: add astericks to place of birth, tax residence and account opening reason * fix: remove better spreads from BVI * fix: maltainvest should verify through onfido * fix: icons design for MT5 financial and derived accounts * fix: notification Co-authored-by: tay suisin Co-authored-by: Sui Sin <103026762+suisin-deriv@users.noreply.github.com> Co-authored-by: Matin shafiei --- .../address-details/address-details.jsx | 11 +- .../submitted/__tests__/submitted.spec.tsx | 8 +- .../poa/status/submitted/submitted.tsx | 6 +- .../poi-poa-docs-submitted.jsx | 46 +- .../__tests__/idv-submit-complete.spec.js | 4 +- .../idv-submit-complete.jsx | 4 +- .../unsupported/card-details/uploader.jsx | 2 +- .../status/unsupported/detail-component.jsx | 2 +- .../poi/status/unsupported/unsupported.jsx | 2 +- .../__tests__/upload-complete.spec.js | 25 +- .../upload-complete/upload-complete.jsx | 12 +- .../src/Configs/address-details-config.js | 3 + .../proof-of-identity-container-for-mt5.jsx | 28 +- .../proof-of-identity-container.jsx | 1 + .../proof-of-identity-submission.jsx | 8 + .../src/components/CFDs/cfd-accounts.scss | 6 +- .../src/modules/trading-hub/index.tsx | 2 - packages/cfd/build/webpack.config.js | 1 - .../cfd/src/Components/cfd-account-card.tsx | 118 ++- .../Components/cfd-personal-details-form.tsx | 38 +- packages/cfd/src/Components/cfd-poa.tsx | 26 +- packages/cfd/src/Components/props.types.ts | 4 + .../src/Constants/jurisdiction-contents.ts | 3 +- .../__tests__/cfd-dashboard.spec.tsx | 2 - .../__tests__/cfd-password-modal.spec.js | 19 +- packages/cfd/src/Containers/cfd-dashboard.tsx | 8 +- .../src/Containers/cfd-dbvi-onboarding.tsx | 142 ++- .../cfd-financial-stp-real-account-signup.tsx | 75 +- .../cfd/src/Containers/cfd-password-modal.tsx | 194 +++-- ...tsx => cfd-personal-details-container.tsx} | 94 +- .../Containers/jurisdiction-modal-content.tsx | 814 ------------------ .../cfd/src/Containers/jurisdiction-modal.tsx | 381 -------- .../jurisdiction-card-banner.tsx | 64 +- .../jurisdiction-modal/jurisdiction-card.tsx | 4 +- .../jurisdiction-modal-checkbox.tsx | 44 +- .../jurisdiction-modal-content.tsx | 3 +- .../jurisdiction-modal-foot-note.tsx | 89 +- .../jurisdiction-modal/jurisdiction-modal.tsx | 142 +-- .../Containers/mt5-compare-table-content.tsx | 89 +- .../cfd/src/Containers/mt5-trade-modal.tsx | 2 +- packages/cfd/src/Containers/props.types.ts | 46 +- .../cfd/src/Stores/Modules/CFD/cfd-store.js | 31 +- packages/cfd/src/sass/cfd-dashboard.scss | 17 +- packages/cfd/src/sass/cfd.scss | 3 + .../icon/mt5/ic-mt5-financial-platform.svg | 2 +- .../icon/mt5/ic-mt5-synthetic-platform.svg | 2 +- .../components/page-overlay/page-overlay.jsx | 14 +- .../Containers/app-notification-messages.jsx | 1 + packages/core/src/Stores/client-store.js | 11 + .../core/src/Stores/notification-store.js | 25 +- packages/core/src/root_files/custom404.html | 171 ++-- packages/shared/src/utils/cfd/cfd.ts | 70 +- .../sass/app/modules/mt5/cfd-dashboard.scss | 1 - 53 files changed, 871 insertions(+), 2049 deletions(-) rename packages/cfd/src/Containers/{cfd-personal-details-modal.tsx => cfd-personal-details-container.tsx} (61%) delete mode 100644 packages/cfd/src/Containers/jurisdiction-modal-content.tsx delete mode 100644 packages/cfd/src/Containers/jurisdiction-modal.tsx diff --git a/packages/account/src/Components/address-details/address-details.jsx b/packages/account/src/Components/address-details/address-details.jsx index 19cebd174bbe..fde781ce06ca 100644 --- a/packages/account/src/Components/address-details/address-details.jsx +++ b/packages/account/src/Components/address-details/address-details.jsx @@ -47,6 +47,7 @@ const AddressDetails = ({ validate, onSubmit, is_svg, + is_mf, is_gb_residence, onSubmitEnabledChange, selected_step_ref, @@ -149,9 +150,9 @@ const AddressDetails = ({
diff --git a/packages/account/src/Components/poa/status/submitted/__tests__/submitted.spec.tsx b/packages/account/src/Components/poa/status/submitted/__tests__/submitted.spec.tsx index 4729473553c0..a2b7f9c33eee 100644 --- a/packages/account/src/Components/poa/status/submitted/__tests__/submitted.spec.tsx +++ b/packages/account/src/Components/poa/status/submitted/__tests__/submitted.spec.tsx @@ -14,7 +14,7 @@ describe('', () => { it('should render the Submitted component', () => { renderWithRouter(); - expect(screen.getByText('Your proof of address was submitted successfully')).toBeInTheDocument(); + expect(screen.getByText('Your documents were submitted successfully')).toBeInTheDocument(); }); it('should show submit_poi message if needs_poi is true', () => { @@ -22,9 +22,11 @@ describe('', () => { expect(screen.getByText('You must also submit a proof of identity.')).toBeInTheDocument(); }); - it('should show review message if needs_poi is false', () => { + it('should show review message if needs_poi is true', () => { renderWithRouter(); - expect(screen.getByText('Your document is being reviewed, please check back in 1-3 days.')).toBeInTheDocument(); + expect( + screen.getByText('We’ll review your documents and notify you of its status within 1 to 3 days.') + ).toBeInTheDocument(); }); it('should show ContinueTradingButton if needs_poi is false and is_description_enabled is false', () => { diff --git a/packages/account/src/Components/poa/status/submitted/submitted.tsx b/packages/account/src/Components/poa/status/submitted/submitted.tsx index 10c83c99a149..b83fe43a9245 100644 --- a/packages/account/src/Components/poa/status/submitted/submitted.tsx +++ b/packages/account/src/Components/poa/status/submitted/submitted.tsx @@ -10,7 +10,7 @@ import IconMessageContent from 'Components/icon-message-content'; export const Submitted = ({ needs_poi, is_description_enabled = true }: TPoaStatusProps) => { const { is_appstore }: TPlatformContext = React.useContext(PlatformContext); - const message = localize('Your proof of address was submitted successfully'); + const message = localize('Your documents were submitted successfully'); if (needs_poi) { return (
- {localize('Your document is being reviewed, please check back in 1-3 days.')} + {localize('We’ll review your documents and notify you of its status within 1 to 3 days.')} {localize('You must also submit a proof of identity.')} @@ -44,7 +44,7 @@ export const Submitted = ({ needs_poi, is_description_enabled = true }: TPoaStat > } full_width={is_appstore} > diff --git a/packages/account/src/Components/poi-poa-docs-submitted/poi-poa-docs-submitted.jsx b/packages/account/src/Components/poi-poa-docs-submitted/poi-poa-docs-submitted.jsx index 0fd3a00f3c57..5989c2f3230d 100644 --- a/packages/account/src/Components/poi-poa-docs-submitted/poi-poa-docs-submitted.jsx +++ b/packages/account/src/Components/poi-poa-docs-submitted/poi-poa-docs-submitted.jsx @@ -1,39 +1,59 @@ import React from 'react'; -import { Button, Icon } from '@deriv/components'; +import { Button, Icon, Loading } from '@deriv/components'; import { localize } from '@deriv/translations'; import { getAuthenticationStatusInfo } from '@deriv/shared'; - import IconMessageContent from 'Components/icon-message-content'; -const PoiPoaDocsSubmitted = ({ account_status, is_vanuatu_selected, onClickOK, updateAccountStatus }) => { +const PoiPoaDocsSubmitted = ({ + account_status, + jurisdiction_selected_shortcode, + onClickOK, + updateAccountStatus, + has_created_account_for_selected_jurisdiction, + openPasswordModal, +}) => { + const [is_loading, setIsLoading] = React.useState(false); React.useEffect(() => { - updateAccountStatus(); + setIsLoading(true); + updateAccountStatus() + .then(() => { + setIsLoading(false); + }) + .finally(() => setIsLoading(false)); //eslint-disable-next-line react-hooks/exhaustive-deps }, []); - const message = localize('Your documents were submitted successfully'); + const onSubmit = () => { + onClickOK(); + if (!has_created_account_for_selected_jurisdiction) { + openPasswordModal(); + } + }; + const getDescription = () => { - const { manual_status, poi_verified_for_vanuatu, poi_verified_for_bvi_labuan_maltainvest, poa_pending } = + const { manual_status, poi_verified_for_vanuatu_maltainvest, poi_verified_for_bvi_labuan, poa_pending } = getAuthenticationStatusInfo(account_status); - + const is_vanuatu_or_maltainvest_selected = + jurisdiction_selected_shortcode === 'vanuatu' || jurisdiction_selected_shortcode === 'maltainvest'; if ( - (is_vanuatu_selected && poi_verified_for_vanuatu && poa_pending) || - (!is_vanuatu_selected && poi_verified_for_bvi_labuan_maltainvest && poa_pending) || + (is_vanuatu_or_maltainvest_selected && poi_verified_for_vanuatu_maltainvest && poa_pending) || + (!is_vanuatu_or_maltainvest_selected && poi_verified_for_bvi_labuan && poa_pending) || manual_status === 'pending' ) { return localize('We’ll review your documents and notify you of its status within 1 - 3 working days.'); } return localize('We’ll review your documents and notify you of its status within 5 minutes.'); }; - - return ( + return is_loading ? ( + + ) : ( } className='poi-poa-submitted' > - ; - const poa_under_review_message = /your document is being reviewed, please check back in 1-3 days./i; const needs_poa_extra_submit_message = /you must also submit a proof of address./i; const renderWithRouter = (component, is_appstore) => @@ -35,11 +36,19 @@ describe('', () => { expect(screen.getByTestId(/dt_mocked_icon/)).toBeInTheDocument(); }); - it('should render component and is_appstore is true', () => { - renderWithRouter(, true); + it('should render component for manual upload', () => { + renderWithRouter(, true); expect(screen.getByText(successful_upload_message)).toBeInTheDocument(); - expect(screen.getByText(poi_under_review_message)).toBeInTheDocument(); + expect(screen.getByText(poi_under_review_message_for_manual)).toBeInTheDocument(); + expect(screen.getByTestId(/dt_mocked_icon/i)).toBeInTheDocument(); + expect(screen.queryByRole('button')).not.toBeInTheDocument(); + }); + it('should render component for manual upload', () => { + renderWithRouter(, true); + + expect(screen.getByText(successful_upload_message)).toBeInTheDocument(); + expect(screen.getByText(poi_under_review_message_for_manual)).toBeInTheDocument(); expect(screen.getByTestId(/dt_mocked_icon/i)).toBeInTheDocument(); expect(screen.queryByRole('button')).not.toBeInTheDocument(); }); @@ -60,7 +69,7 @@ describe('', () => { renderWithRouter(, true); expect(screen.getByTestId('dt_poa_button')).toBeInTheDocument(); - expect(screen.getByText(poa_under_review_message)).toBeInTheDocument(); + expect(screen.getByText(poi_under_review_message)).toBeInTheDocument(); expect(screen.getByText(needs_poa_extra_submit_message)).toBeInTheDocument(); expect(screen.getByRole('button')).toBeInTheDocument(); }); @@ -69,7 +78,7 @@ describe('', () => { renderWithRouter(, true); expect(screen.getByTestId('dt_poa_button')).toBeInTheDocument(); - expect(screen.getByText(poa_under_review_message)).toBeInTheDocument(); + expect(screen.getByText(poi_under_review_message)).toBeInTheDocument(); expect(screen.getByText(needs_poa_extra_submit_message)).toBeInTheDocument(); expect(screen.queryByRole('button')).not.toBeInTheDocument(); }); diff --git a/packages/account/src/Components/poi/status/upload-complete/upload-complete.jsx b/packages/account/src/Components/poi/status/upload-complete/upload-complete.jsx index e768b443bc1d..e1a896ba645f 100644 --- a/packages/account/src/Components/poi/status/upload-complete/upload-complete.jsx +++ b/packages/account/src/Components/poi/status/upload-complete/upload-complete.jsx @@ -7,14 +7,18 @@ import PoaButton from 'Components/poa/poa-button'; import { ContinueTradingButton } from 'Components/poa/continue-trading-button/continue-trading-button'; import IconMessageContent from 'Components/icon-message-content'; -export const UploadComplete = ({ needs_poa, redirect_button, is_from_external }) => { +export const UploadComplete = ({ needs_poa, redirect_button, is_from_external, is_manual_upload = false }) => { const { is_appstore } = React.useContext(PlatformContext); - const message = localize('Your proof of identity was submitted successfully'); + const message = localize('Your documents were submitted successfully'); + const description = is_manual_upload + ? localize('We’ll review your documents and notify you of its status within 1 - 3 working days.') + : localize('We’ll review your documents and notify you of its status within 5 minutes.'); + if (!needs_poa) { return ( @@ -43,7 +47,7 @@ export const UploadComplete = ({ needs_poa, redirect_button, is_from_external })
- {localize('Your document is being reviewed, please check back in 1-3 days.')} + {description} {localize('You must also submit a proof of address.')} diff --git a/packages/account/src/Configs/address-details-config.js b/packages/account/src/Configs/address-details-config.js index a1fd7e33b581..5a18a675017e 100644 --- a/packages/account/src/Configs/address-details-config.js +++ b/packages/account/src/Configs/address-details-config.js @@ -137,6 +137,8 @@ const addressDetailsConfig = ( ) => { const is_svg = upgrade_info?.can_upgrade_to === 'svg'; const config = address_details_config({ account_settings, is_svg }); + const is_mf = real_account_signup_target === 'maltainvest'; + return { header: { active_title: is_appstore ? localize('Where do you live?') : localize('Complete your address details'), @@ -150,6 +152,7 @@ const addressDetailsConfig = ( transformConfig(transformForResidence(config, residence), real_account_signup_target) ), is_svg, + is_mf, }, passthrough: ['residence_list', 'is_fully_authenticated'], icon: 'IcDashboardAddress', diff --git a/packages/account/src/Sections/Verification/ProofOfIdentity/proof-of-identity-container-for-mt5.jsx b/packages/account/src/Sections/Verification/ProofOfIdentity/proof-of-identity-container-for-mt5.jsx index 0fce1a759bde..a30760168a3c 100644 --- a/packages/account/src/Sections/Verification/ProofOfIdentity/proof-of-identity-container-for-mt5.jsx +++ b/packages/account/src/Sections/Verification/ProofOfIdentity/proof-of-identity-container-for-mt5.jsx @@ -1,27 +1,13 @@ import React from 'react'; -import { Icon, Loading, Text } from '@deriv/components'; -import { WS, isMobile } from '@deriv/shared'; +import { Loading } from '@deriv/components'; +import { WS } from '@deriv/shared'; import { localize } from '@deriv/translations'; import ErrorMessage from 'Components/error-component'; +import IconWithMessage from 'Components/icon-with-message'; import POISubmissionForMT5 from './proof-of-identity-submission-for-mt5.jsx'; import { service_code } from './proof-of-identity-utils'; import { populateVerificationStatus } from '../Helpers/verification'; -const ShowDemoMessage = () => ( -
- - - {localize('Switch to your real account to create a Deriv MT5 account')} - -
-); const ProofOfIdentityContainerForMt5 = ({ account_status, fetchResidenceList, @@ -62,7 +48,13 @@ const ProofOfIdentityContainerForMt5 = ({ if (is_status_loading || is_switching) { return ; } else if (is_virtual) { - return ; + return ( + + ); } else if (api_error) { return ; } diff --git a/packages/account/src/Sections/Verification/ProofOfIdentity/proof-of-identity-container.jsx b/packages/account/src/Sections/Verification/ProofOfIdentity/proof-of-identity-container.jsx index d1c276b87395..4b4e549c0902 100644 --- a/packages/account/src/Sections/Verification/ProofOfIdentity/proof-of-identity-container.jsx +++ b/packages/account/src/Sections/Verification/ProofOfIdentity/proof-of-identity-container.jsx @@ -142,6 +142,7 @@ const ProofOfIdentityContainer = ({ is_from_external={!!is_from_external} needs_poa={needs_poa} redirect_button={redirect_button} + is_manual_upload={manual?.status === 'pending'} /> ); case identity_status_codes.verified: diff --git a/packages/account/src/Sections/Verification/ProofOfIdentity/proof-of-identity-submission.jsx b/packages/account/src/Sections/Verification/ProofOfIdentity/proof-of-identity-submission.jsx index 9e28f17d45a7..319b2fb79358 100644 --- a/packages/account/src/Sections/Verification/ProofOfIdentity/proof-of-identity-submission.jsx +++ b/packages/account/src/Sections/Verification/ProofOfIdentity/proof-of-identity-submission.jsx @@ -173,6 +173,14 @@ const POISubmission = ({ ); // This will be replaced in the next Manual Upload Project case service_code.manual: + return ( + + ); case service_code.onfido: return ( { - diff --git a/packages/cfd/build/webpack.config.js b/packages/cfd/build/webpack.config.js index c7ea5c026600..31be98bf2fe6 100644 --- a/packages/cfd/build/webpack.config.js +++ b/packages/cfd/build/webpack.config.js @@ -14,7 +14,6 @@ module.exports = function (env) { JurisdictionModal: 'Containers/jurisdiction-modal/jurisdiction-modal.tsx', CFDPasswordModal: 'Containers/cfd-password-modal.tsx', CFDDbviOnBoarding: 'Containers/cfd-dbvi-onboarding.tsx', - CFDPersonalDetailsModal: 'Containers/cfd-personal-details-modal.tsx', CFDResetPasswordModal: 'Containers/cfd-reset-password-modal.tsx', CFDServerErrorDialog: 'Containers/cfd-server-error-dialog.tsx', CFDTopUpDemoModal: 'Containers/cfd-top-up-demo-modal.tsx', diff --git a/packages/cfd/src/Components/cfd-account-card.tsx b/packages/cfd/src/Components/cfd-account-card.tsx index 5e85daba4c1c..dc7260b9f945 100644 --- a/packages/cfd/src/Components/cfd-account-card.tsx +++ b/packages/cfd/src/Components/cfd-account-card.tsx @@ -178,23 +178,27 @@ const CFDAccountCardComponent = ({ is_accounts_switcher_on, is_button_primary, is_disabled, + is_eu, is_logged_in, is_virtual, - is_eu, isEligibleForMoreDemoMt5Svg, isEligibleForMoreRealMt5, onClickFund, onPasswordManager, onSelectAccount, platform, + setAccountType, + setJurisdictionSelectedShortcode, setIsAcuityModalOpen, setMT5TradeAccount, specs, title, toggleAccountsDialog, + toggleCFDVerificationModal, toggleMT5TradeModal, toggleShouldShowRealAccountsList, type, + updateAccountStatus, real_account_creation_unlock_date, setShouldShowCooldownModal, }: TCFDAccountCard) => { @@ -269,6 +273,38 @@ const CFDAccountCardComponent = ({ return ''; }, []); + const getBannerStatus = (account: DetailsOfEachMT5Loginid) => { + const { landing_company_short, status } = account; + if (landing_company_short && status && ['proof_failed', 'verification_pending'].includes(status)) { + const should_show_pending_button = status === 'verification_pending'; + return ( + + ); + } + return null; + }; + const is_web_terminal_unsupported = isMobile() && platform === CFD_PLATFORMS.DXTRADE; const tbody_content = platform === CFD_PLATFORMS.DXTRADE && ( @@ -543,42 +579,50 @@ const CFDAccountCardComponent = ({
)}
- {existing_data && is_logged_in && ( - - )} - {existing_data && is_logged_in && !is_web_terminal_unsupported && ( - + )} + {existing_data && is_logged_in && !is_web_terminal_unsupported && ( + + toggleMT5TradeModal(); + setMT5TradeAccount(selected_account_data); + }} + primary + large + > + + + )} + )}
@@ -714,8 +758,12 @@ const CFDAccountCard = connect(({ modules: { cfd }, client, ui }: RootStore) => dxtrade_tokens: cfd.dxtrade_tokens, isEligibleForMoreDemoMt5Svg: client.isEligibleForMoreDemoMt5Svg, isEligibleForMoreRealMt5: client.isEligibleForMoreRealMt5, + setAccountType: cfd.setAccountType, + setJurisdictionSelectedShortcode: cfd.setJurisdictionSelectedShortcode, setIsAcuityModalOpen: ui.setIsAcuityModalOpen, setMT5TradeAccount: cfd.setMT5TradeAccount, + toggleCFDVerificationModal: cfd.toggleCFDVerificationModal, + updateAccountStatus: client.updateAccountStatus, }))(CFDAccountCardComponent); export { CFDAccountCard }; diff --git a/packages/cfd/src/Components/cfd-personal-details-form.tsx b/packages/cfd/src/Components/cfd-personal-details-form.tsx index 6a6094e9f506..c80edd9c4424 100644 --- a/packages/cfd/src/Components/cfd-personal-details-form.tsx +++ b/packages/cfd/src/Components/cfd-personal-details-form.tsx @@ -23,17 +23,14 @@ import RootStore from '../Stores/index'; type TCFDPersonalDetailsFormProps = { changeable_fields?: string[]; - has_previous_button?: boolean; + form_error?: string; + index: number; is_loading: boolean; context: RootStore; landing_company: LandingCompany; - residence_list: ResidenceList; - onCancel: () => void; - onSave: (index: number, values: TFormValues) => void; onSubmit: TOnSubmit; + residence_list: ResidenceList; value: TFormValues; - index: number; - form_error?: string; }; type TValidatePersonalDetailsParams = { @@ -199,7 +196,7 @@ const findDefaultValuesInResidenceList: TFindDefaultValuesInResidenceList = ({ return { citizen, place_of_birth, tax_residence }; }; -const submitForm: TSubmitForm = (values, actions, idx, onSubmitFn, is_dirty, residence_list) => { +const submitForm: TSubmitForm = (values, actions, idx, onSubmit, is_dirty, residence_list) => { const { citizen, place_of_birth, tax_residence } = findDefaultValuesInResidenceList({ residence_list, citizen_text: values.citizen, @@ -213,19 +210,16 @@ const submitForm: TSubmitForm = (values, actions, idx, onSubmitFn, is_dirty, res place_of_birth: place_of_birth?.value || '', tax_residence: tax_residence?.value || '', }; - onSubmitFn(idx, payload, actions.setSubmitting, is_dirty); + onSubmit(idx, payload, actions.setSubmitting, is_dirty); }; const CFDPersonalDetailsForm = ({ changeable_fields, - has_previous_button, is_loading, landing_company, residence_list, - onCancel, - onSave, - context, onSubmit, + context, value, index, form_error, @@ -233,11 +227,6 @@ const CFDPersonalDetailsForm = ({ const account_opening_reason = getAccountOpeningReasonList(); const is_tin_required = !!(landing_company?.config?.tax_details_required ?? false); - const handleCancel = (values: TFormValues) => { - onSave(index, values); - onCancel(); - }; - const onSubmitForm = (values: TFormValues, actions: FormikActions) => submitForm(values, actions, index, onSubmit, !isDeepEqual(value, values), residence_list); @@ -369,7 +358,7 @@ const CFDPersonalDetailsForm = ({ data-lpignore='true' autoComplete='off' type='text' - label={localize('Place of birth')} + label={localize('Place of birth*')} error={place_of_birth_error} disabled={is_place_of_birth_disabled} list_items={residence_list} @@ -385,7 +374,7 @@ const CFDPersonalDetailsForm = ({ {form_error && } 0} is_absolute={isMobile()} label={localize('Next')} context={context} - onCancel={() => handleCancel(values)} - has_cancel={has_previous_button} /> diff --git a/packages/cfd/src/Components/cfd-poa.tsx b/packages/cfd/src/Components/cfd-poa.tsx index 01f0c81f3cf4..fb51a5963f55 100644 --- a/packages/cfd/src/Components/cfd-poa.tsx +++ b/packages/cfd/src/Components/cfd-poa.tsx @@ -101,7 +101,6 @@ const CFDPOA = ({ onSave, index, onSubmit, refreshNotifications, ...props }: TCF form_error: '', }); const [document_upload, setDocumentUpload] = useStateCallback({ files: [], error_message: null }); - const [form_values, setFormValues] = React.useState({}); const [hasPOAFailed, sethasPOAfailed] = React.useState(false); const validateForm = (values: TFormValuesInputs) => { @@ -182,15 +181,6 @@ const CFDPOA = ({ onSave, index, onSubmit, refreshNotifications, ...props }: TCF }); }; - const onProceed = () => { - const { files, error_message } = document_upload; - onSubmit(index, { - ...form_values, - ...form_state, - ...{ document_file: files, file_error_message: error_message }, - }); - }; - const onSubmitValues = async (values: TFormValues, actions: FormikHelpers) => { const uploadables = { ...values }; delete uploadables.document_file; @@ -202,23 +192,12 @@ const CFDPOA = ({ onSave, index, onSubmit, refreshNotifications, ...props }: TCF actions.setSubmitting(false); return; } - const { error, get_settings } = await WS.authorized.storage.getSettings(); + const { error } = await WS.authorized.storage.getSettings(); if (error) { setFormState({ ...form_state, ...{ form_error: error.message } }); return; } - // Store newly stored values in the component. - const { _address_line_1, _address_line_2, _address_city, _address_state, _address_postcode } = get_settings; - - setFormValues({ - _address_line_1, - _address_line_2, - _address_city, - _address_postcode, - _address_state, - }); - setFormState({ ...form_state, ...{ form_error: '' } }); try { @@ -235,10 +214,11 @@ const CFDPOA = ({ onSave, index, onSubmit, refreshNotifications, ...props }: TCF actions.setSubmitting(false); return; } - onProceed(); } catch (e: unknown) { setFormState({ ...form_state, ...{ form_error: (e as Error).message } }); } + + actions.setSubmitting(false); onSave(index, values); onSubmit(index, values); }; diff --git a/packages/cfd/src/Components/props.types.ts b/packages/cfd/src/Components/props.types.ts index 7bc69e304461..cb1743591693 100644 --- a/packages/cfd/src/Components/props.types.ts +++ b/packages/cfd/src/Components/props.types.ts @@ -110,7 +110,11 @@ export type TCFDAccountCard = { toggleMT5TradeModal: (arg?: boolean) => void; toggleShouldShowRealAccountsList?: (arg?: boolean) => void; setMT5TradeAccount: (arg: any) => void; + toggleCFDVerificationModal: () => void; + setJurisdictionSelectedShortcode: (shortcode: string) => void; + setAccountType: (account_type: { category: string; type?: string }) => void; setIsAcuityModalOpen: (value: boolean) => void; + updateAccountStatus: () => void; real_account_creation_unlock_date: string; setShouldShowCooldownModal: (value: boolean) => void; }; diff --git a/packages/cfd/src/Constants/jurisdiction-contents.ts b/packages/cfd/src/Constants/jurisdiction-contents.ts index 839fa6cc029c..3302bae52a06 100644 --- a/packages/cfd/src/Constants/jurisdiction-contents.ts +++ b/packages/cfd/src/Constants/jurisdiction-contents.ts @@ -86,8 +86,7 @@ export const jurisdiction_contents: TJurisdictionContent = { ], }, bvi: { - over_header: localize('Better spreads'), - is_over_header_available: true, + is_over_header_available: false, header: localize('British Virgin Islands'), synthetic_contents: [ `${localize( diff --git a/packages/cfd/src/Containers/__tests__/cfd-dashboard.spec.tsx b/packages/cfd/src/Containers/__tests__/cfd-dashboard.spec.tsx index aed9aa885c16..c377de514a1d 100644 --- a/packages/cfd/src/Containers/__tests__/cfd-dashboard.spec.tsx +++ b/packages/cfd/src/Containers/__tests__/cfd-dashboard.spec.tsx @@ -58,7 +58,6 @@ jest.mock('@deriv/account', () => ({ jest.mock('../../Components/success-dialog.jsx', () => () => 'SuccessDialog'); jest.mock('../cfd-password-modal.tsx', () => props => props.is_cfd_password_modal_enabled ? 'CFDPasswordModal' : ''); jest.mock('../cfd-top-up-demo-modal', () => props => props.is_top_up_virtual_open ? 'CFDTopUpDemoModal' : ''); -jest.mock('../cfd-personal-details-modal', () => () => 'CFDPersonalDetailsModal'); jest.mock('../cfd-server-error-dialog.tsx', () => () => 'CFDServerErrorDialog'); jest.mock('../mt5-trade-modal', () => props => props.is_open ? 'MT5TradeModal' : ''); jest.mock( @@ -194,7 +193,6 @@ describe('', () => { toggleAccountsDialog: jest.fn(), toggleMT5TradeModal: jest.fn(), toggleShouldShowRealAccountsList: jest.fn(), - toggleCFDPersonalDetailsModal: jest.fn(), toggleResetTradingPasswordModal: jest.fn(), upgradeable_landing_companies: ['svg'], }; diff --git a/packages/cfd/src/Containers/__tests__/cfd-password-modal.spec.js b/packages/cfd/src/Containers/__tests__/cfd-password-modal.spec.js index 073d3b8469a9..12c1aa54959c 100644 --- a/packages/cfd/src/Containers/__tests__/cfd-password-modal.spec.js +++ b/packages/cfd/src/Containers/__tests__/cfd-password-modal.spec.js @@ -70,6 +70,7 @@ describe('', () => { setMt5Error: mockSetMt5Error, submitMt5Password: mockSubmitMt5Password, submitCFDPassword: mockSubmitCFDPasswordFn, + updateAccountStatus: jest.fn(), }; beforeAll(() => { @@ -189,13 +190,14 @@ describe('', () => { expect(await screen.findByText(/your password cannot be the same as your email address./i)).toBeInTheDocument(); }); - it('should show password dialog asking user to provide POI', async () => { + it('should show transfer message on successful DerivX account creation', async () => { const props = { is_cfd_success_dialog_enabled: true, is_password_modal_exited: true, - account_type: { category: 'real', type: 'financial_stp' }, - is_eu: true, + account_type: { category: 'real', type: 'financial' }, + is_eu: false, is_fully_authenticated: false, + platform: 'dxtrade', }; render( @@ -205,17 +207,18 @@ describe('', () => { ); expect( - await screen.findByText(/we need proof of your identity and address before you can start trading./i) + await screen.findByText(/to start trading, transfer funds from your Deriv account into this account./i) ).toBeInTheDocument(); }); - it('should close the dialog when you click on Submit proof', async () => { + it('should close the dialog when you click on ok button', async () => { const props = { is_cfd_success_dialog_enabled: true, is_password_modal_exited: true, - account_type: { category: 'real', type: 'financial_stp' }, + account_type: { category: 'real', type: 'financial' }, is_eu: true, is_fully_authenticated: false, + jurisdiction_selected_shortcode: 'bvi', }; render( @@ -224,7 +227,7 @@ describe('', () => { ); - fireEvent.click(await screen.findByRole('button', { name: /submit proof/i })); + fireEvent.click(await screen.findByRole('button', { name: /ok/i })); await waitFor(() => { expect(mockSetCFDSuccessDialog).toHaveBeenCalledWith(false); @@ -242,7 +245,7 @@ describe('', () => { is_fully_authenticated is_cfd_success_dialog_enabled is_password_modal_exited - account_type={{ category: 'real', type: 'financial_stp' }} + account_type={{ category: 'real', type: 'financial' }} /> ); diff --git a/packages/cfd/src/Containers/cfd-dashboard.tsx b/packages/cfd/src/Containers/cfd-dashboard.tsx index 4a69e13abe30..ce29d8a12783 100644 --- a/packages/cfd/src/Containers/cfd-dashboard.tsx +++ b/packages/cfd/src/Containers/cfd-dashboard.tsx @@ -16,11 +16,10 @@ import { ResetTradingPasswordModal } from '@deriv/account'; import { connect } from '../Stores/connect'; import MissingRealAccount from './missing-real-account'; import LoadingCFDRealAccountDisplay from './loading-cfd-real-account-display'; -import CFDPersonalDetailsModal from './cfd-personal-details-modal'; import CompareAccountsModal from './compare-accounts-modal'; import JurisdictionModal from './jurisdiction-modal/jurisdiction-modal'; import MT5TradeModal from './mt5-trade-modal'; -import CFDDbViOnBoarding from './cfd-dbvi-onboarding'; +import CFDDbviOnboarding from './cfd-dbvi-onboarding'; import CFDDownloadContainer from '../Components/cfd-download-container'; import CFDPasswordManagerModal from './cfd-password-manager-modal'; import CFDPasswordModal from './cfd-password-modal'; @@ -670,10 +669,7 @@ const CFDDashboard = (props: TCFDDashboardProps) => { {platform === CFD_PLATFORMS.MT5 && is_logged_in && ( - <> - - - + )} void; - enableApp: () => void; - is_cfd_verification_modal_visible: boolean; - toggleCFDVerificationModal: () => void; - jurisdiction_selected_shortcode: string; - updateAccountStatus: () => void; - account_status: GetAccountStatus; - context: RootStore; -}; +const SwitchToRealAccountMessage = ({ onClickOk }: { onClickOk: () => void }) => ( +
+ + + {localize('Switch to your real account to submit your documents')} + +
+); -const CFDDbViOnBoarding = ({ +const CFDDbviOnboarding = ({ + account_status, + context, disableApp, enableApp, - context, + fetchAccountSettings, + has_created_account_for_selected_jurisdiction, + has_submitted_cfd_personal_details, is_cfd_verification_modal_visible, - toggleCFDVerificationModal, + is_virtual, jurisdiction_selected_shortcode, + openPasswordModal, + toggleCFDVerificationModal, updateAccountStatus, - account_status, -}: TVerificationModalProps) => { + updateMT5Status, +}: TCFDDbviOnboardingProps) => { const [showSubmittedModal, setShowSubmittedModal] = React.useState(false); const [is_loading, setIsLoading] = React.useState(false); - const is_vanuatu_selected = jurisdiction_selected_shortcode === 'vanuatu'; const getAccountStatusFromAPI = () => { WS.authorized.getAccountStatus().then((response: AccountStatusResponse) => { const { get_account_status } = response; + if (get_account_status?.authentication) { - const { need_poi_for_vanuatu, poi_acknowledged_for_bvi_labuan_maltainvest, poa_acknowledged } = + const { poi_acknowledged_for_vanuatu_maltainvest, poi_acknowledged_for_bvi_labuan, poa_acknowledged } = getAuthenticationStatusInfo(get_account_status); - if (is_vanuatu_selected && need_poi_for_vanuatu) { - setShowSubmittedModal(false); - } else if (poi_acknowledged_for_bvi_labuan_maltainvest && poa_acknowledged) { - setShowSubmittedModal(true); - } else { - setShowSubmittedModal(false); - } + if (jurisdiction_selected_shortcode === 'vanuatu') { + setShowSubmittedModal( + poi_acknowledged_for_vanuatu_maltainvest && + poa_acknowledged && + has_submitted_cfd_personal_details + ); + } else if (jurisdiction_selected_shortcode === 'maltainvest') { + setShowSubmittedModal(poi_acknowledged_for_vanuatu_maltainvest && poa_acknowledged); + } else + setShowSubmittedModal( + poi_acknowledged_for_bvi_labuan && poa_acknowledged && has_submitted_cfd_personal_details + ); } + setIsLoading(false); }); + setIsLoading(false); }; + React.useEffect(() => { if (is_cfd_verification_modal_visible) { setIsLoading(true); getAccountStatusFromAPI(); + fetchAccountSettings(); } // eslint-disable-next-line react-hooks/exhaustive-deps }, [is_cfd_verification_modal_visible]); - const getModalContent = () => - showSubmittedModal ? ( + const getModalContent = () => { + if (is_loading) { + return ; + } else if (is_virtual) { + return ; + } + return showSubmittedModal ? ( ) : ( { - setShowSubmittedModal(true); + updateMT5Status(); + if (has_created_account_for_selected_jurisdiction) { + setShowSubmittedModal(true); + } else { + toggleCFDVerificationModal(); + openPasswordModal(); + } }} context={context} /> ); + }; - return is_loading ? ( - - ) : ( + const getModalTitle = () => + has_created_account_for_selected_jurisdiction + ? localize('Submit your proof of identity and address') + : localize('Add a real MT5 account'); + + return ( }> ({ +export default connect(({ client, modules: { cfd }, ui }: RootStore) => ({ + account_status: client.account_status, + account_type: cfd.account_type, disableApp: ui.disableApp, enableApp: ui.enableApp, - is_cfd_verification_modal_visible: modules.cfd.is_cfd_verification_modal_visible, - toggleCFDVerificationModal: modules.cfd.toggleCFDVerificationModal, - jurisdiction_selected_shortcode: modules.cfd.jurisdiction_selected_shortcode, + fetchAccountSettings: client.fetchAccountSettings, + has_created_account_for_selected_jurisdiction: cfd.has_created_account_for_selected_jurisdiction, + has_submitted_cfd_personal_details: cfd.has_submitted_cfd_personal_details, + is_cfd_verification_modal_visible: cfd.is_cfd_verification_modal_visible, + is_virtual: client.is_virtual, + jurisdiction_selected_shortcode: cfd.jurisdiction_selected_shortcode, + mt5_login_list: client.mt5_login_list, + openPasswordModal: cfd.enableCFDPasswordModal, + toggleCFDVerificationModal: cfd.toggleCFDVerificationModal, updateAccountStatus: client.updateAccountStatus, - account_status: client.account_status, -}))(CFDDbViOnBoarding); + updateMT5Status: client.updateMT5Status, +}))(CFDDbviOnboarding); diff --git a/packages/cfd/src/Containers/cfd-financial-stp-real-account-signup.tsx b/packages/cfd/src/Containers/cfd-financial-stp-real-account-signup.tsx index 081a722a3d01..06b4a8088b38 100644 --- a/packages/cfd/src/Containers/cfd-financial-stp-real-account-signup.tsx +++ b/packages/cfd/src/Containers/cfd-financial-stp-real-account-signup.tsx @@ -1,11 +1,11 @@ import React from 'react'; import { Div100vhContainer } from '@deriv/components'; import { isDesktop, getAuthenticationStatusInfo } from '@deriv/shared'; -import { localize } from '@deriv/translations'; import { connect } from '../Stores/connect'; -import CFDPOA, { TCFDPOAProps } from '../Components/cfd-poa'; -import CFDPOI from '../Components/cfd-poi'; import { LandingCompany, ResidenceList, GetSettings, StatesList, GetAccountStatus } from '@deriv/api-types'; +import CFDPOA from '../Components/cfd-poa'; +import CFDPOI from '../Components/cfd-poi'; +import CFDPersonalDetailsContainer from './cfd-personal-details-container'; import RootStore from '../Stores/index'; type TAuthenticationStatus = { document_status: string; identity_status: string }; @@ -43,32 +43,35 @@ type TCFDFinancialStpRealAccountSignupProps = { account_status: GetAccountStatus; onFinish: () => void; jurisdiction_selected_shortcode: string; + has_submitted_cfd_personal_details: boolean; }; type TNextStep = (index: number, value: { [key: string]: string | undefined }) => void; type TItemsState = { - header: { [key: string]: string }; - body: ({ onSave, index, onSubmit, refreshNotifications, ...props }: TCFDPOAProps) => JSX.Element; + body: typeof CFDPOI | typeof CFDPOA | typeof CFDPersonalDetailsContainer; form_value: { [key: string]: string | undefined }; forwarded_props: Array>; }; const CFDFinancialStpRealAccountSignup = (props: TCFDFinancialStpRealAccountSignupProps) => { - const { account_status, authentication_status, fetchStatesList, refreshNotifications } = props; + const { + account_status, + authentication_status, + fetchStatesList, + get_settings, + refreshNotifications, + has_submitted_cfd_personal_details, + jurisdiction_selected_shortcode, + } = props; const [step, setStep] = React.useState(0); const [form_error, setFormError] = React.useState(''); const state_index = step; - const height = 'auto'; let is_mounted = React.useRef(true).current; - const { need_poi_for_vanuatu, need_poi_for_bvi_labuan_maltainvest } = getAuthenticationStatusInfo(account_status); + const { need_poi_for_vanuatu_maltainvest, need_poi_for_bvi_labuan } = getAuthenticationStatusInfo(account_status); const poi_config: TItemsState = { - header: { - active_title: localize('Complete your proof of identity'), - title: localize('Proof of identity'), - }, body: CFDPOI, form_value: { poi_state: 'unknown', @@ -84,32 +87,48 @@ const CFDFinancialStpRealAccountSignup = (props: TCFDFinancialStpRealAccountSign }; const poa_config: TItemsState = { - header: { - active_title: localize('Complete your proof of address'), - title: localize('Proof of address'), - }, body: CFDPOA, form_value: { - address_line_1: props.get_settings.address_line_1, - address_line_2: props.get_settings.address_line_2, - address_city: props.get_settings.address_city, - address_state: props.get_settings.address_state, - address_postcode: props.get_settings.address_postcode, + address_line_1: get_settings.address_line_1, + address_line_2: get_settings.address_line_2, + address_city: get_settings.address_city, + address_state: get_settings.address_state, + address_postcode: get_settings.address_postcode, upload_file: '', }, forwarded_props: ['states_list', 'get_settings', 'storeProofOfAddress', 'refreshNotifications'], }; + const personal_details_config: TItemsState = { + body: CFDPersonalDetailsContainer, + form_value: { + citizen: '', + place_of_birth: '', + tax_residence: '', + tax_identification_number: '', + account_opening_reason: '', + }, + forwarded_props: ['residence_list', 'landing_company'], + }; + const should_show_poi = () => { - if (props.jurisdiction_selected_shortcode === 'vanuatu' && need_poi_for_vanuatu) { - return true; + if (jurisdiction_selected_shortcode === 'vanuatu' || jurisdiction_selected_shortcode === 'maltainvest') { + return need_poi_for_vanuatu_maltainvest; } - return need_poi_for_bvi_labuan_maltainvest; + return need_poi_for_bvi_labuan; }; const should_show_poa = !( authentication_status.document_status === 'pending' || authentication_status.document_status === 'verified' ); - const verification_configs = [...(should_show_poi() ? [poi_config] : []), ...(should_show_poa ? [poa_config] : [])]; + + const should_show_personal_details = + !has_submitted_cfd_personal_details && jurisdiction_selected_shortcode !== 'maltainvest'; + + const verification_configs = [ + ...(should_show_poi() ? [poi_config] : []), + ...(should_show_poa ? [poa_config] : []), + ...(should_show_personal_details ? [personal_details_config] : []), + ]; const [items, setItems] = React.useState(verification_configs); @@ -156,7 +175,8 @@ const CFDFinancialStpRealAccountSignup = (props: TCFDFinancialStpRealAccountSign return key ? items[state_index][key] : items[state_index]; }; - const BodyComponent = getCurrent('body') as typeof CFDPOI & typeof CFDPOA; + const BodyComponent = getCurrent('body') as typeof CFDPOI & typeof CFDPOA & typeof CFDPersonalDetailsContainer; + const form_value = getCurrent('form_value'); const passthrough = ((getCurrent('forwarded_props') || []) as TItemsState['forwarded_props']).reduce( @@ -180,7 +200,7 @@ const CFDFinancialStpRealAccountSignup = (props: TCFDFinancialStpRealAccountSign value={form_value} index={state_index} onSubmit={nextStep} - height={height} + height='auto' context={props.context} onCancel={prevStep} onSave={saveFormData} @@ -208,4 +228,5 @@ export default connect(({ client, modules: { cfd }, notifications }: RootStore) storeProofOfAddress: cfd.storeProofOfAddress, account_status: client.account_status, jurisdiction_selected_shortcode: cfd.jurisdiction_selected_shortcode, + has_submitted_cfd_personal_details: cfd.has_submitted_cfd_personal_details, }))(CFDFinancialStpRealAccountSignup); diff --git a/packages/cfd/src/Containers/cfd-password-modal.tsx b/packages/cfd/src/Containers/cfd-password-modal.tsx index 6784fe11a882..51d1ea7f3d40 100644 --- a/packages/cfd/src/Containers/cfd-password-modal.tsx +++ b/packages/cfd/src/Containers/cfd-password-modal.tsx @@ -17,6 +17,7 @@ import { } from '@deriv/components'; import { CFD_PLATFORMS, + getAuthenticationStatusInfo, getCFDPlatformLabel, getErrorMessages, getLegalEntityName, @@ -80,6 +81,11 @@ type TMultiStepRefProps = { goNextStep: () => void; goPrevStep: () => void; }; +type TReviewMsgForMT5 = { + is_selected_mt5_verified: boolean; + jurisdiction_selected_shortcode: string; + manual_status: string; +}; type TCFDPasswordFormProps = TCFDPasswordFormReusedProps & { account_title: string; @@ -117,6 +123,7 @@ type TCFDPasswordModalProps = RouteComponentProps & { form_error?: string; getAccountStatus: (platform: string) => void; is_eu: boolean; + is_logged_in: boolean; is_fully_authenticated: boolean; is_cfd_password_modal_enabled: boolean; is_cfd_success_dialog_enabled: boolean; @@ -134,6 +141,7 @@ type TCFDPasswordModalProps = RouteComponentProps & { values: TCFDPasswordFormValues & { platform?: string }, actions: FormikHelpers ) => void; + updateAccountStatus: () => void; }; const PasswordModalHeader = ({ @@ -165,52 +173,24 @@ const PasswordModalHeader = ({ ); }; -const getSubmitText = ( - platform: string, - is_eu: boolean, - needs_poi: boolean, - jurisdiction_selected_shortcode: string, - type?: string, - category?: string -) => { - if (!category && !type) return ''; - - const category_label = category === 'real' ? localize('real') : localize('demo'); - const type_label = - getMtCompanies(is_eu)[category as keyof TMtCompanies][type as keyof TMtCompanies['demo' | 'real']].short_title; - const jurisdiction_label = getFormattedJurisdictionCode(jurisdiction_selected_shortcode); - - if (category === 'real') { - if (needs_poi) { - return localize('We need proof of your identity and address before you can start trading.'); - } - +const ReviewMessageForMT5 = ({ + is_selected_mt5_verified, + jurisdiction_selected_shortcode, + manual_status, +}: TReviewMsgForMT5) => { + if (is_selected_mt5_verified) { return ( - ]} - /> + ); + } else if (['bvi', 'vanuatu'].includes(jurisdiction_selected_shortcode)) { + if (manual_status === 'pending') { + return ; + } + return ; + } else if (['labuan', 'maltainvest'].includes(jurisdiction_selected_shortcode)) { + return ; } - - return ( - ]} - /> - ); + return null; }; const IconType = React.memo(({ platform, type, is_eu }: TIconTypeProps) => { @@ -601,8 +581,8 @@ const CFDPasswordModal = ({ getAccountStatus, history, is_eu, + is_logged_in, context, - is_fully_authenticated, is_cfd_password_modal_enabled, is_cfd_success_dialog_enabled, is_dxtrade_allowed, @@ -616,6 +596,7 @@ const CFDPasswordModal = ({ setMt5Error, submitMt5Password, submitCFDPassword, + updateAccountStatus, }: TCFDPasswordModalProps) => { const [is_password_modal_exited, setPasswordModalExited] = React.useState(true); const is_bvi = landing_companies?.mt_financial_company?.financial_stp?.shortcode === 'bvi'; @@ -629,6 +610,37 @@ const CFDPasswordModal = ({ const is_password_reset = error_type === 'PasswordReset'; const [is_sent_email_modal_open, setIsSentEmailModalOpen] = React.useState(false); + const { poi_verified_for_bvi_labuan, poi_verified_for_vanuatu_maltainvest, poa_verified, manual_status } = + getAuthenticationStatusInfo(account_status); + + const [is_selected_mt5_verified, setIsSelectedMT5Verified] = React.useState(false); + + const getVerificationStatus = () => { + if (jurisdiction_selected_shortcode === 'svg') { + setIsSelectedMT5Verified(true); + } else if (jurisdiction_selected_shortcode === 'bvi') { + setIsSelectedMT5Verified(poi_verified_for_bvi_labuan); + } else if (jurisdiction_selected_shortcode === 'vanuatu') { + setIsSelectedMT5Verified(poi_verified_for_vanuatu_maltainvest); + } else if (jurisdiction_selected_shortcode === 'labuan') { + setIsSelectedMT5Verified(poi_verified_for_bvi_labuan && poa_verified); + } else if (jurisdiction_selected_shortcode === 'maltainvest') { + setIsSelectedMT5Verified(poi_verified_for_vanuatu_maltainvest && poa_verified); + } + }; + + React.useEffect(() => { + if (is_logged_in) { + updateAccountStatus(); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + React.useEffect(() => { + getVerificationStatus(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [jurisdiction_selected_shortcode, account_status]); + const validatePassword = (values: TCFDPasswordFormValues) => { const errors: FormikErrors = {}; if ( @@ -664,12 +676,8 @@ const CFDPasswordModal = ({ disableCFDPasswordModal(); closeDialogs(); if (account_type.category === 'real') { - if (needs_poi) { - history.push(routes.proof_of_identity); - } else { - sessionStorage.setItem('cfd_transfer_to_login_id', cfd_new_account.login || ''); - history.push(routes.cashier_acc_transfer); - } + sessionStorage.setItem('cfd_transfer_to_login_id', cfd_new_account.login || ''); + history.push(routes.cashier_acc_transfer); } }; @@ -737,17 +745,67 @@ const CFDPasswordModal = ({ return false; }, [should_set_trading_password, should_show_password]); - const needs_poi = is_eu && !is_fully_authenticated; - const success_modal_submit_label = React.useMemo(() => { if (account_type.category === 'real') { - if (needs_poi) { - return localize('Submit proof'); + if (platform === CFD_PLATFORMS.MT5) { + return is_selected_mt5_verified ? localize('Transfer now') : localize('Ok'); } return localize('Transfer now'); } return localize('Continue'); - }, [account_type, needs_poi]); + }, [platform, account_type, is_selected_mt5_verified]); + + const getSubmitText = () => { + const { category, type } = account_type; + if (!category && !type) return ''; + + const category_label = category === 'real' ? localize('real') : localize('demo'); + const type_label = + getMtCompanies(is_eu)[category as keyof TMtCompanies][type as keyof TMtCompanies['demo' | 'real']] + .short_title; + const jurisdiction_label = + jurisdiction_selected_shortcode && getFormattedJurisdictionCode(jurisdiction_selected_shortcode); + + if (category === 'real') { + return ( + + , ]} + /> + {platform === CFD_PLATFORMS.DXTRADE ? ( + + ) : ( + + )} + + ); + } + + return ( + , ]} + /> + ); + }; const cfd_password_form = ( ); - const success_heading = needs_poi ? ( - - {localize('Your account is ready')} - - ) : ( - '' - ); - return ( {password_modal} @@ -832,21 +882,15 @@ const CFDPasswordModal = ({ is_open={should_show_success} toggleModal={closeModal} onCancel={closeModal} - onSubmit={closeOpenSuccess} + onSubmit={platform === CFD_PLATFORMS.MT5 && !is_selected_mt5_verified ? closeModal : closeOpenSuccess} classNameMessage='cfd-password-modal__message' - heading={success_heading} - message={getSubmitText( - platform, - is_eu, - needs_poi, - jurisdiction_selected_shortcode, - account_type.type, - account_type.category - )} + message={getSubmitText()} icon={} icon_size='xlarge' text_submit={success_modal_submit_label} - has_cancel={account_type.category === 'real'} + has_cancel={ + platform === CFD_PLATFORMS.MT5 ? is_selected_mt5_verified : account_type.category === 'real' + } has_close_icon={false} width={isMobile() ? '32.8rem' : 'auto'} is_medium_button={isMobile()} @@ -886,5 +930,5 @@ export default connect(({ client, modules }: RootStore) => ({ cfd_new_account: modules.cfd.new_account_response, mt5_trading_servers: client.mt5_trading_servers, mt5_login_list: client.mt5_login_list, - is_fully_authenticated: client.is_fully_authenticated, + updateAccountStatus: client.updateAccountStatus, }))(withRouter(CFDPasswordModal)); diff --git a/packages/cfd/src/Containers/cfd-personal-details-modal.tsx b/packages/cfd/src/Containers/cfd-personal-details-container.tsx similarity index 61% rename from packages/cfd/src/Containers/cfd-personal-details-modal.tsx rename to packages/cfd/src/Containers/cfd-personal-details-container.tsx index 9208a0ba3f29..7a5b3d9836e3 100644 --- a/packages/cfd/src/Containers/cfd-personal-details-modal.tsx +++ b/packages/cfd/src/Containers/cfd-personal-details-container.tsx @@ -1,9 +1,9 @@ import React from 'react'; -import { Modal, MobileDialog, DesktopWrapper, MobileWrapper, Div100vhContainer, Text } from '@deriv/components'; +import { DesktopWrapper, Div100vhContainer, MobileWrapper, Text } from '@deriv/components'; import { localize } from '@deriv/translations'; import { connect } from '../Stores/connect'; import RootStore from '../Stores/index'; -import { TCFDPersonalDetailsModalProps } from './props.types'; +import { TCFDPersonalDetailsContainerProps } from './props.types'; import CFDPersonalDetailsForm from '../Components/cfd-personal-details-form'; import { getPropertyValue, isDesktop, WS } from '@deriv/shared'; import { GetSettings } from '@deriv/api-types'; @@ -11,21 +11,15 @@ import { GetSettings } from '@deriv/api-types'; type TFormValues = { [key: string]: string }; type TSetSubmitting = (isSubmitting: boolean) => void; -const CFDPersonalDetailsModal = ({ +const CFDPersonalDetailsContainer = ({ account_settings, - disableApp, - enableApp, context, - is_from_mt5_compare_accounts_table, - is_open, + getChangeableFields, landing_company, - openPasswordModal, - toggleCompareAccounts, - toggleCFDPersonalDetailsModal, - toggleJurisdictionModal, residence_list, setAccountSettings, -}: TCFDPersonalDetailsModalProps) => { + onSubmit, +}: TCFDPersonalDetailsContainerProps) => { const [form_error, setFormError] = React.useState(''); const [is_loading, setIsLoading] = React.useState(false); const [form_values, setFormValues] = React.useState({ @@ -68,14 +62,12 @@ const CFDPersonalDetailsModal = ({ }; React.useEffect(() => { - if (is_open) { - setIsLoading(true); - initiatePersonalDetails().then(() => { - setIsLoading(false); - }); - } + setIsLoading(true); + initiatePersonalDetails().then(() => { + setIsLoading(false); + }); // eslint-disable-next-line react-hooks/exhaustive-deps - }, [is_open]); + }, []); const transform = (value: unknown) => { const [result] = residence_list?.filter(item => item.value === value); @@ -91,16 +83,6 @@ const CFDPersonalDetailsModal = ({ }); }; - const prevStep = () => { - setFormError(''); - toggleCFDPersonalDetailsModal(); - if (is_from_mt5_compare_accounts_table) { - toggleCompareAccounts(); - } else { - toggleJurisdictionModal(); - } - }; - const updateValue = async (index: number, value: TFormValues, setSubmitting: TSetSubmitting, is_dirty = true) => { if (is_dirty) { // Set account settings @@ -113,9 +95,8 @@ const CFDPersonalDetailsModal = ({ initiatePersonalDetails(setSubmitting); } saveFormData(index, value); - toggleCFDPersonalDetailsModal(); setAccountSettings({ ...account_settings, ...value }); - openPasswordModal(); + onSubmit(index, value); }; const getPersonalDetailsForm = () => ( @@ -132,16 +113,14 @@ const CFDPersonalDetailsModal = ({
@@ -150,51 +129,18 @@ const CFDPersonalDetailsModal = ({ return ( - - - {getPersonalDetailsForm()} - - - - - {getPersonalDetailsForm()} - - + {getPersonalDetailsForm()} + {getPersonalDetailsForm()} ); }; -export default connect(({ modules: { cfd }, ui, client }: RootStore) => ({ +export default connect(({ ui, client }: RootStore) => ({ account_settings: client.account_settings, disableApp: ui.disableApp, enableApp: ui.enableApp, - is_open: cfd.is_cfd_personal_details_modal_visible, - is_from_mt5_compare_accounts_table: cfd.is_from_mt5_compare_accounts_table, + getChangeableFields: client.getChangeableFields, landing_company: client.landing_company, - openPasswordModal: cfd.enableCFDPasswordModal, residence_list: client.residence_list, setAccountSettings: client.setAccountSettings, - toggleCompareAccounts: cfd.toggleCompareAccountsModal, - toggleCFDPersonalDetailsModal: cfd.toggleCFDPersonalDetailsModal, - toggleJurisdictionModal: cfd.toggleJurisdictionModal, -}))(CFDPersonalDetailsModal); +}))(CFDPersonalDetailsContainer); diff --git a/packages/cfd/src/Containers/jurisdiction-modal-content.tsx b/packages/cfd/src/Containers/jurisdiction-modal-content.tsx deleted file mode 100644 index 0423bab5efb8..000000000000 --- a/packages/cfd/src/Containers/jurisdiction-modal-content.tsx +++ /dev/null @@ -1,814 +0,0 @@ -import React from 'react'; -import { Icon, Text, Checkbox, Popover, StaticUrl } from '@deriv/components'; -import { Localize, localize } from '@deriv/translations'; -import { isMobile } from '@deriv/shared'; -import classNames from 'classnames'; -import { jurisdiction_contents } from '../Constants/jurisdiction-contents'; -import RootStore from '../Stores/index'; -import { connect } from '../Stores/connect'; -import { TExistingData } from '../Components/props.types'; -import { poa_status_codes as StatusCodes } from '@deriv/account'; - -type TAvailableAccountAPI = [ - { - market_type: string; - name: string; - requirements: { - signup: string[]; - withdrawal: string[]; - }; - shortcode: string; - sub_account_type: string; - } -]; - -type TJurisdictionModalContent = { - account_type: string; - jurisdiction_selected_shortcode: string; - setJurisdictionSelectedShortcode: (card_type: string) => void; - synthetic_available_accounts: TAvailableAccountAPI; - financial_available_accounts: TAvailableAccountAPI; - poa_status: string; - poi_status: string; - is_eu: boolean; - context: RootStore; - is_fully_authenticated: boolean; - poi_poa_pending: boolean; - checked: boolean; - setChecked: React.Dispatch>; - real_synthetic_accounts_existing_data: TExistingData; - real_financial_accounts_existing_data: TExistingData; - poa_failed: boolean; - poi_failed: boolean; - is_virtual: boolean; - poi_verified_for_vanuatu: boolean; - poi_verified_for_labuan_bvi: boolean; - poa_verified: boolean; - poi_acknowledged_for_bvi_labuan: boolean; - need_poi_for_vanuatu: boolean; - need_poi_for_bvi_labuan: boolean; - poi_acknowledged_for_vanuatu: boolean; -}; - -type TJurisdictionCard = { - jurisdiction_selected_shortcode: string; - synthetic_available_accounts: TAvailableAccountAPI; - financial_available_accounts: TAvailableAccountAPI; - account_type: string; - poa_status: string; - poi_status: string; - poi_poa_none: boolean; - setJurisdictionSelectedShortcode: (card_type: string) => void; - type_of_card: string; - context: RootStore; - disabled: boolean; - poa_failed: boolean; - poi_failed: boolean; - poa_acknowledged: boolean; - poi_acknowledged: boolean; - is_fully_authenticated: boolean; - is_virtual: boolean; - poi_verified_for_vanuatu: boolean; - poi_verified_for_labuan_bvi: boolean; - poa_verified: boolean; - poi_acknowledged_for_bvi_labuan: boolean; - need_poi_for_vanuatu: boolean; - need_poi_for_bvi_labuan: boolean; - poi_acknowledged_for_vanuatu: boolean; -}; - -const JurisdictionCard = ({ - jurisdiction_selected_shortcode, - synthetic_available_accounts, - financial_available_accounts, - account_type, - poi_poa_none, - setJurisdictionSelectedShortcode, - type_of_card, - disabled, - poa_failed, - poa_acknowledged, - poi_acknowledged, - is_fully_authenticated, - is_virtual, - context, - poi_verified_for_vanuatu, - poi_verified_for_labuan_bvi, - poa_verified, - poi_acknowledged_for_bvi_labuan, - need_poi_for_vanuatu, - need_poi_for_bvi_labuan, - poi_acknowledged_for_vanuatu, -}: TJurisdictionCard) => { - const card_classname = `cfd-jurisdiction-card--${account_type}`; - const number_of_synthetic_accounts_to_be_shown = synthetic_available_accounts?.length; - const number_of_financial_accounts_to_be_shown = financial_available_accounts?.length; - - const [number_of_cards] = React.useState( - account_type === 'synthetic' - ? number_of_synthetic_accounts_to_be_shown - : number_of_financial_accounts_to_be_shown - ); - - const cardSelection = (cardType: string) => { - setJurisdictionSelectedShortcode(jurisdiction_selected_shortcode === cardType ? '' : cardType); - }; - - const Checkmark = () => ( - - ); - - const one_or_two_cards = number_of_cards === 1 || number_of_cards === 2; - - const getAccountTitle = () => { - switch (account_type) { - case 'synthetic': - return 'Derived'; - case 'financial': - return 'Financial'; - default: - return ''; - } - }; - - const getTypeTitle = () => { - switch (type_of_card) { - case 'bvi': - return 'BVI'; - case 'vanuatu': - return 'Vanuatu'; - case 'labuan': - return 'STP'; - default: - return ''; - } - }; - const VerificationStatuses = () => { - if (is_virtual && type_of_card !== 'svg') { - return ( -
- - - -
- ); - } - if (!disabled && type_of_card) { - // account not added - if (type_of_card === 'svg') { - if (!is_fully_authenticated) - return ( -
- - - -
- ); - - return null; - } - if (poi_poa_none) { - // if poi or poa is not submitted - return ( -
- - - -
- ); - } else if (type_of_card === 'vanuatu' && poa_verified && poi_verified_for_vanuatu) { - //if both verified for vanuatu - return null; - } else if ( - (type_of_card === 'bvi' || type_of_card === 'labuan' || type_of_card === 'maltainvest') && - poa_verified && - poi_verified_for_labuan_bvi - ) { - //if both verified for bvi and labuan - return null; - } else if (!poi_poa_none && poa_failed && poi_acknowledged) { - // poa is rejected,suspected, failed-resubmit - return ( -
-
- - - -
-
- ); - } else if (type_of_card === 'vanuatu') { - if (poi_acknowledged_for_vanuatu && poa_acknowledged) { - return ( -
-
- - - -
-
- ); - } else if (need_poi_for_vanuatu && poa_acknowledged) { - return ( -
- - - -
- ); - } else if (need_poi_for_vanuatu && !poa_acknowledged) { - return ( -
-
- - - -
-
- ); - } - } else if (type_of_card === 'bvi' || type_of_card === 'labuan' || type_of_card === 'maltainvest') { - if (poi_acknowledged_for_bvi_labuan && poa_acknowledged) { - return ( -
-
- - - -
-
- ); - } else if (need_poi_for_bvi_labuan && poa_acknowledged) { - return ( -
-
- - - -
-
- ); - } else if (need_poi_for_bvi_labuan && !poa_acknowledged) { - return ( -
-
- - - -
-
- ); - } - } - return null; - } - // account added - return ( -
-
- - - -
-
- ); - }; - - return ( - <> -
undefined : () => cardSelection(`${type_of_card}`)} - style={one_or_two_cards ? { width: '32em' } : { width: '27.6em' }} - > - {jurisdiction_contents[type_of_card as keyof typeof jurisdiction_contents].is_over_header_available && ( -
- - - -
- )} -
- - - - {account_type === 'synthetic' - ? jurisdiction_contents[ - type_of_card as keyof typeof jurisdiction_contents - ].synthetic_contents.map((item, index) => ( -
-
- -
- - - -
- )) - : jurisdiction_contents[ - type_of_card as keyof typeof jurisdiction_contents - ].financial_contents.map((item, index) => ( -
-
- -
- - - - {/* TODO: find a better solution */} - {/Straight-through processing/.test(item) && ( - - )} -
- ))} -
- -
- - ); -}; - -const JurisdictionModalContent = ({ - jurisdiction_selected_shortcode, - account_type, - setJurisdictionSelectedShortcode, - synthetic_available_accounts, - financial_available_accounts, - poa_status, - poi_status, - is_eu, - context, - is_fully_authenticated, - checked, - setChecked, - real_synthetic_accounts_existing_data, - real_financial_accounts_existing_data, - poa_failed, - poi_failed, - is_virtual, - poi_verified_for_vanuatu, - poi_verified_for_labuan_bvi, - poa_verified, - poi_acknowledged_for_bvi_labuan, - need_poi_for_vanuatu, - need_poi_for_bvi_labuan, - poi_acknowledged_for_vanuatu, -}: TJurisdictionModalContent) => { - const card_classname = `cfd-jurisdiction-card--${account_type}`; - - const poa_none = poa_status === StatusCodes.none; - const poi_none = poi_status === StatusCodes.none; - const poi_poa_none = poi_none || poa_none; - - const poa_acknowledged = poa_status === StatusCodes.pending || poa_status === StatusCodes.verified; - const poi_acknowledged = poi_status === StatusCodes.pending || poi_status === StatusCodes.verified; - - const poi_poa_verified = poi_status === StatusCodes.verified && poa_status === StatusCodes.verified; - - const cardsToBeShown = (type_of_card: string) => { - const is_available = ( - account_type === 'synthetic' ? synthetic_available_accounts : financial_available_accounts - )?.some(account => account.shortcode === type_of_card); - return is_available; - }; - - const disableCard = (type_of_card: string) => { - if (is_virtual && type_of_card !== 'svg') { - return true; - } - - const is_available = ( - account_type === 'synthetic' ? real_synthetic_accounts_existing_data : real_financial_accounts_existing_data - )?.some(account => account.landing_company_short === type_of_card); - - return is_available; - }; - - const ModalFootNote = () => { - const account_type_name = account_type === 'synthetic' ? 'Derived' : 'Financial'; - - return ( - - {jurisdiction_selected_shortcode === 'svg' && ( -
- - - -
- )} - - {poi_verified_for_labuan_bvi && poa_verified && jurisdiction_selected_shortcode === 'bvi' && ( -
- - - -
- )} - {poi_verified_for_vanuatu && poa_verified && jurisdiction_selected_shortcode === 'vanuatu' && ( -
- - - -
- )} - {poi_verified_for_labuan_bvi && poa_verified && jurisdiction_selected_shortcode === 'labuan' && ( -
- - - -
- )} - {is_fully_authenticated && jurisdiction_selected_shortcode === 'maltainvest' && ( -
- - - -
- )} - {poi_poa_none && jurisdiction_selected_shortcode && jurisdiction_selected_shortcode !== 'svg' && ( - - - - )} - - {jurisdiction_selected_shortcode && - jurisdiction_selected_shortcode === 'vanuatu' && - need_poi_for_vanuatu && - poa_acknowledged && - !poi_poa_none && ( - - - - )} - {jurisdiction_selected_shortcode && - (jurisdiction_selected_shortcode === 'bvi' || - jurisdiction_selected_shortcode === 'labuan' || - jurisdiction_selected_shortcode === 'maltainvest') && - need_poi_for_bvi_labuan && - poa_acknowledged && - !poi_poa_none && ( - - - - )} - {poa_failed && - !poa_acknowledged && - !poi_failed && - !poi_poa_none && - jurisdiction_selected_shortcode && - jurisdiction_selected_shortcode !== 'svg' && ( - - - - )} - - {poa_failed && - !poa_acknowledged && - jurisdiction_selected_shortcode && - jurisdiction_selected_shortcode === 'vanuatu' && - need_poi_for_vanuatu && ( - - - - )} - - {poa_failed && - !poa_acknowledged && - jurisdiction_selected_shortcode && - ['bvi', 'labuan', 'maltainvest'].some(code => code === jurisdiction_selected_shortcode) && - need_poi_for_bvi_labuan && ( - - - - )} - - {poa_acknowledged && - poi_acknowledged_for_vanuatu && - !poi_poa_verified && - jurisdiction_selected_shortcode && - jurisdiction_selected_shortcode === 'vanuatu' && ( -
- - - -
- )} - - {poa_acknowledged && - poi_acknowledged_for_bvi_labuan && - !poi_poa_verified && - jurisdiction_selected_shortcode && - ['bvi', 'labuan', 'maltainvest'].some(code => code === jurisdiction_selected_shortcode) && ( -
- - - -
- )} -
- ); - }; - - const dbvi_company_names: { [key: string]: { [key: string]: string } } = { - bvi: { name: 'Deriv (BVI) Ltd', tnc_url: 'tnc/deriv-(bvi)-ltd.pdf' }, - labuan: { name: 'Deriv (FX) Ltd', tnc_url: 'tnc/deriv-(fx)-ltd.pdf' }, - maltainvest: { - name: 'Deriv Investments (Europe) Limited', - tnc_url: 'tnc/deriv-investments-(europe)-limited.pdf', - }, - vanuatu: { name: 'Deriv (V) Ltd', tnc_url: 'tnc/general-terms.pdf' }, - }; - - const getCheckboxLabel = () => ( - - , - ]} - /> - - ); - - const ModalCheckbox = ({ - onCheck, - is_checked, - }: { - onCheck: React.Dispatch>; - is_checked: boolean; - }) => ( -
- onCheck(!checked)} value={is_checked} label={getCheckboxLabel()} /> -
- ); - - const showCheckBox = () => { - if (jurisdiction_selected_shortcode) { - if (jurisdiction_selected_shortcode === 'svg') { - return false; - } else if (jurisdiction_selected_shortcode === 'vanuatu' && poa_verified && poi_verified_for_vanuatu) { - return true; - } else if ( - (jurisdiction_selected_shortcode === 'bvi' || jurisdiction_selected_shortcode === 'labuan') && - poa_verified && - poi_verified_for_labuan_bvi - ) { - return true; - } else if (is_fully_authenticated && poi_poa_verified) return true; - return false; - } - return false; - }; - - return ( - -
- {cardsToBeShown('svg') && ( - - )} - {cardsToBeShown('bvi') && ( - - )} - {cardsToBeShown('maltainvest') && is_eu && ( - - )} - {cardsToBeShown('vanuatu') && ( - - )} - {cardsToBeShown('labuan') && ( - - )} -
- - {showCheckBox() && } -
- ); -}; - -export default connect(({ modules: { cfd }, client }: RootStore) => ({ - account_status: client.account_status, - real_financial_accounts_existing_data: cfd.real_financial_accounts_existing_data, - real_synthetic_accounts_existing_data: cfd.real_synthetic_accounts_existing_data, - is_virtual: client.is_virtual, -}))(JurisdictionModalContent); diff --git a/packages/cfd/src/Containers/jurisdiction-modal.tsx b/packages/cfd/src/Containers/jurisdiction-modal.tsx deleted file mode 100644 index 70693b8f6422..000000000000 --- a/packages/cfd/src/Containers/jurisdiction-modal.tsx +++ /dev/null @@ -1,381 +0,0 @@ -import React from 'react'; -import { Button, Modal, DesktopWrapper, MobileDialog, MobileWrapper, UILoader } from '@deriv/components'; -import { localize, Localize } from '@deriv/translations'; -import { connect } from '../Stores/connect'; -import RootStore from '../Stores/index'; -import { - GetAccountSettingsResponse, - GetSettings, - LandingCompany, - GetAccountStatus, - DetailsOfEachMT5Loginid, -} from '@deriv/api-types'; -import JurisdictionModalContent from './jurisdiction-modal-content'; -import { WS, getAuthenticationStatusInfo } from '@deriv/shared'; -import { TTradingPlatformAvailableAccount } from '../Components/props.types'; - -type TCompareAccountsReusedProps = { - landing_companies: LandingCompany; - platform: string; - is_logged_in: boolean; - is_uk: boolean; -}; - -type TOpenAccountTransferMeta = { - category: string; - type?: string; -}; - -type TJurisdictionModalProps = TCompareAccountsReusedProps & { - account_settings: GetSettings; - account_type: { - type: string; - category: string; - }; - authentication_status: { - document_status: string; - identity_status: string; - }; - disableApp: () => void; - enableApp: () => void; - is_jurisdiction_modal_visible: boolean; - is_loading: boolean; - is_eu: boolean; - is_eu_country: boolean; - jurisdiction_selected_shortcode: string; - residence: string; - toggleCFDPersonalDetailsModal: () => void; - toggleJurisdictionModal: () => void; - trading_platform_available_accounts: TTradingPlatformAvailableAccount[]; - is_fully_authenticated: boolean; - openPasswordModal: (account_type: TOpenAccountTransferMeta) => void; - setAccountSettings: (get_settings_response: GetSettings) => void; - setJurisdictionSelectedShortcode: (shortcode: string) => void; - toggleCFDVerificationModal: () => void; - account_status: GetAccountStatus; - mt5_login_list: DetailsOfEachMT5Loginid[]; - updateAccountStatus: () => void; - context: RootStore; -}; - -const JurisdictionModal = ({ - account_settings, - account_type, - authentication_status, - disableApp, - enableApp, - context, - is_jurisdiction_modal_visible, - is_eu, - jurisdiction_selected_shortcode, - toggleCFDPersonalDetailsModal, - toggleJurisdictionModal, - trading_platform_available_accounts, - is_fully_authenticated, - openPasswordModal, - setAccountSettings, - setJurisdictionSelectedShortcode, - toggleCFDVerificationModal, - account_status, - updateAccountStatus, - mt5_login_list, -}: TJurisdictionModalProps) => { - const [checked, setChecked] = React.useState(false); - const [has_submitted_personal_details, setHasSubmittedPersonalDetails] = React.useState(false); - - const { - onfido_status, - manual_status, - poa_status, - poi_status, - need_poi_for_vanuatu, - need_poi_for_bvi_labuan, - need_poa_submission, - poi_verified_for_vanuatu, - poi_verified_for_labuan_bvi, - poa_verified, - poi_acknowledged_for_bvi_labuan, - poi_acknowledged_for_vanuatu, - } = getAuthenticationStatusInfo(account_status); - - const poi_poa_pending = poi_status === 'pending' && poa_status === 'pending'; - const poi_poa_verified = poi_status === 'verified' && poa_status === 'verified'; - const poi_failed = ['suspected', 'rejected', 'expired'].some(status => status === poi_status); - const poa_failed = ['suspected', 'rejected', 'expired'].some(status => status === poi_status); - const poi_poa_not_submitted = poi_status === 'none' || poa_status === 'none'; - - const selectSVGJurisdiction = () => { - if (account_type.type && !is_eu) { - const created_svg_accounts = mt5_login_list.filter( - data => - data.market_type === account_type.type && - data.landing_company_short === 'svg' && - data.account_type === 'real' - ); - if (!created_svg_accounts.length && (poa_status === 'pending' || poi_status === 'pending')) { - setJurisdictionSelectedShortcode('svg'); - } else { - setJurisdictionSelectedShortcode(''); - } - } else { - setJurisdictionSelectedShortcode(''); - } - }; - - React.useEffect(() => { - if (is_jurisdiction_modal_visible) { - updateAccountStatus(); - selectSVGJurisdiction(); - if (!has_submitted_personal_details) { - let get_settings_response: GetSettings = {}; - if (!account_settings) { - WS.authorized.storage.getSettings().then((response: GetAccountSettingsResponse) => { - get_settings_response = response.get_settings as GetSettings; - setAccountSettings(response.get_settings as GetSettings); - }); - } else { - get_settings_response = account_settings; - } - const { citizen, place_of_birth, tax_residence, tax_identification_number, account_opening_reason } = - get_settings_response as GetSettings; - if (citizen && place_of_birth && tax_residence && tax_identification_number && account_opening_reason) { - setHasSubmittedPersonalDetails(true); - } - } - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [is_jurisdiction_modal_visible]); - - React.useEffect(() => { - if (jurisdiction_selected_shortcode) { - setChecked(false); - } - }, [jurisdiction_selected_shortcode, is_jurisdiction_modal_visible]); - - const financial_available_accounts = trading_platform_available_accounts.filter( - available_account => available_account.market_type === 'financial' - ); - - const synthetic_available_accounts = trading_platform_available_accounts.filter( - available_account => available_account.market_type === 'gaming' - ); - - const modal_title = is_eu - ? localize('Jurisdiction for your Deriv MT5 CFDs account') - : localize('Choose a jurisdiction for your Deriv MT5 {{account_type}} account', { - account_type: account_type.type === 'synthetic' ? 'Derived' : 'Financial', - }); - - const isNextButtonEnabled = () => { - if (jurisdiction_selected_shortcode) { - if (jurisdiction_selected_shortcode === 'svg') { - return true; - } else if (jurisdiction_selected_shortcode === 'vanuatu') { - return ( - (poi_poa_not_submitted || - need_poi_for_vanuatu || - need_poa_submission || - (poi_poa_verified && checked)) && - !poi_poa_pending - ); - } - return ( - (poi_poa_not_submitted || - need_poi_for_bvi_labuan || - need_poa_submission || - (poi_poa_verified && checked)) && - !poi_poa_pending - ); - } - return false; - }; - - const onSelectRealAccount = () => { - const type_of_account = { - category: account_type.category, - type: account_type.type, - }; - - if (is_eu && jurisdiction_selected_shortcode === 'maltainvest') { - if (poi_poa_verified) { - openPasswordModal(type_of_account); - } else { - toggleCFDVerificationModal(); - } - } else if (jurisdiction_selected_shortcode === 'svg') { - openPasswordModal(type_of_account); - } else if (jurisdiction_selected_shortcode === 'vanuatu') { - if (need_poi_for_vanuatu) { - toggleCFDVerificationModal(); - } else if (poi_poa_verified) { - // for bvi, labuan & vanuatu: - if (!has_submitted_personal_details) { - toggleCFDPersonalDetailsModal(); - } else { - openPasswordModal(type_of_account); - } - } else { - toggleCFDVerificationModal(); - } - } else if (need_poi_for_bvi_labuan) { - toggleCFDVerificationModal(); - } else if (poi_poa_verified) { - if (!has_submitted_personal_details) { - toggleCFDPersonalDetailsModal(); - } else { - openPasswordModal(type_of_account); - } - } else { - toggleCFDVerificationModal(); - } - }; - - const buttonText = () => { - const is_non_svg_selected = jurisdiction_selected_shortcode !== 'svg' && jurisdiction_selected_shortcode; - if (poa_failed && is_non_svg_selected && !poi_poa_not_submitted) { - return ; - } else if ( - jurisdiction_selected_shortcode === 'vanuatu' && - (onfido_status === 'none' || manual_status === 'none') - ) { - return ; - } else if (poi_failed && is_non_svg_selected && !poi_poa_not_submitted) { - return ; - } else if (poa_failed && poi_failed && is_non_svg_selected) { - return ; - } - return ; - }; - - return ( - <> -
- }> - - - - - - - - - - - - - - - - - -
- - ); -}; - -export default connect(({ modules, ui, client }: RootStore) => ({ - account_settings: client.account_settings, - account_type: modules.cfd.account_type, - authentication_status: client.authentication_status, - disableApp: ui.disableApp, - enableApp: ui.enableApp, - is_jurisdiction_modal_visible: modules.cfd.is_jurisdiction_modal_visible, - jurisdiction_selected_shortcode: modules.cfd.jurisdiction_selected_shortcode, - trading_platform_available_accounts: client.trading_platform_available_accounts, - is_loading: client.is_populating_mt5_account_list, - is_eu: client.is_eu, - is_logged_in: client.is_logged_in, - is_eu_country: client.is_eu_country, - landing_companies: client.landing_companies, - is_fully_authenticated: client.is_fully_authenticated, - setAccountSettings: client.setAccountSettings, - toggleJurisdictionModal: modules.cfd.toggleJurisdictionModal, - residence: client.residence, - toggleCFDVerificationModal: modules.cfd.toggleCFDVerificationModal, - setJurisdictionSelectedShortcode: modules.cfd.setJurisdictionSelectedShortcode, - account_status: client.account_status, - mt5_login_list: client.mt5_login_list, - updateAccountStatus: client.updateAccountStatus, -}))(JurisdictionModal); diff --git a/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-card-banner.tsx b/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-card-banner.tsx index 5fe38072c682..3c6b2039771f 100644 --- a/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-card-banner.tsx +++ b/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-card-banner.tsx @@ -1,10 +1,10 @@ import React from 'react'; import RootStore from '../../Stores/index'; import { connect } from '../../Stores/connect'; -import { TVerificationStatusBannerProps } from '../props.types'; import { getAuthenticationStatusInfo } from '@deriv/shared'; import { Text } from '@deriv/components'; import { Localize } from '@deriv/translations'; +import { TVerificationStatusBannerProps } from '../props.types'; const VerificationStatusBanner = ({ account_status, @@ -19,19 +19,12 @@ const VerificationStatusBanner = ({ real_financial_accounts_existing_data, }: TVerificationStatusBannerProps) => { const { - poi_not_submitted_for_vanuatu, + poi_not_submitted_for_vanuatu_maltainvest, poi_or_poa_not_submitted, - poi_verified_for_vanuatu, - poi_verified_for_bvi_labuan_maltainvest, - poi_pending_for_bvi_labuan_maltainvest, - poi_pending_for_vanuatu, - poi_resubmit_for_vanuatu, - poi_resubmit_for_bvi_labuan_maltainvest, - poi_poa_verified_for_bvi_labuan_maltainvest, - poi_acknowledged_for_bvi_labuan_maltainvest, - poa_acknowledged, + poi_resubmit_for_vanuatu_maltainvest, + poi_resubmit_for_bvi_labuan, need_poa_resubmission, - need_poi_for_bvi_labuan_maltainvest, + need_poi_for_bvi_labuan, poa_pending, } = getAuthenticationStatusInfo(account_status); @@ -49,7 +42,8 @@ const VerificationStatusBanner = ({ const is_svg = type_of_card === 'svg'; const is_vanuatu = type_of_card === 'vanuatu'; const is_bvi = type_of_card === 'bvi'; - const is_labuan_or_maltainvest = ['labuan', 'maltainvest'].includes(type_of_card); + const is_labuan = type_of_card === 'labuan'; + const is_maltainvest = type_of_card === 'maltainvest'; const getTypeTitle = () => { switch (type_of_card) { @@ -126,19 +120,7 @@ const VerificationStatusBanner = ({
); - } else if ( - (is_vanuatu && poi_verified_for_vanuatu) || - (is_bvi && poi_verified_for_bvi_labuan_maltainvest) || - (is_labuan_or_maltainvest && poi_poa_verified_for_bvi_labuan_maltainvest) - ) { - return ( -
- - - -
- ); - } else if (is_vanuatu && poi_not_submitted_for_vanuatu) { + } else if (is_vanuatu && poi_not_submitted_for_vanuatu_maltainvest) { return (
@@ -146,38 +128,20 @@ const VerificationStatusBanner = ({
); - } else if ((is_vanuatu && poi_pending_for_vanuatu) || (is_bvi && poi_pending_for_bvi_labuan_maltainvest)) { - return ( -
- - - -
- ); } else if ( - is_labuan_or_maltainvest && - poi_acknowledged_for_bvi_labuan_maltainvest && - poa_acknowledged && - !poi_poa_verified_for_bvi_labuan_maltainvest + ((is_bvi || is_labuan) && need_poi_for_bvi_labuan && need_poa_resubmission) || + ((is_vanuatu || is_maltainvest) && poi_resubmit_for_vanuatu_maltainvest && need_poa_resubmission) ) { - return ( -
- - - -
- ); - } else if (is_labuan_or_maltainvest && need_poa_resubmission && need_poi_for_bvi_labuan_maltainvest) { return (
- +
); } else if ( - (is_vanuatu && poi_resubmit_for_vanuatu) || - ((is_bvi || is_labuan_or_maltainvest) && poi_resubmit_for_bvi_labuan_maltainvest) + ((is_bvi || is_labuan) && poi_resubmit_for_bvi_labuan) || + ((is_vanuatu || is_maltainvest) && poi_resubmit_for_vanuatu_maltainvest) ) { return (
@@ -186,7 +150,7 @@ const VerificationStatusBanner = ({
); - } else if (is_labuan_or_maltainvest && need_poa_resubmission) { + } else if (!is_svg && need_poa_resubmission) { return (
diff --git a/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-card.tsx b/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-card.tsx index 1690e2149c0e..65ba04dec3bc 100644 --- a/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-card.tsx +++ b/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-card.tsx @@ -4,7 +4,7 @@ import { Icon, Text, Popover } from '@deriv/components'; import { Localize, localize } from '@deriv/translations'; import { jurisdiction_contents } from '../../Constants/jurisdiction-contents'; import { TJurisdictionCardProps } from '../props.types'; -import VerificationStatusBanner from './jurisdiction-card-banner'; +import JurisdictionCardBanner from './jurisdiction-card-banner'; const JurisdictionCard = ({ account_type, @@ -84,7 +84,7 @@ const JurisdictionCard = ({
))}
- { - const { - poi_verified_for_bvi_labuan_maltainvest, - poi_verified_for_vanuatu, - poa_not_submitted, - poi_poa_verified_for_bvi_labuan_maltainvest, - } = getAuthenticationStatusInfo(account_status); - const shouldShowCheckBox = () => { if (jurisdiction_selected_shortcode) { - if (jurisdiction_selected_shortcode === 'svg') { - return false; - } else if ( - jurisdiction_selected_shortcode === 'vanuatu' && - poi_verified_for_vanuatu && - !poa_not_submitted - ) { - return true; - } else if ( - jurisdiction_selected_shortcode === 'bvi' && - !should_restrict_bvi_account_creation && - poi_verified_for_bvi_labuan_maltainvest && - !poa_not_submitted + if ( + jurisdiction_selected_shortcode === 'svg' || + (jurisdiction_selected_shortcode === 'bvi' && should_restrict_bvi_account_creation) ) { - return true; - } else if ( - ['labuan', 'maltainvest'].includes(jurisdiction_selected_shortcode) && - poi_poa_verified_for_bvi_labuan_maltainvest - ) { - return true; + return false; } + return true; } return false; }; @@ -76,7 +54,13 @@ const JurisdictionCheckBox = ({ {shouldShowCheckBox() && (
- +
)}
diff --git a/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-modal-content.tsx b/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-modal-content.tsx index 2377bce7f453..9036df6e895a 100644 --- a/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-modal-content.tsx +++ b/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-modal-content.tsx @@ -57,14 +57,13 @@ const JurisdictionModalContent = ({
setChecked(!checked)} diff --git a/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-modal-foot-note.tsx b/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-modal-foot-note.tsx index 73eabba38195..1488676aed32 100644 --- a/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-modal-foot-note.tsx +++ b/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-modal-foot-note.tsx @@ -1,113 +1,64 @@ import React from 'react'; import { Text } from '@deriv/components'; -import { getAuthenticationStatusInfo } from '@deriv/shared'; import { Localize } from '@deriv/translations'; +import { getAuthenticationStatusInfo } from '@deriv/shared'; import { TJurisdictionModalFootNoteProps } from '../props.types'; const FooterNote = ({ account_status, account_type, context, - jurisdiction_selected_shortcode, card_classname, + jurisdiction_selected_shortcode, should_restrict_bvi_account_creation, }: TJurisdictionModalFootNoteProps) => { - const { - poi_or_poa_not_submitted, - poi_pending_for_vanuatu, - poi_verified_for_bvi_labuan_maltainvest, - poi_pending_for_bvi_labuan_maltainvest, - poi_verified_for_vanuatu, - need_poi_for_vanuatu, - poi_resubmit_for_bvi_labuan_maltainvest, - poi_acknowledged_for_bvi_labuan_maltainvest, - poa_acknowledged, - poi_poa_verified_for_bvi_labuan_maltainvest, - need_poa_resubmission, - need_poi_for_bvi_labuan_maltainvest, - poa_pending, - } = getAuthenticationStatusInfo(account_status); - - const is_svg_type = jurisdiction_selected_shortcode === 'svg'; - const is_vanuatu_type = jurisdiction_selected_shortcode === 'vanuatu'; - const is_bvi_type = jurisdiction_selected_shortcode === 'bvi'; - const is_labuan_maltainvest_type = ['labuan', 'maltainvest'].includes(jurisdiction_selected_shortcode); const account_type_name = account_type === 'synthetic' ? 'Derived' : 'Financial'; - if (is_svg_type) + const { poa_pending } = getAuthenticationStatusInfo(account_status); + + if (jurisdiction_selected_shortcode === 'svg') { return ( ); - else if (poi_or_poa_not_submitted && (is_vanuatu_type || is_bvi_type || is_labuan_maltainvest_type)) - return ( - - ); - else if (is_bvi_type && should_restrict_bvi_account_creation) { - return poa_pending ? ( - ]} - /> - ) : ( - - ); - } else if (poi_verified_for_bvi_labuan_maltainvest && is_bvi_type) + } else if (jurisdiction_selected_shortcode === 'bvi') { + if (should_restrict_bvi_account_creation) { + return poa_pending ? ( + ]} + /> + ) : ( + + ); + } return ( ); - else if (poi_verified_for_vanuatu && is_vanuatu_type) + } else if (jurisdiction_selected_shortcode === 'vanuatu') return ( ); - else if (poi_poa_verified_for_bvi_labuan_maltainvest && jurisdiction_selected_shortcode === 'labuan') + else if (jurisdiction_selected_shortcode === 'labuan') return ( ); - else if (poi_poa_verified_for_bvi_labuan_maltainvest && jurisdiction_selected_shortcode === 'maltainvest') + else if (jurisdiction_selected_shortcode === 'maltainvest') return ( ); - else if ( - (is_vanuatu_type && poi_pending_for_vanuatu) || - (is_bvi_type && poi_pending_for_bvi_labuan_maltainvest) || - (is_labuan_maltainvest_type && - poi_acknowledged_for_bvi_labuan_maltainvest && - poa_acknowledged && - !poi_poa_verified_for_bvi_labuan_maltainvest) - ) - return ( - ]} - /> - ); - else if (is_labuan_maltainvest_type && need_poa_resubmission && need_poi_for_bvi_labuan_maltainvest) - return ( - - ); - else if ( - (is_vanuatu_type && need_poi_for_vanuatu) || - ((is_bvi_type || is_labuan_maltainvest_type) && poi_resubmit_for_bvi_labuan_maltainvest) - ) - return ( - - ); - else if (is_labuan_maltainvest_type && need_poa_resubmission) - return ( - - ); + return null; }; diff --git a/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-modal.tsx b/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-modal.tsx index 944c53b6a6db..21d5007bf8bb 100644 --- a/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-modal.tsx +++ b/packages/cfd/src/Containers/jurisdiction-modal/jurisdiction-modal.tsx @@ -1,16 +1,14 @@ import React from 'react'; -import { Button, Modal, DesktopWrapper, MobileDialog, MobileWrapper, UILoader } from '@deriv/components'; -import { localize, Localize } from '@deriv/translations'; +import { Button, DesktopWrapper, MobileDialog, MobileWrapper, Modal, UILoader } from '@deriv/components'; +import { localize } from '@deriv/translations'; import { connect } from '../../Stores/connect'; import RootStore from '../../Stores/index'; -import { GetAccountSettingsResponse, GetSettings } from '@deriv/api-types'; import JurisdictionModalContent from './jurisdiction-modal-content'; -import { WS, getAuthenticationStatusInfo, isMobile } from '@deriv/shared'; +import { getAuthenticationStatusInfo, isMobile } from '@deriv/shared'; import { TJurisdictionModalProps } from '../props.types'; const JurisdictionModal = ({ account_status, - account_settings, account_type, disableApp, enableApp, @@ -23,52 +21,28 @@ const JurisdictionModal = ({ real_synthetic_accounts_existing_data, real_financial_accounts_existing_data, trading_platform_available_accounts, - toggleCFDPersonalDetailsModal, toggleJurisdictionModal, - setAccountSettings, setJurisdictionSelectedShortcode, should_restrict_bvi_account_creation, toggleCFDVerificationModal, - updateAccountStatus, + updateMT5Status, + fetchAccountSettings, + has_submitted_cfd_personal_details, }: TJurisdictionModalProps) => { const [checked, setChecked] = React.useState(false); - const [has_submitted_personal_details, setHasSubmittedPersonalDetails] = React.useState(false); const { - poi_pending_for_vanuatu, - poi_verified_for_vanuatu, - poi_pending_for_bvi_labuan_maltainvest, - poi_resubmit_for_bvi_labuan_maltainvest, - poi_resubmit_for_vanuatu, - poi_verified_for_bvi_labuan_maltainvest, poi_or_poa_not_submitted, - poi_poa_verified_for_bvi_labuan_maltainvest, - need_poa_resubmission, - poi_acknowledged_for_bvi_labuan_maltainvest, + poi_acknowledged_for_bvi_labuan, + poi_acknowledged_for_vanuatu_maltainvest, poa_acknowledged, - poa_pending, } = getAuthenticationStatusInfo(account_status); React.useEffect(() => { - if (is_jurisdiction_modal_visible) { - updateAccountStatus(); + if (is_jurisdiction_modal_visible && !is_virtual) { + updateMT5Status(); setJurisdictionSelectedShortcode(''); - if (!has_submitted_personal_details) { - let get_settings_response: GetSettings = {}; - if (!account_settings) { - WS.authorized.storage.getSettings().then((response: GetAccountSettingsResponse) => { - get_settings_response = response.get_settings as GetSettings; - setAccountSettings(response.get_settings as GetSettings); - }); - } else { - get_settings_response = account_settings; - } - const { citizen, place_of_birth, tax_residence, tax_identification_number, account_opening_reason } = - get_settings_response; - if (citizen && place_of_birth && tax_residence && tax_identification_number && account_opening_reason) { - setHasSubmittedPersonalDetails(true); - } - } + fetchAccountSettings(); } // eslint-disable-next-line react-hooks/exhaustive-deps }, [is_jurisdiction_modal_visible]); @@ -111,103 +85,62 @@ const JurisdictionModal = ({ ); if (!is_account_created) { - if (is_svg_selected || poi_or_poa_not_submitted) { + if (is_svg_selected) { return false; - } else if (is_vanuatu_selected) { - return poi_pending_for_vanuatu || (poi_verified_for_vanuatu && !checked); - } else if (is_bvi_selected) { - return ( - (should_restrict_bvi_account_creation && poa_pending) || - poi_pending_for_bvi_labuan_maltainvest || - (poi_verified_for_bvi_labuan_maltainvest && !checked && !should_restrict_bvi_account_creation) - ); - } else if (is_labuan_selected || is_maltainvest_selected) { - return ( - (poi_acknowledged_for_bvi_labuan_maltainvest && - poa_acknowledged && - !poi_poa_verified_for_bvi_labuan_maltainvest) || - (poi_poa_verified_for_bvi_labuan_maltainvest && !checked) - ); } + return !checked; } return true; } return true; }; - const openPersonalDetailsFormOrPasswordForm = (type_of_account: { category: string; type: string }) => { - if (!has_submitted_personal_details) { - toggleCFDPersonalDetailsModal(); - } else { - openPasswordModal(type_of_account); - } - }; - const onSelectRealAccount = () => { const type_of_account = { category: account_type.category, type: account_type.type, }; - if (is_eu && is_maltainvest_selected) { - if (poi_poa_verified_for_bvi_labuan_maltainvest) { - openPasswordModal(type_of_account); - } else { - toggleCFDVerificationModal(); - } - } else if (is_svg_selected) { + if (is_svg_selected) { openPasswordModal(type_of_account); } else if (is_vanuatu_selected) { - if (poi_verified_for_vanuatu && !poi_or_poa_not_submitted) { - openPersonalDetailsFormOrPasswordForm(type_of_account); + if ( + poi_acknowledged_for_vanuatu_maltainvest && + !poi_or_poa_not_submitted && + poa_acknowledged && + has_submitted_cfd_personal_details + ) { + openPasswordModal(type_of_account); } else { toggleCFDVerificationModal(); } } else if (is_bvi_selected) { if ( - poi_verified_for_bvi_labuan_maltainvest && + poi_acknowledged_for_bvi_labuan && !poi_or_poa_not_submitted && - !should_restrict_bvi_account_creation + !should_restrict_bvi_account_creation && + poa_acknowledged && + has_submitted_cfd_personal_details ) { - openPersonalDetailsFormOrPasswordForm(type_of_account); + openPasswordModal(type_of_account); } else { toggleCFDVerificationModal(); } } else if (is_labuan_selected) { - if (poi_poa_verified_for_bvi_labuan_maltainvest) { - openPersonalDetailsFormOrPasswordForm(type_of_account); + if (poi_acknowledged_for_bvi_labuan && poa_acknowledged && has_submitted_cfd_personal_details) { + openPasswordModal(type_of_account); + } else { + toggleCFDVerificationModal(); + } + } else if (is_maltainvest_selected) { + if (poi_acknowledged_for_vanuatu_maltainvest && poa_acknowledged) { + openPasswordModal(type_of_account); } else { toggleCFDVerificationModal(); } } }; - const getButtonText = () => { - if ( - // need to resubmit both poi and poa - (is_labuan_selected || is_maltainvest_selected) && - poi_resubmit_for_bvi_labuan_maltainvest && - need_poa_resubmission - ) { - return ; - } else if ( - //need to resubmit poi - ((is_vanuatu_selected && poi_resubmit_for_vanuatu) || - ((is_bvi_selected || is_labuan_selected || is_maltainvest_selected) && - poi_resubmit_for_bvi_labuan_maltainvest)) && - !poi_or_poa_not_submitted - ) { - return ; - } else if ( - ((is_labuan_selected || is_maltainvest_selected) && need_poa_resubmission) || - (is_bvi_selected && should_restrict_bvi_account_creation && !poa_acknowledged) - ) { - //need to resubmit poa - return ; - } - return ; - }; - const ModalContent = () => ( - {getButtonText()} + {localize('Next')} @@ -293,7 +226,8 @@ export default connect(({ modules: { cfd }, ui, client }: RootStore) => ({ should_restrict_bvi_account_creation: client.should_restrict_bvi_account_creation, trading_platform_available_accounts: client.trading_platform_available_accounts, toggleCFDVerificationModal: cfd.toggleCFDVerificationModal, - toggleCFDPersonalDetailsModal: cfd.toggleCFDPersonalDetailsModal, toggleJurisdictionModal: cfd.toggleJurisdictionModal, - updateAccountStatus: client.updateAccountStatus, + updateMT5Status: client.updateMT5Status, + fetchAccountSettings: client.fetchAccountSettings, + has_submitted_cfd_personal_details: cfd.has_submitted_cfd_personal_details, }))(JurisdictionModal); diff --git a/packages/cfd/src/Containers/mt5-compare-table-content.tsx b/packages/cfd/src/Containers/mt5-compare-table-content.tsx index f44913262ad0..6038f2c11df8 100644 --- a/packages/cfd/src/Containers/mt5-compare-table-content.tsx +++ b/packages/cfd/src/Containers/mt5-compare-table-content.tsx @@ -52,7 +52,6 @@ type TDMT5CompareModalContentProps = { toggleCompareAccounts: () => void; toggleCFDVerificationModal: () => void; trading_platform_available_accounts: TTradingPlatformAvailableAccount[]; - toggleCFDPersonalDetailsModal: (is_from_mt5_compare_accounts?: boolean) => void; setJurisdictionSelectedShortcode: (shortcode: string) => void; show_eu_related: boolean; account_status: GetAccountStatus; @@ -60,7 +59,7 @@ type TDMT5CompareModalContentProps = { setAppstorePlatform: (platform: string) => void; should_show_derivx: boolean; should_restrict_bvi_account_creation: boolean; - updateAccountStatus: () => void; + updateMT5Status: () => void; real_account_creation_unlock_date: string; setShouldShowCooldownModal: (value: boolean) => void; }; @@ -229,30 +228,29 @@ const eu_footer_button: TFooterButtonData[] = [{ label: localize('Add'), action: const DMT5CompareModalContent = ({ account_settings, - setAccountSettings, - setAccountType, + account_status, clearCFDError, current_list, has_real_account, - is_logged_in, is_demo_tab, + is_logged_in, is_real_enabled, is_virtual, openDerivRealAccountNeededModal, openPasswordModal, openSwitchToRealAccountModal, + setAccountSettings, + setAccountType, + setJurisdictionSelectedShortcode, + should_restrict_bvi_account_creation, + show_eu_related, toggleCFDVerificationModal, - toggleCFDPersonalDetailsModal, toggleCompareAccounts, trading_platform_available_accounts, - show_eu_related, - setJurisdictionSelectedShortcode, - account_status, + updateMT5Status, upgradeable_landing_companies, setAppstorePlatform, should_show_derivx, - should_restrict_bvi_account_creation, - updateAccountStatus, real_account_creation_unlock_date, setShouldShowCooldownModal, }: TDMT5CompareModalContentProps) => { @@ -278,19 +276,17 @@ const DMT5CompareModalContent = ({ : available_accounts_keys.filter(key => key.startsWith('financial')).length || 1; const { - poi_pending_for_vanuatu, - poi_pending_for_bvi_labuan_maltainvest, - poi_verified_for_vanuatu, - poi_verified_for_bvi_labuan_maltainvest, poi_or_poa_not_submitted, - poi_poa_verified_for_bvi_labuan_maltainvest, - poi_acknowledged_for_bvi_labuan_maltainvest, + poi_acknowledged_for_vanuatu_maltainvest, + poi_acknowledged_for_bvi_labuan, poa_acknowledged, poa_pending, } = getAuthenticationStatusInfo(account_status); React.useEffect(() => { - updateAccountStatus(); + if (is_logged_in && !is_virtual) { + updateMT5Status(); + } if (!has_submitted_personal_details) { let get_settings_response: GetSettings = {}; if (!account_settings) { @@ -360,8 +356,6 @@ const DMT5CompareModalContent = ({ const getAvailableAccountsFooterButtons = (footer_button_data: TFooterButtonData[]) => { return footer_button_data.filter(data => available_accounts_keys.includes(data.action)); }; - const openPersonalDetailsFormOrPasswordForm = (type_of_account: { category: string; type: string }) => - !has_submitted_personal_details ? toggleCFDPersonalDetailsModal(true) : openPasswordModal(type_of_account); const onSelectRealAccount = (item: TFooterButtonData) => { const account_type = item.action.startsWith('financial') ? 'financial' : 'synthetic'; @@ -385,11 +379,13 @@ const DMT5CompareModalContent = ({ setAppstorePlatform(CFD_PLATFORMS.MT5); setJurisdictionSelectedShortcode('bvi'); if ( - poi_verified_for_bvi_labuan_maltainvest && + poi_acknowledged_for_bvi_labuan && !poi_or_poa_not_submitted && - !should_restrict_bvi_account_creation + !should_restrict_bvi_account_creation && + has_submitted_personal_details && + poa_acknowledged ) { - openPersonalDetailsFormOrPasswordForm(type_of_account); + openPasswordModal(type_of_account); } else { toggleCFDVerificationModal(); } @@ -397,8 +393,13 @@ const DMT5CompareModalContent = ({ case 'financial_vanuatu': setAppstorePlatform(CFD_PLATFORMS.MT5); setJurisdictionSelectedShortcode('vanuatu'); - if (poi_verified_for_vanuatu && !poi_or_poa_not_submitted) { - openPersonalDetailsFormOrPasswordForm(type_of_account); + if ( + poi_acknowledged_for_vanuatu_maltainvest && + !poi_or_poa_not_submitted && + has_submitted_personal_details && + poa_acknowledged + ) { + openPasswordModal(type_of_account); } else { toggleCFDVerificationModal(); } @@ -406,8 +407,8 @@ const DMT5CompareModalContent = ({ case 'financial_labuan': setAppstorePlatform(CFD_PLATFORMS.MT5); setJurisdictionSelectedShortcode('labuan'); - if (poi_poa_verified_for_bvi_labuan_maltainvest && !poi_or_poa_not_submitted) { - openPersonalDetailsFormOrPasswordForm(type_of_account); + if (poi_acknowledged_for_bvi_labuan && poa_acknowledged && has_submitted_personal_details) { + openPasswordModal(type_of_account); } else { toggleCFDVerificationModal(); } @@ -415,7 +416,7 @@ const DMT5CompareModalContent = ({ case 'financial_maltainvest': setAppstorePlatform(CFD_PLATFORMS.MT5); setJurisdictionSelectedShortcode('maltainvest'); - if (poi_poa_verified_for_bvi_labuan_maltainvest && !poi_or_poa_not_submitted) { + if (poi_acknowledged_for_vanuatu_maltainvest && poa_acknowledged) { openPasswordModal(type_of_account); } else { toggleCFDVerificationModal(); @@ -484,19 +485,12 @@ const DMT5CompareModalContent = ({ const type = item.action.split('_')[1]; if (isAccountAdded(item)) { return false; - } else if (type === 'svg' || item.action === 'derivx') { + } else if (item.action === 'derivx') { return false; - } else if (type === 'vanuatu') { - return poi_pending_for_vanuatu && !poi_or_poa_not_submitted; - } else if (type === 'bvi') { - if (should_restrict_bvi_account_creation && poa_pending) return true; - return poi_pending_for_bvi_labuan_maltainvest && !poi_or_poa_not_submitted; + } else if (type === 'bvi' && should_restrict_bvi_account_creation && poa_pending) { + return true; } - return ( - poi_acknowledged_for_bvi_labuan_maltainvest && - poa_acknowledged && - !poi_poa_verified_for_bvi_labuan_maltainvest - ); + return false; }; const pre_appstore_class = should_show_derivx && synthetic_accounts_count ? '__pre-appstore' : ''; @@ -683,23 +677,22 @@ const DMT5CompareModalContent = ({ }; export default connect(({ modules, client, common, ui }: RootStore) => ({ - account_type: modules.cfd.account_type, account_settings: client.account_settings, - has_real_account: client.has_active_real_account, - setAccountSettings: client.setAccountSettings, - setAccountType: modules.cfd.setAccountType, + account_status: client.account_status, + account_type: modules.cfd.account_type, clearCFDError: modules.cfd.clearCFDError, current_list: modules.cfd.current_list, + has_real_account: client.has_active_real_account, has_real_mt5_login: client.has_real_mt5_login, is_virtual: client.is_virtual, + openSwitchToRealAccountModal: ui.openSwitchToRealAccountModal, + setAccountSettings: client.setAccountSettings, + setAccountType: modules.cfd.setAccountType, setJurisdictionSelectedShortcode: modules.cfd.setJurisdictionSelectedShortcode, + should_restrict_bvi_account_creation: client.should_restrict_bvi_account_creation, toggleCFDVerificationModal: modules.cfd.toggleCFDVerificationModal, - toggleCFDPersonalDetailsModal: modules.cfd.toggleCFDPersonalDetailsModal, trading_platform_available_accounts: client.trading_platform_available_accounts, - account_status: client.account_status, - should_restrict_bvi_account_creation: client.should_restrict_bvi_account_creation, + updateMT5Status: client.updateMT5Status, upgradeable_landing_companies: client.upgradeable_landing_companies, - openSwitchToRealAccountModal: ui.openSwitchToRealAccountModal, setAppstorePlatform: common.setAppstorePlatform, - updateAccountStatus: client.updateAccountStatus, }))(DMT5CompareModalContent); diff --git a/packages/cfd/src/Containers/mt5-trade-modal.tsx b/packages/cfd/src/Containers/mt5-trade-modal.tsx index 093adebb9ee6..3ad690ec270f 100644 --- a/packages/cfd/src/Containers/mt5-trade-modal.tsx +++ b/packages/cfd/src/Containers/mt5-trade-modal.tsx @@ -310,11 +310,11 @@ const MT5TradeModal = ({ {getPageContent()} diff --git a/packages/cfd/src/Containers/props.types.ts b/packages/cfd/src/Containers/props.types.ts index 13c748de1047..fb3b3f17ec8c 100644 --- a/packages/cfd/src/Containers/props.types.ts +++ b/packages/cfd/src/Containers/props.types.ts @@ -12,22 +12,14 @@ import { TCFDPasswordFormValues } from './cfd-password-modal'; import { TTradingPlatformAvailableAccount, TExistingData } from '../Components/props.types'; import RootStore from '../Stores/index'; -export type TCFDPersonalDetailsModalProps = { +export type TCFDPersonalDetailsContainerProps = { account_settings: GetSettings; - enableApp: () => void; - disableApp: () => void; getChangeableFields: () => string[]; - is_from_mt5_compare_accounts_table: boolean; - is_open: boolean; context: RootStore; - openPasswordModal: () => void; - toggleCompareAccounts: () => void; - toggleCFDPersonalDetailsModal: (is_from_mt5_compare_accounts?: boolean) => void; - toggleJurisdictionModal: () => void; - is_fully_authenticated: boolean; landing_company: LandingCompany; residence_list: ResidenceList; setAccountSettings: (account_settings: GetSettings) => void; + onSubmit: (index: number, value: { [key: string]: string }) => void; }; type CFD_Platform = 'dxtrade' | 'mt5'; @@ -195,15 +187,13 @@ export type TVerificationStatusBannerProps = { }; export type TJurisdictionCheckBoxProps = { - account_status: GetAccountStatus; - context: RootStore; class_name: string; + context: RootStore; is_checked: boolean; jurisdiction_selected_shortcode: string; onCheck: () => void; should_restrict_bvi_account_creation: boolean; }; - type TOpenAccountTransferMeta = { category: string; type?: string; @@ -214,9 +204,8 @@ export type TJurisdictionModalProps = { type: string; category: string; }; - context: RootStore; - account_settings: GetSettings; account_status: GetAccountStatus; + context: RootStore; disableApp: () => void; enableApp: () => void; is_eu: boolean; @@ -224,16 +213,16 @@ export type TJurisdictionModalProps = { is_virtual: boolean; jurisdiction_selected_shortcode: string; openPasswordModal: (account_type: TOpenAccountTransferMeta) => void; - setAccountSettings: (get_settings_response: GetSettings) => void; setJurisdictionSelectedShortcode: (shortcode: string) => void; should_restrict_bvi_account_creation: boolean; trading_platform_available_accounts: TTradingPlatformAvailableAccount[]; - toggleCFDPersonalDetailsModal: (is_from_mt5_compare_accounts?: boolean) => void; + fetchAccountSettings: () => void; toggleJurisdictionModal: () => void; toggleCFDVerificationModal: () => void; real_synthetic_accounts_existing_data: TExistingData; real_financial_accounts_existing_data: TExistingData; - updateAccountStatus: () => void; + updateMT5Status: () => void; + has_submitted_cfd_personal_details: boolean; }; export type TJurisdictionModalContentProps = { @@ -254,9 +243,26 @@ export type TJurisdictionModalContentProps = { export type TJurisdictionModalFootNoteProps = { account_status: GetAccountStatus; - context: RootStore; - card_classname: string; account_type: string; + card_classname: string; + context: RootStore; jurisdiction_selected_shortcode: string; should_restrict_bvi_account_creation: boolean; }; + +export type TCFDDbviOnboardingProps = { + account_status: GetAccountStatus; + context: RootStore; + disableApp: () => void; + enableApp: () => void; + fetchAccountSettings: () => void; + has_created_account_for_selected_jurisdiction: boolean; + has_submitted_cfd_personal_details: boolean; + is_cfd_verification_modal_visible: boolean; + is_virtual: boolean; + jurisdiction_selected_shortcode: string; + openPasswordModal: () => void; + toggleCFDVerificationModal: () => void; + updateAccountStatus: () => void; + updateMT5Status: () => void; +}; diff --git a/packages/cfd/src/Stores/Modules/CFD/cfd-store.js b/packages/cfd/src/Stores/Modules/CFD/cfd-store.js index 800ac3771405..e8e273a1bb26 100644 --- a/packages/cfd/src/Stores/Modules/CFD/cfd-store.js +++ b/packages/cfd/src/Stores/Modules/CFD/cfd-store.js @@ -36,8 +36,6 @@ export default class CFDStore extends BaseStore { real: '', }; - is_from_mt5_compare_accounts_table = false; - real_synthetic_accounts_existing_data = []; real_financial_accounts_existing_data = []; @@ -64,9 +62,10 @@ export default class CFDStore extends BaseStore { is_cfd_verification_modal_visible: observable, error_type: observable, dxtrade_tokens: observable, - is_from_mt5_compare_accounts_table: observable, account_title: computed, current_list: computed, + has_created_account_for_selected_jurisdiction: computed, + has_submitted_cfd_personal_details: computed, onMount: action.bound, onUnmount: override, checkShouldOpenAccount: action.bound, @@ -101,8 +100,6 @@ export default class CFDStore extends BaseStore { disableMt5FinancialStpModal: action.bound, topUpVirtual: action.bound, sendVerifyEmail: action.bound, - setIsFromMt5CompareAccountsTable: action.bound, - toggleCFDPersonalDetailsModal: action.bound, setJurisdictionSelectedShortcode: action.bound, toggleCFDVerificationModal: action.bound, setCFDPasswordResetModal: action.bound, @@ -126,9 +123,14 @@ export default class CFDStore extends BaseStore { : ''; } + get has_submitted_cfd_personal_details() { + const { citizen, place_of_birth, tax_residence, tax_identification_number, account_opening_reason } = + this.root_store.client.account_settings; + return !!(citizen && place_of_birth && tax_residence && tax_identification_number && account_opening_reason); + } + get current_list() { const list = {}; - this.root_store.client.mt5_login_list.forEach(account => { // e.g. mt5.real.financial_stp list[getAccountListKey(account, CFD_PLATFORMS.MT5, account.landing_company_short)] = { @@ -155,6 +157,15 @@ export default class CFDStore extends BaseStore { get dxtrade_companies() { return getDxCompanies(); } + get has_created_account_for_selected_jurisdiction() { + return this.account_type.type === 'synthetic' + ? this.real_synthetic_accounts_existing_data?.some( + account => account.landing_company_short === this.jurisdiction_selected_shortcode + ) + : this.real_financial_accounts_existing_data?.some( + account => account.landing_company_short === this.jurisdiction_selected_shortcode + ); + } onMount() { this.checkShouldOpenAccount(); @@ -592,14 +603,6 @@ export default class CFDStore extends BaseStore { } }); } - setIsFromMt5CompareAccountsTable(is_from_compare_accounts) { - this.is_from_mt5_compare_accounts_table = is_from_compare_accounts; - } - - toggleCFDPersonalDetailsModal(is_from_compare_accounts = false) { - this.setIsFromMt5CompareAccountsTable(is_from_compare_accounts); - this.is_cfd_personal_details_modal_visible = !this.is_cfd_personal_details_modal_visible; - } static async changePassword({ login, old_password, new_password, password_type }) { let response; diff --git a/packages/cfd/src/sass/cfd-dashboard.scss b/packages/cfd/src/sass/cfd-dashboard.scss index 2431f273a6ec..68e16247d473 100644 --- a/packages/cfd/src/sass/cfd-dashboard.scss +++ b/packages/cfd/src/sass/cfd-dashboard.scss @@ -1060,13 +1060,13 @@ &__manage--mt5 { display: flex; width: 100%; - margin-left: 0.4rem; - padding-top: 0.2rem; + padding: 0.2rem 0.8rem 0; .dc-btn { - min-width: 12rem; - margin-bottom: 1.6rem; + min-width: 48%; height: 4rem; + width: 100%; + margin: 0 0 0.8rem; &:not(:last-child) { margin-right: 0.6rem; @@ -1363,8 +1363,13 @@ } &-wrapper { overflow: scroll; + width: inherit; } } + &__mobile-title { + text-align: left; + margin: 0 2.4rem; + } } .cfd-password-manager { @@ -2108,7 +2113,6 @@ } .cfd-account__platform { font-style: italic; - white-space: nowrap; } } .cfd-personal-details-form-error { @@ -2365,5 +2369,8 @@ align-items: center; } } +.da-icon-with-message__button { + margin: '2rem'; +} /* stylelint-enable */ diff --git a/packages/cfd/src/sass/cfd.scss b/packages/cfd/src/sass/cfd.scss index a341595afda2..ad444dec1b38 100644 --- a/packages/cfd/src/sass/cfd.scss +++ b/packages/cfd/src/sass/cfd.scss @@ -401,6 +401,9 @@ .dc-modal__container_jurisdiction-modal { min-height: 664px; + .dc-modal-header { + border-bottom: 2px solid var(--general-section-1); + } } .poi-poa-submitted { diff --git a/packages/components/src/components/icon/mt5/ic-mt5-financial-platform.svg b/packages/components/src/components/icon/mt5/ic-mt5-financial-platform.svg index c348b2b7eb22..86191c17aeec 100644 --- a/packages/components/src/components/icon/mt5/ic-mt5-financial-platform.svg +++ b/packages/components/src/components/icon/mt5/ic-mt5-financial-platform.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/icon/mt5/ic-mt5-synthetic-platform.svg b/packages/components/src/components/icon/mt5/ic-mt5-synthetic-platform.svg index 01fdbbc0ad55..dec2806840e0 100644 --- a/packages/components/src/components/icon/mt5/ic-mt5-synthetic-platform.svg +++ b/packages/components/src/components/icon/mt5/ic-mt5-synthetic-platform.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/components/src/components/page-overlay/page-overlay.jsx b/packages/components/src/components/page-overlay/page-overlay.jsx index af199f38fffa..12d3ea3d9367 100644 --- a/packages/components/src/components/page-overlay/page-overlay.jsx +++ b/packages/components/src/components/page-overlay/page-overlay.jsx @@ -6,7 +6,16 @@ import PropTypes from 'prop-types'; import Icon from '../icon/icon'; import { useOnClickOutside } from '../../hooks'; -const PageOverlay = ({ children, header, id, is_from_app = false, is_open, onClickClose, portal_id }) => { +const PageOverlay = ({ + children, + header, + id, + is_from_app = false, + is_open, + onClickClose, + portal_id, + header_classname, +}) => { const page_overlay_ref = React.useRef(); useOnClickOutside(page_overlay_ref, onClickClose, () => is_open && portal_id); @@ -22,7 +31,7 @@ const PageOverlay = ({ children, header, id, is_from_app = false, is_open, onCli {header && (
-
{header}
+
{header}
{!is_from_app && (
mt5_account?.status?.includes('poa_failed')).length; } + get has_mt5_account_with_rejected_poa() { + return !!this.mt5_login_list.filter(mt5_account => mt5_account?.status?.includes('poa_rejected')).length; + } + get should_restrict_bvi_account_creation() { return !!this.mt5_login_list.filter( item => item?.landing_company_short === 'bvi' && item?.status === 'poa_failed' @@ -2487,6 +2493,11 @@ export default class ClientStore extends BaseStore { }); } + async updateMT5Status() { + this.updateAccountStatus(); + await WS.authorized.mt5LoginList().then(this.root_store.client.responseMt5LoginList); + } + setPrevRealAccountLoginid = logind => { this.prev_real_account_loginid = logind; }; diff --git a/packages/core/src/Stores/notification-store.js b/packages/core/src/Stores/notification-store.js index e223bd0e3d06..d4c762112837 100644 --- a/packages/core/src/Stores/notification-store.js +++ b/packages/core/src/Stores/notification-store.js @@ -176,7 +176,7 @@ export default class NotificationStore extends BaseStore { if (key) this.addNotificationMessage(this.client_notifications[key]); } - addVerificationNotifications(identity, document, has_restricted_mt5_account) { + addVerificationNotifications(identity, document, has_restricted_mt5_account, has_mt5_account_with_rejected_poa) { //identity if (identity.status === 'verified') { this.addNotificationMessage(this.client_notifications.poi_verified); @@ -194,6 +194,8 @@ export default class NotificationStore extends BaseStore { } else { this.addNotificationMessage(this.client_notifications.resticted_mt5_with_failed_poa); } + } else if (has_mt5_account_with_rejected_poa) { + this.addNotificationMessage(this.client_notifications.poa_rejected_for_mt5); } else if (!['none', 'pending'].includes(document.status)) { this.addNotificationMessage(this.client_notifications.poa_failed); } @@ -249,6 +251,7 @@ export default class NotificationStore extends BaseStore { is_risky_client, is_financial_information_incomplete, has_restricted_mt5_account, + has_mt5_account_with_rejected_poa, } = this.root_store.client; const { is_p2p_visible, p2p_completed_orders } = this.root_store.modules.cashier.general_store; const { is_10k_withdrawal_limit_reached } = this.root_store.modules.cashier.withdraw; @@ -359,7 +362,12 @@ export default class NotificationStore extends BaseStore { const poo_rejected = needs_verification?.includes('ownership') && ownership?.status?.toLowerCase() === 'rejected'; - this.addVerificationNotifications(identity, document, has_restricted_mt5_account); + this.addVerificationNotifications( + identity, + document, + has_restricted_mt5_account, + has_mt5_account_with_rejected_poa + ); if (needs_poa) this.addNotificationMessage(this.client_notifications.needs_poa); if (needs_poi) this.addNotificationMessage(this.client_notifications.needs_poi); @@ -957,16 +965,25 @@ export default class NotificationStore extends BaseStore { message: , type: 'info', }, - poa_failed: { + poa_rejected_for_mt5: { action: { route: routes.proof_of_address, text: localize('Resubmit proof of address'), }, - key: 'poa_failed', + key: 'poa_rejected_for_mt5', header: localize('Please resubmit your proof of address or we may restrict your account.'), message: localize('Please submit your proof of address.'), type: 'danger', }, + poa_failed: { + action: { + route: routes.proof_of_address, + text: localize('Resubmit proof of address'), + }, + key: 'poa_failed', + header: localize('Please resubmit your proof of address.'), + type: 'danger', + }, poa_verified: { key: 'poa_verified', header: localize('Your proof of address is verified.'), diff --git a/packages/core/src/root_files/custom404.html b/packages/core/src/root_files/custom404.html index 6cdd17415a38..4cca0cdd3939 100644 --- a/packages/core/src/root_files/custom404.html +++ b/packages/core/src/root_files/custom404.html @@ -1,86 +1,95 @@ - - Deriv - - - - - - -
-
-
-
-
-
-
-
-
- + @keyframes sk-stretchdelay { + 0%, + 40%, + 100% { + transform: scaleY(1); + } + 20% { + transform: scaleY(2); + } + } + +
+
+
+
+
+
+
+
+
+ diff --git a/packages/shared/src/utils/cfd/cfd.ts b/packages/shared/src/utils/cfd/cfd.ts index b8a3f0d071a5..5e11f1b60bca 100644 --- a/packages/shared/src/utils/cfd/cfd.ts +++ b/packages/shared/src/utils/cfd/cfd.ts @@ -237,54 +237,54 @@ export const getAuthenticationStatusInfo = (account_status: GetAccountStatus) => const poi_not_submitted = poi_status === 'none'; const poi_or_poa_not_submitted = poa_not_submitted || poi_not_submitted; - //vanuatu + //vanuatu-maltainvest - const poi_verified_for_vanuatu = [onfido_status, manual_status].includes('verified'); - const poi_acknowledged_for_vanuatu = + const poi_verified_for_vanuatu_maltainvest = [onfido_status, manual_status].includes('verified'); + const poi_acknowledged_for_vanuatu_maltainvest = (onfido_status && acknowledged_status.includes(onfido_status)) || (manual_status && acknowledged_status.includes(manual_status)); - const poi_pending_for_vanuatu = + const poi_pending_for_vanuatu_maltainvest = onfido_status && manual_status && [onfido_status, manual_status].includes('pending') && - !poi_verified_for_vanuatu; + !poi_verified_for_vanuatu_maltainvest; - const need_poi_for_vanuatu = !poi_acknowledged_for_vanuatu; - const poi_not_submitted_for_vanuatu = + const need_poi_for_vanuatu_maltainvest = !poi_acknowledged_for_vanuatu_maltainvest; + const poi_not_submitted_for_vanuatu_maltainvest = onfido_status && manual_status && [onfido_status, manual_status].every(status => status === 'none'); - const poi_resubmit_for_vanuatu = - !poi_pending_for_vanuatu && !poi_not_submitted_for_vanuatu && !poi_verified_for_vanuatu; + const poi_resubmit_for_vanuatu_maltainvest = + !poi_pending_for_vanuatu_maltainvest && + !poi_not_submitted_for_vanuatu_maltainvest && + !poi_verified_for_vanuatu_maltainvest; - const poi_poa_verified_for_vanuatu = poi_verified_for_vanuatu && poa_verified; + const poi_poa_verified_for_vanuatu_maltainvest = poi_verified_for_vanuatu_maltainvest && poa_verified; - //bvi-labuan-maltainvest - const poi_acknowledged_for_bvi_labuan_maltainvest = + //bvi-labuan + const poi_acknowledged_for_bvi_labuan = (idv_status && acknowledged_status.includes(idv_status)) || (onfido_status && acknowledged_status.includes(onfido_status)) || (manual_status && acknowledged_status.includes(manual_status)); - const need_poi_for_bvi_labuan_maltainvest = !poi_acknowledged_for_bvi_labuan_maltainvest; - const poi_not_submitted_for_bvi_labuan_maltainvest = + const need_poi_for_bvi_labuan = !poi_acknowledged_for_bvi_labuan; + const poi_not_submitted_for_bvi_labuan = idv_status && onfido_status && manual_status && [idv_status, onfido_status, manual_status].every(status => status === 'none'); - const poi_verified_for_bvi_labuan_maltainvest = [idv_status, onfido_status, manual_status].includes('verified'); + const poi_verified_for_bvi_labuan = [idv_status, onfido_status, manual_status].includes('verified'); - const poi_pending_for_bvi_labuan_maltainvest = + const poi_pending_for_bvi_labuan = idv_status && onfido_status && manual_status && [idv_status, onfido_status, manual_status].includes('pending') && - !poi_verified_for_bvi_labuan_maltainvest; + !poi_verified_for_bvi_labuan; - const poi_resubmit_for_bvi_labuan_maltainvest = - !poi_pending_for_bvi_labuan_maltainvest && - !poi_not_submitted_for_bvi_labuan_maltainvest && - !poi_verified_for_bvi_labuan_maltainvest; - const poi_poa_verified_for_bvi_labuan_maltainvest = poi_verified_for_bvi_labuan_maltainvest && poa_verified; + const poi_resubmit_for_bvi_labuan = + !poi_pending_for_bvi_labuan && !poi_not_submitted_for_bvi_labuan && !poi_verified_for_bvi_labuan; + const poi_poa_verified_for_bvi_labuan = poi_verified_for_bvi_labuan && poa_verified; return { poa_status, @@ -293,26 +293,26 @@ export const getAuthenticationStatusInfo = (account_status: GetAccountStatus) => onfido_status, manual_status, acknowledged_status, - poi_acknowledged_for_vanuatu, - poi_poa_verified_for_bvi_labuan_maltainvest, + poi_acknowledged_for_vanuatu_maltainvest, + poi_poa_verified_for_bvi_labuan, poa_acknowledged, - poi_poa_verified_for_vanuatu, + poi_poa_verified_for_vanuatu_maltainvest, need_poa_submission, - poi_verified_for_vanuatu, - poi_acknowledged_for_bvi_labuan_maltainvest, - poi_verified_for_bvi_labuan_maltainvest, + poi_verified_for_vanuatu_maltainvest, + poi_acknowledged_for_bvi_labuan, + poi_verified_for_bvi_labuan, poa_verified, poi_or_poa_not_submitted, need_poa_resubmission, poa_not_submitted, poi_not_submitted, - need_poi_for_vanuatu, - need_poi_for_bvi_labuan_maltainvest, - poi_not_submitted_for_vanuatu, - poi_pending_for_bvi_labuan_maltainvest, - poi_pending_for_vanuatu, - poi_resubmit_for_vanuatu, - poi_resubmit_for_bvi_labuan_maltainvest, + need_poi_for_vanuatu_maltainvest, + need_poi_for_bvi_labuan, + poi_not_submitted_for_vanuatu_maltainvest, + poi_pending_for_bvi_labuan, + poi_pending_for_vanuatu_maltainvest, + poi_resubmit_for_vanuatu_maltainvest, + poi_resubmit_for_bvi_labuan, poa_pending, }; }; diff --git a/packages/trader/src/sass/app/modules/mt5/cfd-dashboard.scss b/packages/trader/src/sass/app/modules/mt5/cfd-dashboard.scss index c6e702854a19..54f9ef67f810 100644 --- a/packages/trader/src/sass/app/modules/mt5/cfd-dashboard.scss +++ b/packages/trader/src/sass/app/modules/mt5/cfd-dashboard.scss @@ -1552,7 +1552,6 @@ } .cfd-account__platform { font-style: italic; - white-space: nowrap; } } .cfd-personal-details-form-error { From b79e4be45ffe673d6b4119e2a10c754286c7a3fa Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 11 Jan 2023 10:34:34 +0400 Subject: [PATCH 25/84] =?UTF-8?q?translations:=20=F0=9F=93=9A=20sync=20tra?= =?UTF-8?q?nslations=20with=20crowdin=20(#7349)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: DerivFE <80095553+DerivFE@users.noreply.github.com> --- packages/p2p/src/translations/fr.json | 4 +- packages/p2p/src/translations/id.json | 4 +- packages/p2p/src/translations/ru.json | 20 +- packages/translations/crowdin/messages.json | 2 +- .../translations/src/translations/ach.json | 71 ++--- .../translations/src/translations/ar.json | 71 ++--- .../translations/src/translations/es.json | 71 ++--- .../translations/src/translations/fr.json | 71 ++--- .../translations/src/translations/id.json | 75 ++--- .../translations/src/translations/it.json | 121 ++++---- .../translations/src/translations/ko.json | 263 +++++++++--------- .../translations/src/translations/pl.json | 71 ++--- .../translations/src/translations/pt.json | 71 ++--- .../translations/src/translations/ru.json | 127 +++++---- .../translations/src/translations/th.json | 77 ++--- .../translations/src/translations/tr.json | 71 ++--- .../translations/src/translations/vi.json | 71 ++--- .../translations/src/translations/zh_cn.json | 71 ++--- .../translations/src/translations/zh_tw.json | 71 ++--- 19 files changed, 754 insertions(+), 649 deletions(-) diff --git a/packages/p2p/src/translations/fr.json b/packages/p2p/src/translations/fr.json index e4022ee5e8ce..377fe2a81fef 100644 --- a/packages/p2p/src/translations/fr.json +++ b/packages/p2p/src/translations/fr.json @@ -2,7 +2,7 @@ "6794664": "Annonces qui correspondent à votre solde et à votre limite P2P Deriv.", "19789721": "Personne ne t'a bloqué. Ouaii !", "21103557": "Solde P2P dérivé = dépôts qui ne peuvent pas être annulés (virements bancaires, etc.) + une partie des dépôts qui peuvent être annulés (paiements par carte de crédit, etc.)", - "24711354": "Total des commandes <0>30j | <1>à vie", + "24711354": "Total des ordres <0>30j | <1>tous", "47573834": "Taux fixe (1 {{account_currency}})", "50672601": "Acheté", "51881712": "Vous avez déjà une annonce avec le même taux de change pour cette paire de devises et ce type d'ordre.

Veuillez définir un taux différent pour votre annonce.", @@ -307,7 +307,7 @@ "-2059312414": "Détails de l'annonce", "-1769584466": "Statistiques", "-2090878601": "Limite journalière", - "-130547447": "Volume des trades <0>30d | <1>à vie", + "-130547447": "Volume des trades <0>30d | <1>tous", "-1792280476": "Choisissez votre mode de paiement", "-293182503": "Annuler l'ajout de ce mode de paiement ?", "-1850127397": "Si vous choisissez d'annuler, les données que vous avez saisies seront perdues.", diff --git a/packages/p2p/src/translations/id.json b/packages/p2p/src/translations/id.json index 647a3c20d4a8..fadb811baa60 100644 --- a/packages/p2p/src/translations/id.json +++ b/packages/p2p/src/translations/id.json @@ -2,7 +2,7 @@ "6794664": "Iklan yang sesuai dengan saldo dan batas P2P Deriv Anda.", "19789721": "Tidak ada yang memblokir Anda. Yay!", "21103557": "Saldo Deriv P2P = deposit yang tidak dapat dibatalkan (melalui tranfer bank, dsb) + sejumlah deposit yang mungkin dapat dibatalkan (melalui kartu kredit, dsb)", - "24711354": "Total order <0>30hari | <1>seumur hidup", + "24711354": "Total order <0>30hari | <1>semua", "47573834": "Harga tetap (1 {{account_currency}})", "50672601": "Membeli", "51881712": "Anda sudah membuat iklan dengan nilai tukar yang sama untuk pasangan mata uang dan jenis order.

Mohon pilih nilai tukar lain untuk iklan Anda.", @@ -307,7 +307,7 @@ "-2059312414": "Detail iklan", "-1769584466": "Statistik", "-2090878601": "Batas harian", - "-130547447": "Volume transaksi <0>30 hari | <1>seumur hidup", + "-130547447": "Transaksi <0>30 hari | <1>semua", "-1792280476": "Pilih metode pembayaran Anda", "-293182503": "Batalkan penambahan metode pembayaran ini?", "-1850127397": "Jika Anda memilih untuk membatalkan, detail yang Anda masukkan akan hilang.", diff --git a/packages/p2p/src/translations/ru.json b/packages/p2p/src/translations/ru.json index af3de0664a0e..c8786b3b3af2 100644 --- a/packages/p2p/src/translations/ru.json +++ b/packages/p2p/src/translations/ru.json @@ -15,7 +15,7 @@ "145959105": "Выберите псевдоним", "150156106": "Сохранить изменения", "159757877": "Вы больше не будете видеть объявления {{advertiser_name}}, и он не сможет размещать ордеры на ваши объявления.", - "170072126": "Засмотрено {{ duration }} дней назад", + "170072126": "Просмотрено: {{ duration }}д.", "173939998": "Средн. время оплаты за <0>30д", "197477687": "Изменить объявление – {{ad_type}}", "203271702": "Попробуйте еще раз", @@ -65,10 +65,10 @@ "782834680": "Осталось времени", "783454335": "Да, удалить", "830703311": "Мой профайл", - "834075131": "Блокировать aдверты", + "834075131": "Заблокированные", "838024160": "Банковские реквизиты", "842911528": "Больше не показывать это сообщение.", - "858027714": "Замечено {{ duration }} минут назад", + "858027714": "Просмотрено: {{ duration }}мин.", "873437248": "Инструкции (необязательно)", "876086855": "Заполните форму финансовой оценки", "881351325": "Как вам этот продавец?", @@ -100,7 +100,7 @@ "1162965175": "Покупатель", "1163072833": "<0>ID подтвержден", "1191941618": "Введите значение от -{{limit}}% до +{{limit}}%", - "1192337383": "Замечено {{ duration }} часов назад", + "1192337383": "Просмотрено: {{ duration }}ч.", "1202500203": "Заплатить сейчас", "1228352589": "Нет рейтинга", "1229976478": "Вы сможете увидеть объявления {{ advertiser_name }}. Он также сможет размещать ордеры на ваши объявления.", @@ -114,7 +114,7 @@ "1314266187": "Присоединился сегодня", "1326475003": "Активировать", "1328352136": "Продать {{ account_currency }}", - "1330528524": "Замечено {{ duration }} месяцев назад", + "1330528524": "Просмотрено: {{ duration }}мес.", "1337027601": "Вы продали {{offered_amount}} {{offered_currency}}", "1347322213": "Как бы вы оценили эту транзакцию?", "1347724133": "Я заплатил(а) {{amount}} {{currency}}.", @@ -317,11 +317,11 @@ "-1846700504": "Вы уверены, что хотите удалить этот платежный метод?", "-231863107": "Нет", "-532709160": "Ваш псевдоним", - "-1117584385": "Замечен более 6 месяцев назад", - "-1766199849": "Замечено {{ duration }} месяцев назад", - "-591593016": "Замечено {{ duration }} дней назад", - "-1586918919": "Замечено {{ duration }} часов назад", - "-664781013": "Замечено {{ duration }} минут назад", + "-1117584385": "Просмотрено: более 6мес.", + "-1766199849": "Просмотрено: {{ duration }}мес.", + "-591593016": "Просмотрено: {{ duration }}д.", + "-1586918919": "Просмотрено: {{ duration }}ч.", + "-664781013": "Просмотрено: {{ duration }}мин.", "-1717650468": "Онлайн", "-2008992756": "Хотите отменить этот ордер?", "-1666369246": "Если вы отмените ордер {{cancellation_limit}} раз за {{cancellation_period}} ч., ваш доступ на Deriv P2P будет заблокирован на {{block_duration}} ч.
\n(осталось отмен: {{number_of_cancels_remaining}}.)", diff --git a/packages/translations/crowdin/messages.json b/packages/translations/crowdin/messages.json index c996d05c3a20..f48477cfe63d 100644 --- a/packages/translations/crowdin/messages.json +++ b/packages/translations/crowdin/messages.json @@ -1 +1 @@ -{"0":"","1014140":"You may also call <0>+447723580049 to place your complaint.","3125515":"Your Deriv MT5 password is for logging in to your Deriv MT5 accounts on the desktop, web, and mobile apps.","3215342":"Last 30 days","7100308":"Hour must be between 0 and 23.","11539750":"set {{ variable }} to Relative Strength Index Array {{ dummy }}","11872052":"Yes, I'll come back later","14365404":"Request failed for: {{ message_type }}, retrying in {{ delay }}s","15377251":"Profit amount: {{profit}}","17843034":"Check proof of identity document verification status","19424289":"Username","19552684":"USD Basket","21035405":"Please tell us why you’re leaving. (Select up to {{ allowed_reasons }} reasons.)","24900606":"Gold Basket","25854018":"This block displays messages in the developer’s console with an input that can be either a string of text, a number, boolean, or an array of data.","26566655":"Summary","26596220":"Finance","27582767":"{{amount}} {{currency}}","27830635":"Deriv (V) Ltd","28581045":"Add a real MT5 account","30801950":"Your account will be opened with {{legal_entity_name}}, regulated by the Malta Gaming Authority, and will be subject to the laws of Malta.","33433576":"Please use an e-wallet to withdraw your funds.","35089987":"Upload the front and back of your driving licence.","39720204":"AUD Index","41737927":"Thank you","44877997":"Residence permit","45453595":"Binary Coin","45941470":"Where would you like to start?","46523711":"Your proof of identity is verified","49963458":"Choose an option","50200731":"FX majors (standard/micro lots), FX minors, basket indices, commodities, and cryptocurrencies","54185751":"Less than $100,000","55340304":"Keep your current contract?","55916349":"All","58254854":"Scopes","59169515":"If you select \"Asian Rise\", you will win the payout if the last tick is higher than the average of the ticks.","59341501":"Unrecognized file format","59662816":"Stated limits are subject to change without prior notice.","62748351":"List Length","63869411":"This block tests a given number according to the selection","64402604":"Check transfer information","65185694":"Fiat onramp","65982042":"Total","66519591":"Investor password","66557535":"Cancel your trade at any time within a specified time frame.","68885999":"Repeats the previous trade when an error is encountered.","69005593":"The example below restarts trading after 30 or more seconds after 1 minute candle was started.","71016232":"OMG/USD","71445658":"Open","71563326":"A fast and secure fiat-to-crypto payment service. Deposit cryptocurrencies from anywhere in the world using your credit/debit cards and bank transfers.","71853457":"$100,001 - $500,000","72500774":"Please fill in Tax residence.","73086872":"You have self-excluded from trading","73326375":"The low is the lowest point ever reached by the market during the contract period.","74963864":"Under","76916358":"You have reached the withdrawal limit.<0/>Please upload your proof of identity and address to lift the limit to continue your withdrawal.","80881349":"Get an Options account","81450871":"We couldn’t find that page","82839270":"Upload the page of your passport that contains your photo.","83202647":"Collapse Block","85343079":"Financial assessment","85359122":"40 or more","85389154":"Steps required to continue verification on your mobile","89062902":"Trade on MT5","90266322":"2. Start a chat with your newly created Telegram bot and make sure to send it some messages before proceeding to the next step. (e.g. Hello Bot!)","91993812":"The Martingale Strategy is a classic trading technique that has been used for more than a hundred years, popularised by the French mathematician Paul Pierre Levy in the 18th century.","96381225":"ID verification failed","98473502":"We’re not obliged to conduct an appropriateness test, nor provide you with any risk warnings.","98972777":"random item","100239694":"Upload front of card from your computer","102226908":"Field cannot be empty","107206831":"We’ll review your document and notify you of its status within 1-3 days.","108916570":"Duration: {{duration}} days","109073671":"Please use an e-wallet that you have used for deposits previously. Ensure the e-wallet supports withdrawal. See the list of e-wallets that support withdrawals <0>here.","110261653":"Congratulations, you have successfully created your {{category}} {{platform}} <0>{{type}} {{jurisdiction_selected_shortcode}} account. To start trading, transfer funds from your Deriv account into this account.","111215238":"Move away from direct light","111718006":"End date","111931529":"Max. total stake over 7 days","113378532":"ETH/USD","113884303":"German Index","115032488":"Buy price and P/L","116005488":"Indicators","117318539":"Password should have lower and uppercase English letters with numbers.","119261701":"Prediction:","119446122":"Contract type is not selected","120340777":"Complete your personal details","123454801":"{{withdraw_amount}} {{currency_symbol}}","124625402":"of","124723298":"Upload a proof of address to verify your address","125443840":"6. Restart last trade on error","127307725":"A politically exposed person (PEP) is someone appointed with a prominent public position. Close associates and family members of a PEP are also considered to be PEPs.","130567238":"THEN","132596476":"In providing our services to you, we are required to ask you for some information to assess if a given product or service is appropriate for you and whether you have the experience and knowledge to understand the risks involved.<0/><0/>","132689841":"Trade on web terminal","133523018":"Please go to the Deposit page to get an address.","133536621":"and","138055021":"Synthetic indices","139454343":"Confirm my limits","141265840":"Funds transfer information","141626595":"Make sure your device has a working camera","142050447":"set {{ variable }} to create text with","142390699":"Connected to your mobile","143970826":"Payment problems?","145146541":"Our accounts and services are unavailable for the Jersey postal code","145736466":"Take a selfie","150486954":"Token name","151344063":"The exit spot is the market price when the contract is closed.","151646545":"Unable to read file {{name}}","152415091":"Math","152524253":"Trade the world’s markets with our popular user-friendly platform.","157593038":"random integer from {{ start_number }} to {{ end_number }}","160746023":"Tether as an Omni token (USDT) is a version of Tether that is hosted on the Omni layer on the Bitcoin blockchain.","160863687":"Camera not detected","164112826":"This block allows you to load blocks from a URL if you have them stored on a remote server, and they will be loaded only when your bot runs.","164564432":"Deposits are temporarily unavailable due to system maintenance. You can make your deposits when the maintenance is complete.","165294347":"Please set your country of residence in your account settings to access the cashier.","165312615":"Continue on phone","165682516":"If you don’t mind sharing, which other trading platforms do you use?","170185684":"Ignore","170244199":"I’m closing my account for other reasons.","171307423":"Recovery","171579918":"Go to Self-exclusion","171638706":"Variables","173991459":"We’re sending your request to the blockchain.","176319758":"Max. total stake over 30 days","176654019":"$100,000 - $250,000","177099483":"Your address verification is pending, and we’ve placed some restrictions on your account. The restrictions will be lifted once your address is verified.","178413314":"First name should be between 2 and 50 characters.","179083332":"Date","181881956":"Contract Type: {{ contract_type }}","184024288":"lower case","189705706":"This block uses the variable \"i\" to control the iterations. With each iteration, the value of \"i\" is determined by the items in a given list.","189759358":"Creates a list by repeating a given item","191372501":"Accumulation of Income/Savings","192436105":"No need for symbols, digits, or uppercase letters","192573933":"Verification complete","195972178":"Get character","196998347":"We hold customer funds in bank accounts separate from our operational accounts which would not, in the event of insolvency, form part of the company's assets. This meets the <0>Gambling Commission's requirements for the segregation of customer funds at the level: <1>medium protection.","197190401":"Expiry date","201091938":"30 days","203179929":"<0>You can open this account once your submitted documents have been verified.","203271702":"Try again","204797764":"Transfer to client","204863103":"Exit time","206010672":"Delete {{ delete_count }} Blocks","207824122":"Please withdraw your funds from the following Deriv account(s):","209533725":"You’ve transferred {{amount}} {{currency}}","210385770":"If you have an active account, please log in to continue. Otherwise, please sign up.","211224838":"Investment","211461880":"Common names and surnames are easy to guess","211847965":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable withdrawals.","216650710":"You are using a demo account","217403651":"St. Vincent & Grenadines","217504255":"Financial assessment submitted successfully","218441288":"Identity card number","220014242":"Upload a selfie from your computer","220186645":"Text Is empty","220232017":"demo CFDs","222468543":"The amount that you may add to your stake if you’re losing a trade.","223120514":"In this example, each point of the SMA line is an arithmetic average of close prices for the last 50 days.","223607908":"Last digit stats for latest 1000 ticks for {{underlying_name}}","224650827":"IOT/USD","224929714":"Virtual events based bets in the UK and the Isle of Man are offered by {{legal_entity_name}}, Millennium House, Level 1, Victoria Road, Douglas IM2 4RW, Isle of Man, licensed and regulated in Great Britain by the Gambling Commission under <0>account no. 39172 and by the Gambling Supervision Commission in the Isle of Man (<1>view licence).","225887649":"This block is mandatory. It's added to your strategy by default when you create new strategy. You can not add more than one copy of this block to the canvas.","227591929":"To timestamp {{ input_datetime }} {{ dummy }}","227903202":"We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts.","228079844":"Click here to upload","228521812":"Tests whether a string of text is empty. Returns a boolean value (true or false).","229355215":"Trade on {{platform_name_dbot}}","233500222":"- High: the highest price","235583807":"SMA is a frequently used indicator in technical analysis. It calculates the average market price over a specified period, and is usually used to identify market trend direction: up or down. For example, if the SMA is moving upwards, it means the market trend is up. ","236642001":"Journal","238496287":"Leverage trading is high-risk, so it's a good idea to use risk management features such as stop loss. Stop loss allows you to","240247367":"Profit table","243614144":"This is only available for existing clients.","245005091":"lower","245187862":"The DRC will make a <0>decision on the complaint (please note that the DRC mentions no timeframe for announcing its decision).","245812353":"if {{ condition }} return {{ value }}","247418415":"Gaming trading can become a real addiction, as can any other activity pushed to its limits. To avoid the danger of such an addiction, we provide a reality-check that gives you a summary of your trades and accounts on a regular basis.","248565468":"Check your {{ identifier_title }} account email and click the link in the email to proceed.","248909149":"Send a secure link to your phone","249908265":"Are you a citizen of {{- residence}}?","251134918":"Account Information","251445658":"Dark theme","251882697":"Thank you! Your response has been recorded into our system.<0/><0/>Please click ‘OK’ to continue.","254912581":"This block is similar to EMA, except that it gives you the entire EMA line based on the input list and the given period.","256031314":"Cash Business","256602726":"If you close your account:","258310842":"Workspace","258448370":"MT5","258912192":"Trading assessment","260069181":"An error occured while trying to load the URL","260086036":"Place blocks here to perform tasks once when your bot starts running.","260361841":"Tax Identification Number can't be longer than 25 characters.","264976398":"3. 'Error' displays a message in red to highlight something that needs to be resolved immediately.","265644304":"Trade types","267992618":"The platforms lack key features or functionality.","268940240":"Your balance ({{format_balance}} {{currency}}) is less than the current minimum withdrawal allowed ({{format_min_withdraw_amount}} {{currency}}). Please top up your account to continue with your withdrawal.","269607721":"Upload","270339490":"If you select \"Over\", you will win the payout if the last digit of the last tick is greater than your prediction.","270610771":"In this example, the open price of a candle is assigned to the variable \"candle_open_price\".","270712176":"descending","270780527":"You've reached the limit for uploading your documents.","272042258":"When you set your limits, they will be aggregated across all your account types in {{platform_name_trader}}, {{platform_name_dbot}}, {{platform_name_smarttrader}} and {{platform_name_bbot}} on Deriv. For example, the losses made on all four platforms will add up and be counted towards the loss limit you set.","272179372":"This block is commonly used to adjust the parameters of your next trade and to implement stop loss/take profit logic.","273350342":"Copy and paste the token into the app.","273728315":"Should not be 0 or empty","274268819":"Volatility 100 Index","275116637":"Deriv X","277469417":"Exclude time cannot be for more than five years.","278684544":"get sub-list from # from end","282319001":"Check your image","282564053":"Next, we'll need your proof of address.","283986166":"Self-exclusion on the website only applies to your {{brand_website_name}} account and does not include other companies or websites.","284527272":"antimode","284772879":"Contract","287934290":"Are you sure you want to cancel this transaction?","289898640":"TERMS OF USE","291817757":"Go to our Deriv community and learn about APIs, API tokens, ways to use Deriv APIs, and more.","292491635":"If you select “Stop loss” and specify an amount to limit your loss, your position will be closed automatically when your loss is more than or equals to this amount. Your loss may be more than the amount you entered depending on the market price at closing.","292526130":"Tick and candle analysis","292589175":"This will display the SMA for the specified period, using a candle list.","292887559":"Transfer to {{selected_value}} is not allowed, Please choose another account from dropdown","294305803":"Manage account settings","294335229":"Sell at market price","300762428":"Swiss Index","303959005":"Sell Price:","304309961":"We're reviewing your withdrawal request. You may still cancel this transaction if you wish. Once we start processing, you won't be able to cancel.","310234308":"Close all your positions.","312142140":"Save new limits?","312300092":"Trims the spaces within a given string or text.","313298169":"Our cashier is temporarily down due to system maintenance. You can access the Cashier in a few minutes when the maintenance is complete.","313741895":"This block returns “True” if the last candle is black. It can be placed anywhere on the canvas except within the Trade parameters root block.","315306603":"You have an account that do not have currency assigned. Please choose a currency to trade with this account.","316694303":"Is candle black?","317601768":"Themes","318865860":"close","318984807":"This block repeats the instructions contained within for a specific number of times.","323179846":"The time interval for each candle can be set from one minute to one day.","323209316":"Select a Deriv Bot Strategy","325662004":"Expand Block","325763347":"result","326770937":"Withdraw {{currency}} ({{currency_symbol}}) to your wallet","327534692":"Duration value is not allowed. To run the bot, please enter {{min}}.","328539132":"Repeats inside instructions specified number of times","329404045":"<0>Switch to your real account<1> to create a {{platform}} {{account_title}} account.","332886946":"<1>Need help using Acuity?<0/>Check out this <2>user guide.","333456603":"Withdrawal limits","334680754":"Switch to your real account to create a Deriv MT5 account","334942497":"Buy time","335040248":"About us","337023006":"Start time cannot be in the past.","339449279":"Remaining time","339610914":"Spread Up/Spread Down","339879944":"GBP/USD","340807218":"Description not found.","342181776":"Cancel transaction","343873723":"This block displays a message. You can specify the color of the message and choose from 6 different sound options.","344418897":"These trading limits and self-exclusion help you control the amount of money and time you spend on {{brand_website_name}} and exercise <0>responsible trading.","345320063":"Invalid timestamp","346994074":"Selecting this will onboard you through Deriv (SVG) LLC (company no. 273 LLC 2020)","347029309":"Forex: standard/micro","347039138":"Iterate (2)","348951052":"Your cashier is currently locked","349047911":"Over","349110642":"<0>{{payment_agent}}<1>'s contact details","351744408":"Tests if a given text string is empty","352363702":"You may see links to websites with a fake Deriv login page where you’ll get scammed for your money.","353731490":"Job done","354945172":"Submit document","357477280":"No face found","359053005":"Please enter a token name.","359649435":"Given candle list is not valid","359809970":"This block gives you the selected candle value from a list of candles within the selected time interval. You can choose from open price, close price, high price, low price, and open time.","360224937":"Logic","362772494":"This should not exceed {{max}} characters.","363576009":"- High price: the highest price","363738790":"Browser","363990763":"Sell price:","368160866":"in list","371151609":"Last used","371710104":"This scope will allow third-party apps to buy and sell contracts for you, renew your expired purchases, and top up your demo accounts.","372291654":"Exclude time must be after today.","372645383":"True if the market direction matches the selection","373021397":"random","373306660":"{{label}} is required.","373495360":"This block returns the entire SMA line, containing a list of all values for a given period.","374164629":"Trade on Deriv MT5, the all-in-one FX and CFD trading platform.","374537470":"No results for \"{{text}}\"","375714803":"Deal Cancellation Error","379523479":"To avoid loss of funds, do not share tokens with the Admin scope with unauthorised parties.","379730150":"US Tech Index","380606668":"tick","380694312":"Maximum consecutive trades","382781785":"Your contract is closed automatically when your profit is more than or equals to this amount.","384303768":"This block returns \"True\" if the last candle is black. It can be placed anywhere on the canvas except within the Trade parameters root block.","386278304":"Install the {{platform_name_trader}} web app","386502387":"Bot is not running","389923099":"Zoom in","390647540":"Real account","390890891":"Last quarter","391915203":"Hedging","392582370":"Fall Equals","396418990":"Offline","396961806":"We do not support Polygon (Matic), to deposit please use only Ethereum ({{token}}).","398816980":"Launch {{platform_name_trader}} in seconds the next time you want to trade.","401339495":"Verify address","402343402":"Due to an issue on our server, some of your {{platform}} accounts are unavailable at the moment. Please bear with us and thank you for your patience.","403456289":"The formula for SMA is:","404743411":"Total deposits","406359555":"Contract details","406497323":"Sell your active contract if needed (optional)","411482865":"Add {{deriv_account}} account","412433839":"I agree to the <0>terms and conditions.","413594348":"Only letters, numbers, space, hyphen, period, and forward slash are allowed.","417714706":"If your margin level drops below our stop out level, your positions may be closed automatically to protect you from further losses.","417864079":"You’ll not be able to change currency once you have made a deposit.","418265501":"Demo Derived","420072489":"CFD trading frequency","422055502":"From","424897068":"Do you understand that you could potentially lose 100% of the money you use to trade?","426031496":"Stop","427134581":"Try using another file type.","427617266":"Bitcoin","428709688":"Your preferred time interval between each report:","430975601":"Town/City is not in a proper format.","432508385":"Take Profit: {{ currency }} {{ take_profit }}","432519573":"Document uploaded","433348384":"Real accounts are not available to politically exposed persons (PEPs).","433616983":"2. Investigation phase","434548438":"Highlight function definition","434896834":"Custom functions","436364528":"Your account will be opened with {{legal_entity_name}}, and will be subject to the laws of Saint Vincent and the Grenadines.","437138731":"Create a new {{platform}} password","437453244":"Choose your preferred cryptocurrency","437485293":"File type not supported","437904704":"Maximum open positions","438067535":"Over $500,000","442520703":"$250,001 - $500,000","443559872":"Financial SVG","444484637":"Logic negation","445419365":"1 - 2 years","450983288":"Your deposit is unsuccessful due to an error on the blockchain. Please contact your crypto wallet service provider for more info.","451852761":"Continue on your phone","452054360":"Similar to RSI, this block gives you a list of values for each entry in the input list.","453175851":"Your MT5 Financial STP account will be opened through {{legal_entity_name}}. All trading in this account is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA). None of your other accounts, including your Deriv account, is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA).","453409608":"Your profit is the percentage change in market price times your stake and the multiplier of your choice.","454593402":"2. Please upload one of the following:","456746157":"Grant access to your camera from your browser settings","457020083":"It’ll take longer to verify you if we can’t read it","457494524":"1. From the block library, enter a name for the new variable and click Create.","459817765":"Pending","460975214":"Complete your Appropriateness Test","461795838":"Please contact us via live chat to unlock it.","462079779":"Resale not offered","462461595":"Explore Trader's hub","463361726":"Select an item","465993338":"Oscar's Grind","466369320":"Your gross profit is the percentage change in market price times your stake and the multiplier chosen here.","467839232":"I trade forex CFDs and other complex financial instruments regularly on other platforms.","473154195":"Settings","473863031":"Pending proof of address review","474306498":"We’re sorry to see you leave. Your account is now closed.","475492878":"Try Synthetic Indices","476023405":"Didn't receive the email?","477557241":"Remote blocks to load must be a collection.","478280278":"This block displays a dialog box that uses a customised message to prompt for an input. The input can be either a string of text or a number and can be assigned to a variable. When the dialog box is displayed, your strategy is paused and will only resume after you enter a response and click \"OK\".","479420576":"Tertiary","481276888":"Goes Outside","483246914":"Add your Deriv MT5 {{account_type}} STP account under Deriv (FX) Ltd regulated by Labuan Financial Services Authority (Licence no. MB/18/0024).","483279638":"Assessment Completed<0/><0/>","483591040":"Delete all {{ delete_count }} blocks?","485379166":"View transactions","487239607":"Converts a given True or False to the opposite value","488150742":"Resend email","489768502":"Change investor password","491603904":"Unsupported browser","492198410":"Make sure everything is clear","496680295":"Choose country","497518317":"Function that returns a value","498562439":"or","499522484":"1. for \"string\": 1325.68 USD","500855527":"Chief Executives, Senior Officials and Legislators","500920471":"This block performs arithmetic operations between two numbers.","501401157":"You are only allowed to make deposits","501537611":"*Maximum number of open positions","502041595":"This block gives you a specific candle from within the selected time interval.","503137339":"Payout limit","505793554":"last letter","508390614":"Demo Financial STP","510815408":"Letters, numbers, spaces, hyphens only","514031715":"list {{ input_list }} is empty","514776243":"Your {{account_type}} password has been changed.","514948272":"Copy link","518955798":"7. Run Once at Start","520136698":"Boom 500 Index","521872670":"item","522283618":"Digital options trading experience","522703281":"divisible by","523123321":"- 10 to the power of a given number","527329988":"This is a top-100 common password","529056539":"Options","529597350":"If you had any open positions, we have closed them and refunded you.","530953413":"Authorised applications","531114081":"3. Contract Type","531675669":"Euro","535041346":"Max. total stake per day","538228086":"Close-Low","541650045":"Manage {{platform}} password","541700024":"First, enter your driving licence number and the expiry date.","542038694":"Only letters, numbers, space, underscore, and hyphen are allowed for {{label}}.","542305026":"You must also submit a proof of identity.","543413346":"You have no open positions for this asset. To view other open positions, click Go to Reports","543915570":"Forex, stocks, stock indices, cryptocurrencies, synthetic indices","545476424":"Total withdrawals","546534357":"If you select “Deal cancellation”, you’ll be able to cancel your trade within a chosen time frame should the market move against your favour. We’ll charge a small fee for this, but we’ll return your stake amount without profit or loss. If the stop-out amount is reached before the deal cancellation expires, your position will be cancelled automatically and we’ll return your stake amount without profit or loss. While “Deal cancellation” is active:","549479175":"Deriv Multipliers","551569133":"Learn more about trading limits","554410233":"This is a top-10 common password","555351771":"After defining trade parameters and trade options, you may want to instruct your bot to purchase contracts when specific conditions are met. To do that you can use conditional blocks and indicators blocks to help your bot to make decisions.","556095366":"We'll process your details within a few minutes and notify its status via email.","556264438":"Time interval","559224320":"Our classic “drag-and-drop” tool for creating trading bots, featuring pop-up trading charts, for advanced users.","561982839":"Change your currency","562599414":"This block returns the purchase price for the selected trade type. This block can be used only in the \"Purchase conditions\" root block.","563034502":"We shall try to resolve your complaint within 15 business days. We will inform you of the outcome together with an explanation of our position and propose any remedial measures we intend to take.","563166122":"We shall acknowledge receiving your complaint, review it carefully, and keep you updated on the handling process. We might request further information or clarifications to facilitate the resolution of the complaint.","563652273":"Go to block","565410797":"The below image illustrates how Simple Moving Average Array block works:","566274201":"1. Market","567019968":"A variable is among the most important and powerful components in creating a bot. It is a way to store information, either as text or numbers. The information stored as a variable can be used and changed according to the given instructions. Variables can be given any name, but usually they are given useful, symbolic names so that it is easier to call them during the execution of instructions.","567163880":"Create a {{platform}} password","567755787":"Tax Identification Number is required.","569057236":"In which country was your document issued?","571921777":"Funds protection level","572576218":"Languages","573173477":"Is candle {{ input_candle }} black?","577215477":"count with {{ variable }} from {{ start_number }} to {{ end_number }} by {{ step_size }}","577779861":"Withdrawal","577883523":"4. Awards and orders","578640761":"Call Spread","579529868":"Show all details — including the bottom 2 lines","580431127":"Restart buy/sell on error (disable for better performance): {{ checkbox }}","580665362":"Stays In/Goes Out","580774080":"insert at","581168980":"Legal","582945649":"2 minutes","584028307":"Allow equals","587577425":"Secure my account","587856857":"Want to know more about APIs?","592087722":"Employment status is required.","593459109":"Try a different currency","595080994":"Example: CR123456789","595136687":"Save Strategy","597089493":"Here is where you can decide to sell your contract before it expires. Only one copy of this block is allowed.","597481571":"DISCLAIMER","597707115":"Tell us about your trading experience.","599469202":"{{secondPast}}s ago","602278674":"Verify identity","606240547":"- Natural log","606877840":"Back to today","607807243":"Get candle","609519227":"This is the email address associated with your Deriv account.","609650241":"Infinite loop detected","610537973":"Any information you provide is confidential and will be used for verification purposes only.","611020126":"View address on Blockchain","611786123":"FX-majors (standard/micro lots), FX-minors, Commodities, Cryptocurrencies, Stocks, and Stock Indices","613877038":"Chart","617345387":"If you select \"Reset-Up”, you win the payout if the exit spot is strictly higher than either the entry spot or the spot at reset time.","618520466":"Example of a cut-off document","619268911":"<0>a.The Financial Commission will investigate the validity of the complaint within 5 business days.","619407328":"Are you sure you want to unlink from {{identifier_title}}?","623192233":"Please complete the <0>Appropriateness Test to access your cashier.","623542160":"Exponential Moving Average Array (EMAA)","626175020":"Standard Deviation Up Multiplier {{ input_number }}","626809456":"Resubmit","627292452":"<0>Your Proof of Identity or Proof of Address did not meet our requirements. Please check your email for further instructions.","627814558":"This block returns a value when a condition is true. Use this block within either of the function blocks above.","628193133":"Account ID","629145209":"In case if the \"AND\" operation is selected, the block returns \"True\" only if both given values are \"True\"","632398049":"This block assigns a null value to an item or statement.","634219491":"You have not provided your tax identification number. This information is necessary for legal and regulatory requirements. Please go to <0>Personal details in your account settings, and fill in your latest tax identification number.","636219628":"<0>c.If no settlement opportunity can be found, the complaint will proceed to the determination phase to be handled by the DRC.","639382772":"Please upload supported file type.","640596349":"You have yet to receive any notifications","640730141":"Refresh this page to restart the identity verification process","641420532":"We've sent you an email","642210189":"Please check your email for the verification link to complete the process.","642393128":"Enter amount","642546661":"Upload back of license from your computer","642995056":"Email","643014039":"The trade length of your purchased contract.","644150241":"The number of contracts you have won since you last cleared your stats.","645016681":"Trading frequency in other financial instruments","645902266":"EUR/NZD","647192851":"Contract will be sold at the prevailing market price when the request is received by our servers. This price may differ from the indicated price.","647745382":"Input List {{ input_list }}","649317411":"On the basis of the information provided in relation to your knowledge and experience, we consider that the investments available via this website are not appropriate for you.<0/><1/>","649923867":"Adds a sign to a number to create a barrier offset. (deprecated)","651284052":"Low Tick","651684094":"Notify","652041791":"To create a Deriv X real account, create a Deriv real account first.","652298946":"Date of birth","654264404":"Up to 1:30","654507872":"True-False","654924603":"Martingale","655937299":"We’ll update your limits. Click <0>Accept to acknowledge that you are fully responsible for your actions, and we are not liable for any addiction or loss.","657325150":"This block is used to define trade options within the Trade parameters root block. Some options are only applicable for certain trade types. Parameters such as duration and stake are common among most trade types. Prediction is used for trade types such as Digits, while barrier offsets are for trade types that involve barriers such as Touch/No Touch, Ends In/Out, etc.","657444253":"Sorry, account opening is unavailable in your region.","659482342":"Please remember that it is your responsibility to keep your answers accurate and up to date. You can update your personal details at any time in your account settings.","660481941":"To access your mobile apps and other third-party apps, you'll first need to generate an API token.","660991534":"Finish","661759508":"On the basis of the information provided in relation to your knowledge and experience, we consider that the investments available via this website are not appropriate for you.<0/><0/>","662578726":"Available","662609119":"Download the MT5 app","665089217":"Please submit your <0>proof of identity to authenticate your account and access your Cashier.","665777772":"XLM/USD","665872465":"In the example below, the opening price is selected, which is then assigned to a variable called \"op\".","666724936":"Please enter a valid ID number.","668344562":"Synthetics, FX majors (standard/micro lots), FX minors, basket indices, commodities, and cryptocurrencies","672008428":"ZEC/USD","673915530":"Jurisdiction and choice of law","674973192":"Use this password to log in to your Deriv MT5 accounts on the desktop, web, and mobile apps.","676159329":"Could not switch to default account.","677918431":"Market: {{ input_market }} > {{ input_submarket }} > {{ input_symbol }}","678517581":"Units","680334348":"This block was required to correctly convert your old strategy.","680478881":"Total withdrawal limit","681926004":"Example of a blurry document","682056402":"Standard Deviation Down Multiplier {{ input_number }}","684282133":"Trading instruments","685391401":"If you're having trouble signing in, let us know via <0>chat","687212287":"Amount is a required field.","689137215":"Purchase price","691956534":"<0>You have added a {{currency}} account.<0> Make a deposit now to start trading.","693396140":"Deal cancellation (expired)","696870196":"- Open time: the opening time stamp","697630556":"This market is presently closed.","698748892":"Let’s try that again","699159918":"1. Filing complaints","700259824":"Account currency","701034660":"We are still processing your withdrawal request.<0 />Please wait for the transaction to be completed before deactivating your account.","701462190":"Entry spot","701647434":"Search for string","705299518":"Next, upload the page of your passport that contains your photo.","706727320":"Binary options trading frequency","706755289":"This block performs trigonometric functions.","707662672":"{{unblock_date}} at {{unblock_time}}","708055868":"Driving licence number","710123510":"repeat {{ while_or_until }} {{ boolean }}","711999057":"Successful","712101776":"Take a photo of your passport photo page","712635681":"This block gives you the selected candle value from a list of candles. You can choose from open price, close price, high price, low price, and open time.","713054648":"Sending","714080194":"Submit proof","714746816":"MetaTrader 5 Windows app","715841616":"Please enter a valid phone number (e.g. +15417541234).","716428965":"(Closed)","718504300":"Postal/ZIP code","720293140":"Log out","720519019":"Reset my password","721011817":"- Raise the first number to the power of the second number","723045653":"You'll log in to your Deriv account with this email address.","723961296":"Manage password","724203548":"You can send your complaint to the <0>European Commission's Online Dispute Resolution (ODR) platform. This is not applicable to UK clients.","728042840":"To continue trading with us, please confirm where you live.","728824018":"Spanish Index","729651741":"Choose a photo","730473724":"This block performs the \"AND\" or the \"OR\" logic operation with the given values.","731382582":"BNB/USD","734390964":"Insufficient balance","734881840":"false","742676532":"Trade CFDs on forex, derived indices, cryptocurrencies, and commodities with high leverage.","744110277":"Bollinger Bands Array (BBA)","745656178":"Use this block to sell your contract at the market price.","745674059":"Returns the specific character from a given string of text according to the selected option. ","746112978":"Your computer may take a few seconds to update","751692023":"We <0>do not guarantee a refund if you make a wrong transfer.","752024971":"Reached maximum number of digits","752633544":"You will need to submit proof of identity and address once you reach certain thresholds","752992217":"This block gives you the selected constant values.","753088835":"Default","753184969":"In providing our services to you, we are required to obtain information from you in order to assess whether a given product or service is appropriate for you (that is, whether you possess the experience and knowledge to understand the risks involved).<0/><1/>","753727511":"Type","755867072":"{{platform_name_mt5}} is not available in {{country}}","756152377":"SMA places equal weight to the entire distribution of values.","758003269":"make list from text","759783233":"For more information and assistance to counselling and support services, please visit <0>begambleaware.org.","760528514":"Please note that changing the value of \"i\" won't change the value of the original item in the list","761576760":"Fund your account to start trading.","762185380":"<0>Multiply returns by <0>risking only what you put in.","762871622":"{{remaining_time}}s","763019867":"Your Gaming account is scheduled to be closed","764366329":"Trading limits","764540515":"Stopping the bot is risky","766317539":"Language","770171141":"Go to {{hostname}}","772632060":"Do not send any other currency to the following address. Otherwise, you'll lose funds.","773091074":"Stake:","773309981":"Oil/USD","773336410":"Tether is a blockchain-enabled platform designed to facilitate the use of fiat currencies in a digital manner.","775679302":"{{pending_withdrawals}} pending withdrawal(s)","776085955":"Strategies","781924436":"Call Spread/Put Spread","783974693":"Avoid recent years","784311461":"Exponential Moving Average (EMA)","784583814":"Linked to your computer","785969488":"Jump 75 Index","787116142":"The multiplier amount used to increase your stake if you’re losing a trade. Value must be higher than 2.","787727156":"Barrier","788005234":"NA","793526589":"To file a complaint about our service, send an email to <0>complaints@deriv.com and state your complaint in detail. Please submit any relevant screenshots of your trading or system for our better understanding.","793531921":"Our company is one of the oldest and most reputable online trading companies in the world. We are committed to treat our clients fairly and provide them with excellent service.<0/><1/>Please provide us with feedback on how we can improve our services to you. Rest assured that you will be heard, valued, and treated fairly at all times.","794682658":"Copy the link to your phone","795859446":"Password saved","797007873":"Follow these steps to recover camera access:","797500286":"negative","800228448":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}} and {{legal_entity_name_fx}}.","800521289":"Your personal details are incomplete","801430087":"A link can contain the word \"Deriv\" and still be fake.","802436811":"View transaction details","802438383":"New proof of address is needed","802556390":"seconds","802989607":"Drag your XML file here","803500173":"Initial stake","807499069":"Financial commission complaints procedure","808323704":"You can also use \"Compare\" and \"Logic operation\" blocks to make test variables.","811876954":"You may transfer between your Deriv fiat, cryptocurrency, {{platform_name_mt5}}, and {{platform_name_dxtrade}} accounts.","816580787":"Welcome back! Your messages have been restored.","816738009":"<0/><1/>You may also raise your unresolved dispute to the <2>Office of the Arbiter for Financial Services.","818447476":"Switch account?","820877027":"Please verify your proof of identity","823186089":"A block that can contain text.","824797920":"Is list empty?","826511719":"USD/SEK","827688195":"Disable Block","828219890":"then","828602451":"Returns the list of tick values in string format","830164967":"Last name","830993327":"No current transactions available","832217983":"40 transactions or more in the past 12 months","832398317":"Sell Error","832588873":"Order execution","832721563":"If you select \"Low Tick\", you win the payout if the selected tick is the lowest among the next five ticks.","834966953":"1551661986 seconds since Jan 01 1970 (UTC) translates to 03/04/2019 @ 1:13am (UTC).","835058671":"Total buy price","835350845":"Add another word or two. Uncommon words are better.","836097457":"I am interested in trading but have very little experience.","837066896":"Your document is being reviewed, please check back in 1-3 days.","839618971":"ADDRESS","839805709":"To smoothly verify you, we need a better photo","841434703":"Disable stack","841543189":"View transaction on Blockchain","843333337":"You can only make deposits. Please complete the <0>financial assessment to unlock withdrawals.","845213721":"Logout","845304111":"Slow EMA Period {{ input_number }}","847888634":"Please withdraw all your funds.","850582774":"Please update your personal info","851054273":"If you select \"Higher\", you win the payout if the exit spot is strictly higher than the barrier.","851264055":"Creates a list with a given item repeated for a specific number of times.","851508288":"This block constrains a given number within a set range.","852583045":"Tick List String","854399751":"Digit code must only contain numbers.","854630522":"Choose a cryptocurrency account","857363137":"Volatility 300 (1s) Index","857445204":"Deriv currently supports withdrawals of Tether eUSDT to Ethereum wallet. To ensure a successful transaction, enter a wallet address compatible with the tokens you wish to withdraw. <0>Learn more","857986403":"do something","860319618":"Tourism","862283602":"Phone number*","863328851":"Proof of identity","864610268":"First, enter your {{label}} and the expiry date.","864957760":"Math Number Positive","865424952":"High-to-Low","865642450":"2. Logged in from a different browser","866496238":"Make sure your license details are clear to read, with no blur or glare","868826608":"Excluded from {{brand_website_name}} until","869823595":"Function","869993298":"Minimum withdrawal","872549975":"You have {{number}} transfers remaining for today.","872661442":"Are you sure you want to update email <0>{{prev_email}} to <1>{{changed_email}}?","872817404":"Entry Spot Time","873166343":"1. 'Log' displays a regular message.","874461655":"Scan the QR code with your phone","874484887":"Take profit must be a positive number.","875532284":"Restart process on a different device","876086855":"Complete the financial assessment form","876292912":"Exit","879014472":"Reached maximum number of decimals","888274063":"Town/City","890299833":"Go to Reports","891097078":"USD Index","891337947":"Select country","892341141":"Your trading statistics since: {{date_time}}","893117915":"Variable","893963781":"Close-to-Low","893975500":"You do not have any recent bots","894191608":"<0>c.We must award the settlement within 28 days of when the decision is reached.","898457777":"You have added a Deriv Financial account.","902045490":"3 minutes","903429103":"In candles list read {{ candle_property }} # from end {{ input_number }}","904696726":"API token","905134118":"Payout:","905227556":"Strong passwords contain at least 8 characters, combine uppercase and lowercase letters and numbers.","905564365":"MT5 CFDs","906049814":"We’ll review your documents and notify you of its status within 5 minutes.","907680782":"Proof of ownership verification failed","910888293":"Too many attempts","915735109":"Back to {{platform_name}}","918447723":"Real","920125517":"Add demo account","921901739":"- your account details of the bank linked to your account","924046954":"Upload a document showing your name and bank account number or account details.","926813068":"Fixed/Variable","929608744":"You are unable to make withdrawals","930346117":"Capitalization doesn't help very much","930546422":"Touch","933126306":"Enter some text here","933193610":"Only letters, periods, hyphens, apostrophes, and spaces, please.","934835052":"Potential profit","934932936":"PERSONAL","936766426":"You are limited to one fiat account. You won’t be able to change your account currency if you have already made your first deposit.","937237342":"Strategy name cannot be empty","937682366":"Upload both of these documents to prove your identity.","937831119":"Last name*","937992258":"Table","938500877":"{{ text }}. <0>You can view the summary of this transaction in your email.","938988777":"High barrier","940950724":"This trade type is currently not supported on {{website_name}}. Please go to <0>Binary.com for details.","943535887":"Please close your positions in the following Deriv MT5 account(s):","944499219":"Max. open positions","945532698":"Contract sold","946204249":"Read","946841802":"A white (or green) candle indicates that the open price is lower than the close price. This represents an upward movement of the market price.","946944859":"Hit the button below and we'll send you an email with a link. Click that link to verify your withdrawal request.","947046137":"Your withdrawal will be processed within 24 hours","947363256":"Create list","947549448":"Total assets in your Deriv, {{platform_name_mt5}} and {{platform_name_dxtrade}} real accounts.","947758334":"City is required","947914894":"Top up  <0>","948156236":"Create {{type}} password","948545552":"150+","949859957":"Submit","952927527":"Regulated by the Malta Financial Services Authority (MFSA) (licence no. IS/70156)","955352264":"Trade on {{platform_name_dxtrade}}","956448295":"Cut-off image detected","957182756":"Trigonometric functions","958430760":"In/Out","959031082":"set {{ variable }} to MACD Array {{ dropdown }} {{ dummy }}","960201789":"3. Sell conditions","961692401":"Bot","966457287":"set {{ variable }} to Exponential Moving Average {{ dummy }}","968576099":"Up/Down","969987233":"Win up to maximum payout if exit spot is between lower and upper barrier, in proportion to the difference between exit spot and lower barrier.","970915884":"AN","974888153":"High-Low","975668699":"I confirm and accept {{company}} 's <0>Terms and Conditions","975950139":"Country of Residence","977929335":"Go to my account settings","981138557":"Redirect","981965437":"Scan the QR code below with your 2FA app. We recommend <0>Authy or <1>Google Authenticator.","982146443":"WhatsApp","982402892":"First line of address","982829181":"Barriers","987224688":"How many trades have you placed with other financial instruments in the past 12 months?","987900242":"Total assets in your Deriv, {{platform_name_mt5}} and {{platform_name_dxtrade}} demo accounts.","988361781":"You have no trading activity yet.","988934465":"When prompted, you must enable camera access to continue","992294492":"Your postal code is invalid","993827052":"Choosing this jurisdiction will give you a Financial STP account. Your trades will go directly to the market and have tighter spreads.","995563717":"not {{ boolean }}","999008199":"text","1001160515":"Sell","1001749987":"You’ll get a warning, named margin call, if your account balance drops down close to the stop out level.","1003876411":"Should start with letter or number and may contain a hyphen, period and slash.","1004127734":"Send email","1006458411":"Errors","1006664890":"Silent","1009032439":"All time","1010198306":"This block creates a list with strings and numbers.","1010337648":"We were unable to verify your proof of ownership.","1012102263":"You will not be able to log in to your account until this date (up to 6 weeks from today).","1015201500":"Define your trade options such as duration and stake.","1016220824":"You need to switch to a real money account to use this feature.<0/>You can do this by selecting a real account from the <1>Account Switcher.","1018803177":"standard deviation","1019265663":"You have no transactions yet.","1019508841":"Barrier 1","1022934784":"1 minute","1023237947":"1. In the example below, the instructions are repeated as long as the value of x is less than or equal to 10. Once the value of x exceeds 10, the loop is terminated.","1023643811":"This block purchases contract of a specified type.","1023795011":"Even/Odd","1024205076":"Logic operation","1024760087":"You are verified to add this account","1025887996":"Negative Balance Protection","1026046972":"Please enter a payout amount that's lower than {{max_payout}}.","1027098103":"Leverage gives you the ability to trade a larger position using your existing capital. Leverage varies across different symbols.","1028211549":"All fields are required","1028758659":"Citizenship*","1029164365":"We presume that you possess the experience, knowledge, and expertise to make your own investment decisions and properly assess the risk involved.","1030021206":"change {{ variable }} by {{ number }}","1031602624":"We've sent a secure link to %{number}","1031731167":"Pound Sterling","1032173180":"Deriv","1032907147":"AUD/NZD","1035506236":"Choose a new password","1036116144":"Speculate on the price movement of an asset without actually owning it.","1036353276":"Please create another Deriv or {{platform_name_mt5}} account.","1036867749":"The desired duration, stake, prediction, and/or barrier(s) for the contract is defined here.","1038575777":"Change password","1039755542":"Use a few words, avoid common phrases","1040677897":"To continue trading, you must also submit a proof of address.","1041001318":"This block performs the following operations on a given list: sum, minimum, maximum, average, median, mode, antimode, standard deviation, random item.","1041620447":"If you are unable to scan the QR code, you can manually enter this code instead:","1042659819":"You have an account that needs action","1043790274":"There was an error","1044230481":"This is an Ethereum ({{token}}) only address, please do not use {{prohibited_token}}.","1044540155":"100+","1044599642":"<0> has been credited into your {{platform}} {{title}} account.","1045704971":"Jump 150 Index","1045782294":"Click the <0>Change password button to change your Deriv password.","1047389068":"Food Services","1048947317":"Sorry, this app is unavailable in {{clients_country}}.","1049384824":"Rise","1050128247":"I confirm that I have verified the payment agent’s transfer information.","1050844889":"Reports","1052137359":"Family name*","1052779010":"You are on your demo account","1053153674":"Jump 50 Index","1053159279":"Level of education","1055313820":"No document detected","1056381071":"Return to trade","1056821534":"Are you sure?","1057216772":"text {{ input_text }} is empty","1057749183":"Two-factor authentication (2FA)","1057765448":"Stop out level","1057904606":"The concept of the D’Alembert Strategy is said to be similar to the Martingale Strategy where you will increase your contract size after a loss. With the D’Alembert Strategy, you will also decrease your contract size after a successful trade.","1060231263":"When are you required to pay an initial margin?","1061308507":"Purchase {{ contract_type }}","1061561084":"Switch to your real account to create a Deriv MT5 {{account_title}} {{type_title}} account.","1062536855":"Equals","1065353420":"110+","1065498209":"Iterate (1)","1069347258":"The verification link you used is invalid or expired. Please request for a new one.","1069576070":"Purchase lock","1070624871":"Check proof of address document verification status","1076006913":"Profit/loss on the last {{item_count}} contracts","1077515534":"Date to","1078221772":"Leverage prevents you from opening large positions.","1080068516":"Action","1080990424":"Confirm","1082158368":"*Maximum account cash balance","1082406746":"Please enter a stake amount that's at least {{min_stake}}.","1083781009":"Tax identification number*","1083826534":"Enable Block","1086118495":"Traders Hub","1088138125":"Tick {{current_tick}} - ","1089085289":"Mobile number","1096078516":"We’ll review your documents and notify you of its status within 3 days.","1096175323":"You’ll need a Deriv account","1098147569":"Purchase commodities or shares of a company.","1098622295":"\"i\" starts with the value of 1, and it will be increased by 2 at every iteration. The loop will repeat until \"i\" reaches the value of 12, and then the loop is terminated.","1100870148":"To learn more about account limits and how they apply, please go to the <0>Help Centre.","1101560682":"stack","1101712085":"Buy Price","1102420931":"Next, upload the front and back of your driving licence.","1102995654":"Calculates Exponential Moving Average (EMA) list from a list of values with a period","1103309514":"Target","1103452171":"Cookies help us to give you a better experience and personalised content on our site.","1104912023":"Pending verification","1107474660":"Submit proof of address","1107555942":"To","1109217274":"Success!","1110102997":"Statement","1112582372":"Interval duration","1113119682":"This block gives you the selected candle value from a list of candles.","1113292761":"Less than 8MB","1117863275":"Security and safety","1118294625":"You have chosen to exclude yourself from trading on our website until {{exclusion_end}}. If you are unable to place a trade or deposit after your self-exclusion period, please contact us via live chat.","1119887091":"Verification","1119986999":"Your proof of address was submitted successfully","1120985361":"Terms & conditions updated","1122910860":"Please complete your <0>financial assessment.","1123927492":"You have not selected your account currency","1125090693":"Must be a number","1126075317":"Add your Deriv MT5 <0>{{account_type_name}} STP account under Deriv (FX) Ltd regulated by Labuan Financial Services Authority (Licence no. MB/18/0024).","1126934455":"Length of token name must be between 2 and 32 characters.","1127149819":"Make sure§","1128139358":"How many CFD trades have you placed in the past 12 months?","1128404172":"Undo","1129124569":"If you select \"Under\", you will win the payout if the last digit of the last tick is less than your prediction.","1129842439":"Please enter a take profit amount.","1130744117":"We shall try to resolve your complaint within 10 business days. We will inform you of the outcome together with an explanation of our position and propose any remedial measures we intend to take.","1130791706":"N","1133651559":"Live chat","1134879544":"Example of a document with glare","1139483178":"Enable stack","1143730031":"Direction is {{ direction_type }}","1144028300":"Relative Strength Index Array (RSIA)","1145927365":"Run the blocks inside after a given number of seconds","1146064568":"Go to Deposit page","1147269948":"Barrier cannot be zero.","1147625645":"Please proceed to withdraw all your funds from your account before <0>30 November 2021.","1151964318":"both sides","1152294962":"Upload the front of your driving licence.","1154021400":"list","1154239195":"Title and name","1155011317":"This block converts the date and time to the number of seconds since the Unix Epoch (1970-01-01 00:00:00).","1158678321":"<0>b.The Head of the Dispute Resolution Committee (DRC) will contact both you and us within 5 business days to obtain all necessary information and see if there is a chance to settle the complaint during the investigation phase.","1160761178":"No payout if exit spot is below or equal to the lower barrier.","1161924555":"Please select an option","1163836811":"Real Estate","1164773983":"Take profit and/or stop loss are not available while deal cancellation is active.","1166128807":"Choose one of your accounts or add a new cryptocurrency account","1166377304":"Increment value","1168029733":"Win payout if exit spot is also equal to entry spot.","1169201692":"Create {{platform}} password","1170228717":"Stay on {{platform_name_trader}}","1174542625":"- Find the chat ID property in the response, and copy the value of the id property","1174748431":"Payment channel","1175183064":"Vanuatu","1176926166":"Experience with trading other financial instruments","1177396776":"If you select \"Asian Fall\", you will win the payout if the last tick is lower than the average of the ticks.","1177723589":"There are no transactions to display","1178582280":"The number of contracts you have lost since you last cleared your stats.","1178800778":"Take a photo of the back of your license","1178942276":"Please try again in a minute.","1179704370":"Please enter a take profit amount that's higher than the current potential profit.","1180619731":"Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts, up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts, and up to {{ allowed_dxtrade }} transfers between your Deriv and {{platform_name_dxtrade}} accounts.","1181396316":"This block gives you a random number from within a set range","1181770592":"Profit/loss from selling","1183007646":"- Contract type: the name of the contract type such as Rise, Fall, Touch, No Touch, etс.","1188316409":"To receive your funds, contact the payment agent with the details below","1188980408":"5 minutes","1189368976":"Please complete your personal details before you verify your identity.","1189886490":"Please create another Deriv, {{platform_name_mt5}}, or {{platform_name_dxtrade}} account.","1191429031":"Please click on the link in the email to change your <0>{{platform_name_dxtrade}} password.","1191644656":"Predict the market direction and select either “Up” or “Down” to open a position. We will charge a commission when you open a position.","1191778951":"Check your proof of identity and address","1192708099":"Duration unit","1195393249":"Notify {{ notification_type }} with sound: {{ notification_sound }} {{ input_message }}","1196006480":"Profit threshold","1197326289":"You are no longer able to trade digital options on any of our platforms. Also, you can’t make deposits into your Options account.","1198368641":"Relative Strength Index (RSI)","1199281499":"Last Digits List","1201533528":"Contracts won","1201773643":"numeric","1203297580":"This block sends a message to a Telegram channel.","1204223111":"In this example, the open prices from a list of candles are assigned to a variable called \"candle_list\".","1206227936":"How to mask your card?","1206821331":"Armed Forces","1208729868":"Ticks","1208903663":"Invalid token","1211912982":"Bot is starting","1214893428":"Account creation is currently unavailable for mobile. Please log in with your computer to create a new account.","1216408337":"Self-Employed","1217159705":"Bank account number","1217481729":"Tether as an ERC20 token (eUSDT) is a version of Tether that is hosted on Ethereum.","1218546232":"What is Fiat onramp?","1219844088":"do %1","1221250438":"To enable withdrawals, please submit your <0>Proof of Identity (POI) and <1>Proof of Address (POA) and also complete the <2>financial assessment in your account settings.","1222096166":"Deposit via bank wire, credit card, and e-wallet","1222521778":"Making deposits and withdrawals is difficult.","1222544232":"We’ve sent you an email","1225150022":"Number of assets","1227074958":"random fraction","1227240509":"Trim spaces","1228534821":"Some currencies may not be supported by payment agents in your country.","1229883366":"Tax identification number","1230884443":"State/Province (optional)","1231282282":"Use only the following special characters: {{permitted_characters}}","1232291311":"Maximum withdrawal remaining","1232353969":"0-5 transactions in the past 12 months","1233300532":"Payout","1234292259":"Source of wealth","1234764730":"Upload a screenshot of your name and email address from the personal details section.","1235426525":"50%","1237330017":"Pensioner","1238311538":"Admin","1239760289":"Complete your trading assessment","1239940690":"Restarts the bot when an error is encountered.","1240027773":"Please Log in","1241238585":"You may transfer between your Deriv fiat, cryptocurrency, and {{platform_name_mt5}} accounts.","1243064300":"Local","1246207976":"Enter the authentication code generated by your 2FA app:","1246443703":"Financial Assessment","1246880072":"Select issuing country","1247280835":"Our cryptocurrency cashier is temporarily down due to system maintenance. You can make cryptocurrency deposits and withdrawals in a few minutes when the maintenance is complete.","1248018350":"Source of income","1248161058":"You can create your account on {{real_account_unblock_date}}. <0/>Please click ‘OK’ to continue.","1248940117":"<0>a.The decisions made by the DRC are binding on us. DRC decisions are binding on you only if you accept them.","1250495155":"Token copied!","1254565203":"set {{ variable }} to create list with","1255909792":"last","1255963623":"To date/time {{ input_timestamp }} {{ dummy }}","1258097139":"What could we do to improve?","1258198117":"positive","1259598687":"GBP/JPY","1260259925":"Phone is not in a proper format.","1263387702":"All {{count}} account types use market execution. This means you agree with the broker's price in advance and will place orders at the broker's price.","1264096613":"Search for a given string","1265704976":"","1270581106":"If you select \"No Touch\", you win the payout if the market never touches the barrier at any time during the contract period.","1272012156":"GBP/CHF","1272337240":"Days","1272681097":"Hours","1274819385":"3. Complaints and Disputes","1275474387":"Quick","1281045211":"Sorts the items in a given list, by their numeric or alphabetical value, in either ascending or descending order.","1281290230":"Select","1282951921":"Only Downs","1284522768":"If \"Loss\" is selected, it will return \"True\" if your last trade was unsuccessful. Otherwise, it will return an empty string.","1285686014":"Pending proof of identity review","1286094280":"Withdraw","1286507651":"Close identity verification screen","1288965214":"Passport","1289646209":"Margin call","1290525720":"Example: ","1291887623":"Digital options trading frequency","1292188546":"Reset Deriv MT5 investor password","1292891860":"Notify Telegram","1293660048":"Max. total loss per day","1294756261":"This block creates a function, which is a group of instructions that can be executed at any time. Place other blocks in here to perform any kind of action that you need in your strategy. When all the instructions in a function have been carried out, your bot will continue with the remaining blocks in your strategy. Click the “do something” field to give it a name of your choice. Click the plus icon to send a value (as a named variable) to your function.","1295284664":"Please accept our <0>updated Terms and Conditions to proceed.","1296380713":"Close my contract","1299479533":"8 hours","1300576911":"Please resubmit your proof of address or we may restrict your account.","1302691457":"Occupation","1303016265":"Yes","1303530014":"We’re processing your withdrawal.","1304083330":"copy","1304272843":"Please submit your proof of address.","1304620236":"Enable camera","1304788377":"<0/><1/>If your complaint relates to our data processing practices, you can submit a formal complaint to the <2>Information and Data Protection Commissioner (Malta) on their website or make a complaint to any supervisory authority within the European Union.","1305217290":"Upload the back of your identity card.","1308625834":"Sets the default time interval for blocks that read list of candles.","1309017029":"Enabling this allows you to save your blocks as one collection which can be easily integrated into other bots.","1309044871":"Returns the value of the latest tick in string format","1310483610":"Results for \"{{ search_term }}\"","1311680770":"payout","1311799109":"We do not support Binance Smart Chain tokens to deposit, please use only Ethereum ({{token}}).","1312767038":"Exit Trader's hub","1313167179":"Please log in","1313302450":"The bot will stop trading if your total loss exceeds this amount.","1316216284":"You can use this password for all your {{platform}} accounts.","1319217849":"Check your mobile","1320750775":"Front and back","1322804930":"Restart the process on the latest version of Google Chrome","1323327633":"Our complaints process comprises the following 4 steps:","1323476617":"Changes the capitalisation of a string of text to Upper case, Lower case, Title case.","1323996051":"Profile","1324110809":"Address information","1324922837":"2. The new variable will appear as a block under Set variable.","1327181172":"Financial Vanuatu","1327494533":"{{sell_value}} (Sell)","1329136554":"Jump 200 Index","1329325646":"The content of this block is called on every tick","1331199417":"Please enter the correct format. ","1331367811":"Client account number","1332168410":"Learn more","1332168769":"Disconnect","1333576137":"Please update your {{details}} to continue.","1333839457":"Submit identity card (front)","1334326985":"It may take a few minutes to arrive","1335967988":"Notice","1337846406":"This block gives you the selected candle value from a list of candles within the selected time interval.","1337864666":"Photo of your document","1338496204":"Ref. ID","1341840346":"View in Journal","1346204508":"Take profit","1346339408":"Managers","1347071802":"{{minutePast}}m ago","1348009461":"Please close your positions in the following Deriv X account(s):","1349133669":"Try changing your search criteria.","1349289354":"Great, that's everything we need","1349295677":"in text {{ input_text }} get substring from {{ position1 }} {{ index1 }} to {{ position2 }} {{ index2 }}","1351906264":"This feature is not available for payment agents.","1353197182":"Please select","1354288636":"Based on your answers, it looks like you have insufficient knowledge and experience in trading CFDs. CFD trading is risky and you could potentially lose all of your capital.<0/><0/>","1355250245":"{{ calculation }} of list {{ input_list }}","1356574493":"Returns a specific portion of a given string of text.","1356607862":"Deriv password","1357129681":"{{num_day}} days {{num_hour}} hours {{num_minute}} minutes","1357213116":"Identity card","1358543466":"Not available","1359424217":"You have sold this contract at <0 />","1360929368":"Add a Deriv account","1362578283":"High","1363060668":"Your trading statistics since:","1363675688":"Duration is a required field.","1364958515":"Stocks","1366244749":"Limits","1367023655":"To ensure your loss does not exceed your stake, your contract will be closed automatically when your loss equals to <0/>.","1367488817":"4. Restart trading conditions","1367990698":"Volatility 10 Index","1369709538":"Our terms of use","1371193412":"Cancel","1371555192":"Choose your preferred payment agent and enter your withdrawal amount. If your payment agent is not listed, <0>search for them using their account number.","1371641641":"Open the link on your mobile","1371911731":"Financial products in the EU are offered by {{legal_entity_name}}, licensed as a Category 3 Investment Services provider by the Malta Financial Services Authority (<0>Licence no. IS/70156).","1374627690":"Max. account balance","1376329801":"Last 60 days","1378419333":"Ether","1383017005":"You have switched accounts.","1384127719":"You should enter {{min}}-{{max}} numbers.","1384222389":"Please submit valid identity documents to unlock the cashier.","1385418910":"Please set a currency for your existing real account before creating another account.","1387503299":"Log in","1388770399":"Proof of identity required","1389197139":"Import error","1390792283":"Trade parameters","1391174838":"Potential payout:","1392966771":"Mrs","1392985917":"This is similar to a commonly used password","1393559748":"Invalid date/time: {{ datetime_string }}","1393901361":"There’s an app for that","1393903598":"if true {{ return_value }}","1396179592":"Commission","1396417530":"Bear Market Index","1397628594":"Insufficient funds","1399620764":"We're legally obliged to ask for your financial information.","1400637999":"(All fields are required)","1400732866":"View from camera","1400962248":"High-Close","1402208292":"Change text case","1403376207":"Update my details","1405584799":"with interval: {{ candle_interval_type }}","1408844944":"Click the plus icon to extend the functionality of this block.","1410320737":"Go to Deriv MT5 dashboard","1412535872":"You can check the result of the last trade with this block. It can only be placed within the \"Restart trading conditions\" root block.","1413047745":"Assigns a given value to a variable","1413359359":"Make a new transfer","1414205271":"prime","1415006332":"get sub-list from first","1415974522":"If you select \"Differs\", you will win the payout if the last digit of the last tick is not the same as your prediction.","1417558007":"Max. total loss over 7 days","1417914636":"Login ID","1418115525":"This block repeats instructions as long as a given condition is true.","1421749665":"Simple Moving Average (SMA)","1422060302":"This block replaces a specific item in a list with another given item. It can also insert the new item in the list at a specific position.","1422129582":"All details must be clear — nothing blurry","1423082412":"Last Digit","1424741507":"See more","1424779296":"If you've recently used bots but don't see them in this list, it may be because you:","1430396558":"5. Restart buy/sell on error","1430632931":"To get trading, please confirm who you are, and where you live.","1433367863":"Sorry, an error occured while processing your request.","1434382099":"Displays a dialog window with a message","1434976996":"Announcement","1435363248":"This block converts the number of seconds since the Unix Epoch to a date and time format such as 2019-08-01 00:00:00.","1435380105":"Minimum deposit","1437396005":"Add comment","1438247001":"A professional client receives a lower degree of client protection due to the following.","1438340491":"else","1439168633":"Stop loss:","1441208301":"Total<0 />profit/loss","1442747050":"Loss amount: <0>{{profit}}","1442840749":"Random integer","1443478428":"Selected proposal does not exist","1445592224":"You accidentally gave us another email address (Usually a work or a personal one instead of the one you meant).","1449462402":"In review","1452260922":"Too many failed attempts","1452941569":"This block delays execution for a given number of seconds. You can place any blocks within this block. The execution of other blocks in your strategy will be paused until the instructions in this block are carried out.","1453317405":"This block gives you the balance of your account either as a number or a string of text.","1453362009":"Deriv Accounts","1454648764":"deal reference id","1454865058":"Do not enter an address linked to an ICO purchase or crowdsale. If you do, the ICO tokens will not be credited into your account.","1455741083":"Upload the back of your driving licence.","1457341530":"Your proof of identity verification has failed","1457603571":"No notifications","1461323093":"Display messages in the developer’s console.","1464190305":"This block will transfer the control back to the Purchase conditions block, enabling you to purchase another contract without manually stopping and restarting your bot.","1464253511":"You already have an account for each of the cryptocurrencies available on {{deriv}}.","1465084972":"How much experience do you have with other financial instruments?","1465919899":"Pick an end date","1466430429":"Should be between {{min_value}} and {{max_value}}","1466900145":"Doe","1467017903":"This market is not yet available on {{platform_name_trader}}, but it is on {{platform_name_smarttrader}}.","1467421920":"with interval: %1","1467661678":"Cryptocurrency trading","1468308734":"This block repeats instructions as long as a given condition is true","1468419186":"Deriv currently supports withdrawals of Tether USDT to Omni wallet. To ensure a successful transaction, enter a wallet address compatible with the tokens you wish to withdraw. <0>Learn more","1468937050":"Trade on {{platform_name_trader}}","1469150826":"Take Profit","1469764234":"Cashier Error","1469814942":"- Division","1470319695":"Returns either True or False","1471070549":"Can contract be sold?","1471741480":"Severe error","1475513172":"Size","1476301886":"Similar to SMA, this block gives you the entire SMA line containing a list of all values for a given period.","1478030986":"Create or delete API tokens for trading and withdrawals","1481977420":"Please help us verify your withdrawal request.","1484336612":"This block is used to either terminate or continue a loop, and can be placed anywhere within a loop block.","1487086154":"Your documents were submitted successfully","1488548367":"Upload again","1490583127":"DBot isn't quite ready for real accounts","1491392301":"<0>Sold for: {{sold_for}}","1492686447":"Your MT5 Financial STP account will be opened through Deriv (FX) Ltd. All trading in this account is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA). None of your other accounts, including your Deriv account, is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA).","1493673429":"Change email","1493866481":"Run Deriv X on your browser","1496810530":"GBP/AUD","1497773819":"Deriv MT5 accounts","1499074768":"Add a real Deriv Multipliers account","1499080621":"Tried to perform an invalid operation.","1501691227":"Add Your Deriv MT5 <0>{{account_type_name}} account under Deriv (V) Ltd, regulated by the Vanuatu Financial Services Commission.","1502039206":"Over {{barrier}}","1502325741":"Your password cannot be the same as your email address.","1503618738":"- Deal reference ID: the reference ID of the contract","1505420815":"No payment agents found for your search","1505898522":"Download stack","1509570124":"{{buy_value}} (Buy)","1509678193":"Education","1510075920":"Gold/USD","1510357015":"Tax residence is required.","1510735345":"This block gives you a list of the last digits of the last 1000 tick values.","1512469749":"In the above example it is assumed that variable candle_open_price is processed somewhere within other blocks.","1516537408":"You can no longer trade on Deriv or deposit funds into your account.","1516559721":"Please select one file only","1516676261":"Deposit","1517503814":"Drop file or click here to upload","1519124277":"Derived SVG","1519336051":"Try a different phone number","1520332426":"Net annual income","1524636363":"Authentication failed","1527251898":"Unsuccessful","1527906715":"This block adds the given number to the selected variable.","1529440614":"Use the <0>Deriv password to log in to {{brand_website_name}}, {{platform_name_go}}, {{platform_name_trader}}, {{platform_name_smarttrader}}, and {{platform_name_dbot}}.","1531017969":"Creates a single text string from combining the text value of each attached item, without spaces in between. The number of items can be added accordingly.","1533177906":"Fall","1534569275":"As part of the changes in our markets, we will be closing our UK clients’ accounts.","1534796105":"Gets variable value","1537711064":"You need to make a quick identity verification before you can access the Cashier. Please go to your account settings to submit your proof of identity.","1539108340":"EUR Index","1540585098":"Decline","1541969455":"Both","1544642951":"If you select \"Only Ups\", you win the payout if consecutive ticks rise successively after the entry spot. No payout if any tick falls or is equal to any of the previous ticks.","1547148381":"That file is too big (only up to 8MB allowed). Please upload another file.","1548765374":"Verification of document number failed","1549098835":"Total withdrawn","1551172020":"AUD Basket","1552162519":"View onboarding","1552918367":"Send only {{currency}} ({{currency_symbol}}) to this address.","1557426040":"Demo Derived SVG","1557682012":"Account Settings","1558972889":"set {{ variable }} to Simple Moving Average {{ dummy }}","1560302445":"Copied","1562374116":"Students","1564392937":"When you set your limits or self-exclusion, they will be aggregated across all your account types in {{platform_name_trader}} and {{platform_name_dbot}}. For example, the losses made on both platforms will add up and be counted towards the loss limit you set.","1566037033":"Bought: {{longcode}} (ID: {{transaction_id}})","1567076540":"Only use an address for which you have proof of residence - ","1567586204":"Self-exclusion","1569624004":"Dismiss alert","1570484627":"Ticks list","1571575776":"Accepted formats: pdf, jpeg, jpg, and png. Max file size: 8MB","1572504270":"Rounding operation","1572982976":"Server","1575556189":"Tether on the Ethereum blockchain, as an ERC20 token, is a newer transport layer, which now makes Tether available in Ethereum smart contracts. As a standard ERC20 token, it can also be sent to any Ethereum address.","1577480486":"Your mobile link will expire in one hour","1577527507":"Account opening reason is required.","1577612026":"Select a folder","1579839386":"Appstore","1580498808":"Multiple faces found","1584109614":"Ticks String List","1584578483":"50+ assets: forex, stocks, stock indices, synthetics indices, and cryptocurrencies.","1584936297":"XML file contains unsupported elements. Please check or modify file.","1587046102":"Documents from that country are not currently supported — try another document type","1589640950":"Resale of this contract is not offered.","1589702653":"Proof of address","1593010588":"Login now","1594147169":"Please come back in","1594322503":"Sell is available","1596378630":"You have added a real Gaming account.<0/>Make a deposit now to start trading.","1597672660":"Deriv MT5 Password","1598009247":"<0>a.You may file a complaint with the Financial Commission up to 45 days after the incident.","1598386296":"Town/City is required.","1598443642":"Transaction hash","1602894348":"Create a password","1604171868":"Please withdraw all your funds as soon as possible.","1604916224":"Absolute","1605222432":"I have no knowledge and experience in trading at all.","1605292429":"Max. total loss","1612105450":"Get substring","1613273139":"Resubmit proof of identity and address","1613633732":"Interval should be between 10-60 minutes","1615897837":"Signal EMA Period {{ input_number }}","1618809782":"Maximum withdrawal","1619070150":"You are being redirected to an external website.","1620278321":"Names and surnames by themselves are easy to guess","1620346110":"Set currency","1621024661":"Tether as a TRC20 token (tUSDT) is a version of Tether that is hosted on Tron.","1622662457":"Date from","1623706874":"Use this block when you want to use multipliers as your trade type.","1630372516":"Try our Fiat onramp","1630417358":"Please go to your account settings and complete your personal details to enable withdrawals.","1631281562":"GBP Basket","1634594289":"Select language","1634903642":"Only your face can be in the selfie","1634969163":"Change currency","1635266650":"It seems that your name in the document is not the same as your Deriv profile. Please update your name in the <0>Personal details page to solve this issue.","1636605481":"Platform settings","1636782601":"Multipliers","1638321777":"Your demo account balance is low. Reset your balance to continue trading from your demo account.","1639262461":"Pending withdrawal request:","1639304182":"Please click on the link in the email to reset your password.","1641395634":"Last digits list","1641635657":"New proof of identity document needed","1641980662":"Salutation is required.","1644908559":"Digit code is required.","1647186767":"The bot encountered an error while running.","1651513020":"Display remaining time for each interval","1651951220":"Repeats like \"abcabcabc\" are only slightly harder to guess than \"abc\"","1652366857":"get and remove","1652968048":"Define your trade options such as multiplier and stake.","1652976865":"In this example, this block is used with another block to get the open prices from a list of candles. The open prices are then assigned to the variable called \"cl\".","1653136377":"copied!","1653180917":"We cannot verify you without using your camera","1654365787":"Unknown","1654496508":"Our system will finish any DBot trades that are running, and DBot will not place any new trades.","1654721858":"Upload anyway","1655627840":"UPPER CASE","1656155124":"Resend in <0 /> seconds","1658954996":"Plant and Machine Operators and Assemblers","1659074761":"Reset Put","1665272539":"Remember: You cannot log in to your account until the selected date.","1665738338":"Balance","1665756261":"Go to live chat","1667395210":"Your proof of identity was submitted successfully","1668138872":"Modify account settings","1670016002":"Multiplier: {{ multiplier }}","1670426231":"End Time","1671232191":"You have set the following limits:","1675030608":"To create this account first we need you to resubmit your proof of address.","1677027187":"Forex","1677990284":"My apps","1680666439":"Upload your bank statement showing your name, account number, and transaction history.","1682409128":"Untitled Strategy","1682636566":"Resend email in","1683963454":"Your contract will be closed automatically at the next available asset price on {{date}} at {{timestamp}}.","1684148009":"Total assets in your Deriv and {{platform_name_mt5}} real accounts.","1684419981":"What's this?","1686800117":"{{error_msg}}","1689103988":"Second Since Epoch","1689258195":"We were unable to verify your address with the details you provided. Please check and resubmit or choose a different document type.","1689738742":"Gold Index","1691335819":"To continue trading with us, please confirm who you are.","1691765860":"- Negation","1693614409":"Start time","1694331708":"You can switch between CFDs, digital options, and multipliers at any time.","1694517345":"Enter a new email address","1695807119":"Could not load Google Drive blocks","1700233813":"Transfer from {{selected_value}} is not allowed, Please choose another account from dropdown","1704656659":"How much experience do you have in CFD trading?","1708413635":"For your {{currency_name}} ({{currency}}) account","1709859601":"Exit Spot Time","1710662619":"If you have the app, launch it to start trading.","1711013665":"Anticipated account turnover","1711676335":"square root","1711929663":"Your funds have been transferred","1712357617":"Invalid email address.","1714255392":"To enable withdrawals, please complete your financial assessment.","1715011380":"Jump 25 Index","1715630945":"Returns the total profit in string format","1719248689":"EUR/GBP/USD","1720451994":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv fiat and Deriv cryptocurrency accounts.","1720968545":"Upload passport photo page from your computer","1722401148":"The amount that you may add to your stake after each successful trade.","1723398114":"A recent utility bill (e.g. electricity, water, gas, phone or internet)","1723589564":"Represents the maximum number of outstanding contracts in your portfolio. Each line in your portfolio counts for one open position. Once the maximum is reached, you will not be able to open new positions without closing an existing position first.","1724696797":"You are limited to one fiat account only.","1725958461":"Account number","1726472773":"Function with no return value","1726565314":"Close my account","1727681395":"Total assets in your Deriv and {{platform_name_mt5}} demo accounts.","1728121741":"Transactions.csv","1728183781":"About Tether","1729145421":"Risk warning","1731747596":"The block(s) highlighted in red are missing input values. Please update them and click \"Run bot\".","1732891201":"Sell price","1734185104":"Balance: %1","1734264460":"Disclaimer","1736292549":"Update postal code","1737352280":"Bot.init is not called","1738681493":"Remove your glasses, if necessary","1739384082":"Unemployed","1739668049":"Close your account","1740371444":"Underlying market is not selected","1740843997":"Buy cryptocurrencies in an instant. Enjoy easy, quick, and secure exchanges using your local payment methods.","1742256256":"Please upload one of the following documents:","1743448290":"Payment agents","1743902050":"Complete your financial assessment","1745523557":"- Square root","1746051371":"Download the app","1746273643":"Moving Average Convergence Divergence","1747501260":"Sell conditions","1747523625":"Go back","1747674345":"Please use `.` as a decimal separator for fractional numbers.","1747682136":"Contract was cancelled.","1748754976":"Run","1749675724":"Deriv charges no commission across all account types.","1750065391":"Login time:","1753226544":"remove","1753975551":"Upload passport photo page","1756678453":"break out","1758386013":"Do not get lured to fake \"Deriv\" pages!","1761038852":"Let’s continue with providing proofs of address and identity.","1761762171":"Restart last trade on error (bot ignores the unsuccessful trade): {{ checkbox }}","1762707297":"Phone number","1763123662":"Upload your NIMC slip.","1766212789":"Server maintenance starts at 06:00 GMT every Sunday and may last up to 2 hours. You may experience service disruption during this time.","1766993323":"Only letters, numbers, and underscores are allowed.","1767429330":"Add a Derived account","1768861315":"Minute","1768918213":"Only letters, space, hyphen, period, and apostrophe are allowed.","1769068935":"Choose any of these exchanges to buy cryptocurrencies:","1771037549":"Add a Deriv real account","1771592738":"Conditional block","1772532756":"Create and edit","1777847421":"This is a very common password","1778893716":"Click here","1779519903":"Should be a valid number.","1780770384":"This block gives you a random fraction between 0.0 to 1.0.","1782308283":"Quick strategy","1782395995":"Last Digit Prediction","1782690282":"Blocks menu","1782703044":"Sign up","1783740125":"Upload your selfie","1787135187":"Postal/ZIP code is required","1787492950":"Indicators on the chart tab are for indicative purposes only and may vary slightly from the ones on the {{platform_name_dbot}} workspace.","1788966083":"01-07-1999","1789497185":"Make sure your passport details are clear to read, with no blur or glare","1790770969":"FX-majors (standard/micro lots), FX-minors, Commodities, Cryptocurrencies","1791432284":"Search for country","1791971912":"Recent","1793913365":"To deposit money, please switch to your {{currency_symbol}} account.","1794815502":"Download your transaction history.","1796787905":"Please upload the following document(s).","1798943788":"You can only make deposits.","1801093206":"Get candle list","1801927731":"{{platform_name_dxtrade}} accounts","1803338729":"Choose what type of contract you want to trade. For example, for the Rise/Fall trade type you can choose one of three options: Rise, Fall, or Both. Selected option will determine available options for the Purchase block.","1804620701":"Expiration","1804789128":"{{display_value}} Ticks","1806355993":"No commission","1806503050":"Please note that some payment methods might not be available in your country.","1808058682":"Blocks are loaded successfully","1808393236":"Login","1808867555":"This block uses the variable “i” to control the iterations. With each iteration, the value of “i” is determined by the items in a given list.","1810217569":"Please refresh this page to continue.","1811109068":"Jurisdiction","1811972349":"Market","1811973475":"Returns a specific character from a given string","1812582011":"Connecting to server","1813700208":"Boom 300 Index","1813958354":"Remove comment","1815034361":"alphabetic","1815995250":"Buying contract","1816126006":"Trade on Deriv MT5 ({{platform_name_dmt5}}), the all-in-one FX and CFD trading platform.","1817154864":"This block gives you a random number from within a set range.","1820242322":"e.g. United States","1820332333":"Top up","1823177196":"Most popular","1824193700":"This block gives you the last digit of the latest tick value.","1827607208":"File not uploaded.","1828370654":"Onboarding","1830520348":"{{platform_name_dxtrade}} Password","1833481689":"Unlock","1833499833":"Proof of identity documents upload failed","1836767074":"Search payment agent name","1837762008":"Please submit your proof of identity and proof of address to verify your account in your account settings to access the cashier.","1838639373":"Resources","1839021527":"Please enter a valid account number. Example: CR123456789","1840865068":"set {{ variable }} to Simple Moving Average Array {{ dummy }}","1841788070":"Palladium/USD","1841996888":"Daily loss limit","1842266423":"back","1842862156":"Welcome to your Deriv X dashboard","1843658716":"If you select \"Only Downs\", you win the payout if consecutive ticks fall successively after the entry spot. No payout if any tick rises or is equal to any of the previous ticks.","1845892898":"(min: {{min_stake}} - max: {{max_payout}})","1846266243":"This feature is not available for demo accounts.","1846587187":"You have not selected your country of residence","1846664364":"{{platform_name_dxtrade}}","1849484058":"Any unsaved changes will be lost.","1850031313":"- Low: the lowest price","1850132581":"Country not found","1850659345":"- Payout: the payout of the contract","1850663784":"Submit proofs","1851052337":"Place of birth is required.","1851776924":"upper","1851951013":"Please switch to your demo account to run your DBot.","1854480511":"Cashier is locked","1854874899":"Back to list","1855566768":"List item position","1856485118":"Please <0>resubmit your proof of address to transfer funds between MT5 and Deriv accounts.","1858251701":"minute","1859308030":"Give feedback","1863053247":"Please upload your identity document.","1863731653":"To receive your funds, contact the payment agent","1866811212":"Deposit in your local currency via an authorised, independent payment agent in your country.","1866836018":"<0/><1/>If your complaint relates to our data processing practices, you can submit a formal complaint to your local supervisory authority.","1867217564":"Index must be a positive integer","1867783237":"High-to-Close","1869315006":"See how we protect your funds to unlock the cashier.","1869787212":"Even","1870933427":"Crypto","1871196637":"True if the result of the last trade matches the selection","1871664426":"Note","1871804604":"Regulated by the British Virgin Islands Financial Services Commission (License no. SIBA/L/18/1114)","1873838570":"Please verify your address","1874481756":"Use this block to purchase the specific contract you want. You may add multiple Purchase blocks together with conditional blocks to define your purchase conditions. This block can only be used within the Purchase conditions block.","1874756442":"BVI","1876325183":"Minutes","1877225775":"Your proof of address is verified","1877410120":"What you need to do now","1877832150":"# from end","1879042430":"Appropriateness Test, WARNING:","1879412976":"Profit amount: <0>{{profit}}","1880029566":"Australian Dollar","1880097605":"prompt for {{ string_or_number }} with message {{ input_text }}","1880875522":"Create \"get %1\"","1881018702":"hour","1881587673":"Total stake since you last cleared your stats.","1882825238":"Restart trading conditions","1883531976":"Clerks","1885708031":"#","1887852176":"Site is being updated","1889357660":"Enter a value in minutes, up to 60480 minutes (equivalent to 6 weeks).","1890171328":"By clicking Accept below and proceeding with the Account Opening you should note that you may be exposing yourself to risks (which may be significant, including the risk of loss of the entire sum invested) that you may not have the knowledge and experience to properly assess or mitigate.","1890332321":"Returns the number of characters of a given string of text, including numbers, spaces, punctuation marks, and symbols.","1894667135":"Please verify your proof of address","1898670234":"{{formatted_opening_time}} (GMT) on {{opening_day}},<0> {{opening_date}}.","1902547203":"MetaTrader 5 MacOS app","1903437648":"Blurry photo detected","1905032541":"We're now ready to verify your identity","1905589481":"If you want to change your account currency, please contact us via <0>live chat.","1906639368":"If this is the first time you try to create a password, or you have forgotten your password, please reset it.","1907884620":"Add a real Deriv Gaming account","1908239019":"Make sure all of the document is in the photo","1908686066":"Appropriateness Test Warning","1909647105":"TRX/USD","1909769048":"median","1913777654":"Switch account","1914014145":"Today","1914270645":"Default Candle Interval: {{ candle_interval_type }}","1914725623":"Upload the page that contains your photo.","1917523456":"This block sends a message to a Telegram channel. You will need to create your own Telegram bot to use this block.","1917804780":"You will lose access to your Options account when it gets closed, so be sure to withdraw all your funds. (If you have a CFDs account, you can also transfer the funds from your Options account to your CFDs account.)","1918633767":"Second line of address is not in a proper format.","1918796823":"Please enter a stop loss amount.","1918832194":"No experience","1919030163":"Tips to take a good selfie","1919594496":"{{website_name}} is not affiliated with any payment agents. Customers deal with payment agents at their sole risk. Customers are advised to check the credentials of payment agents and the accuracy of any information about payment agents (on {{website_name}} or elsewhere) before using their services.","1920217537":"Compare","1920468180":"How to use the SMA block","1921634159":"A few personal details","1921914669":"Deposit with Deriv P2P","1922529883":"Boom 1000 Index","1922955556":"Use a longer keyboard pattern with more turns","1923431535":"“Stop loss” is deactivated and will only be available when “Deal cancellation” expires.","1924365090":"Maybe later","1924765698":"Place of birth*","1925090823":"Sorry, trading is unavailable in {{clients_country}}.","1927244779":"Use only the following special characters: . , ' : ; ( ) @ # / -","1928930389":"GBP/NOK","1929309951":"Employment Status","1929694162":"Compare accounts","1930899934":"Tether","1931659123":"Run on every tick","1931884033":"It seems that your date of birth in the document is not the same as your Deriv profile. Please update your date of birth in the <0>Personal details page to solve this issue.","1939902659":"Signal","1940408545":"Delete this token","1941915555":"Try later","1942091675":"Cryptocurrency trading is not available for clients residing in the United Kingdom.","1943440862":"Calculates Bollinger Bands (BB) list from a list with a period","1944204227":"This block returns current account balance.","1947527527":"1. This link was sent by you","1948092185":"GBP/CAD","1949719666":"Here are the possible reasons:","1950413928":"Submit identity documents","1952580688":"Submit passport photo page","1955219734":"Town/City*","1957759876":"Upload identity document","1958807602":"4. 'Table' takes an array of data, such as a list of candles, and displays it in a table format.","1959678342":"Highs & Lows","1960240336":"first letter","1964097111":"USD","1964165648":"Connection lost","1965916759":"Asian options settle by comparing the last tick with the average spot over the period.","1966023998":"2FA enabled","1966281100":"Console {{ message_type }} value: {{ input_message }}","1968025770":"Bitcoin Cash","1968077724":"Agriculture","1968368585":"Employment status","1971898712":"Add or manage account","1973536221":"You have no open positions yet.","1973564194":"You are limited to one fiat account. You won’t be able to change your account currency if you have already made your first deposit or created a real {{dmt5_label}} or {{platform_name_dxtrade}} account.","1974273865":"This scope will allow third-party apps to view your account activity, settings, limits, balance sheets, trade purchase history, and more.","1981940238":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}} and {{legal_entity_name_v}}.","1982912252":"Relative Strength Index (RSI) from a list with a period","1983001416":"Define your trade options such as multiplier and stake. This block can only be used with the multipliers trade type. If you select another trade type, this block will be replaced with the Trade options block.","1983387308":"Preview","1983544897":"P.O. Box is not accepted in address","1983676099":"Please check your email for details.","1984700244":"Request an input","1984742793":"Uploading documents","1985366224":"Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts and up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts.","1985637974":"Any blocks placed within this block will be executed at every tick. If the default candle interval is set to 1 minute in the Trade Parameters root block, the instructions in this block will be executed once every minute. Place this block outside of any root block.","1986498784":"BTC/LTC","1987080350":"Demo","1987447369":"Your cashier is locked","1988153223":"Email address","1988302483":"Take profit:","1988601220":"Duration value","1990331072":"Proof of ownership","1990735316":"Rise Equals","1991448657":"Don't know your tax identification number? Click <0>here to learn more.","1991524207":"Jump 100 Index","1994023526":"The email address you entered had a mistake or typo (happens to the best of us).","1994558521":"The platforms aren’t user-friendly.","1994600896":"This block requires a list of candles as an input parameter.","1995023783":"First line of address*","1996767628":"Please confirm your tax information.","1997138507":"If the last tick is equal to the average of the ticks, you don't win the payout.","1998199587":"You can also exclude yourself entirely for a specified duration. If, at any time, you decide to trade again, you must then contact our Customer Support to remove this self-exclusion. There will be a 24-hour-cooling-off period before you can resume trading. ","2001222130":"Check your spam or junk folder. If it's not there, try resending the email.","2004395123":"New trading tools for MT5","2004792696":"If you are a UK resident, to self-exclude from all online gambling companies licensed in Great Britain, go to <0>www.gamstop.co.uk.","2007028410":"market, trade type, contract type","2007092908":"Trade with leverage and low spreads for better returns on successful trades.","2008809853":"Please proceed to withdraw your funds before 30 November 2021.","2009620100":"DBot will not proceed with any new trades. Any ongoing trades will be completed by our system. Any unsaved changes will be lost.<0>Note: Please check your statement to view completed transactions.","2009770416":"Address:","2010759971":"Uploads successful","2010866561":"Returns the total profit/loss","2011609940":"Please input number greater than 0","2011808755":"Purchase Time","2014536501":"Card number","2014590669":"Variable '{{variable_name}}' has no value. Please set a value for variable '{{variable_name}}' to notify.","2017672013":"Please select the country of document issuance.","2020545256":"Close your account?","2021037737":"Please update your details to continue.","2023659183":"Student","2023762268":"I prefer another trading website.","2025339348":"Move away from direct light — no glare","2027625329":"Simple Moving Average Array (SMAA)","2027696535":"Tax information","2028163119":"EOS/USD","2029237955":"Labuan","2030018735":"RSI is a technical analysis tool that helps you identify the market trend. It will give you a value from 0 to 100. An RSI value of 70 and above means that the asset is overbought and the current trend may reverse, while a value of 30 and below means that the asset is oversold.","2030045667":"Message","2033648953":"This block gives you the specified candle value for a selected time interval.","2034803607":"You must be 18 years old and above.","2035258293":"Start trading with us","2035925727":"sort {{ sort_type }} {{ sort_direction }} {{ input_list }}","2036578466":"Should be {{value}}","2037481040":"Choose a way to fund your account","2037665157":"Expand All Blocks","2037906477":"get sub-list from #","2042050260":"- Purchase price: the purchase price (stake) of the contract","2042115724":"Upload a screenshot of your account and personal details page with your name, account number, phone number, and email address.","2042778835":"This complaints policy, which may change from time to time, applies to your account registered with {{legal_entity_name}}.","2044086432":"The close is the latest tick at or before the end time. If you selected a specific end time, the end time is the selected time.","2046273837":"Last tick","2048110615":"Email address*","2048134463":"File size exceeded.","2050080992":"Tron","2050170533":"Tick list","2051558666":"View transaction history","2053617863":"Please proceed to withdraw all your funds from your account.","2054889300":"Create \"%1\"","2055317803":"Copy the link to your mobile browser","2057082550":"Accept our updated <0>terms and conditions","2057419639":"Exit Spot","2060873863":"Your order {{order_id}} is complete","2062912059":"function {{ function_name }} {{ function_params }}","2063655921":"By purchasing the \"Close-to-Low\" contract, you'll win the multiplier times the difference between the close and low over the duration of the contract.","2063812316":"Text Statement","2063890788":"Cancelled","2065278286":"Spread","2067903936":"Driving licence","2070002739":"Don’t accept","2070752475":"Regulatory Information","2071043849":"Browse","2074235904":"Last name is required.","2074497711":"The Telegram notification could not be sent","2080553498":"3. Get the chat ID using the Telegram REST API (read more: https://core.telegram.org/bots/api#getupdates)","2080829530":"Sold for: {{sold_for}}","2082533832":"Yes, delete","2084693624":"Converts a string representing a date/time string into seconds since Epoch. Example: 2019-01-01 21:03:45 GMT+0800 will be converted to 1546347825. Time and time zone offset are optional.","2084925123":"Use our fiat onramp services to buy and deposit cryptocurrency into your Deriv account.","2085387371":"Must be numbers, letters, and special characters . , ' -","2085602195":"- Entry value: the value of the first tick of the contract","2086742952":"You have added a real Options account.<0/>Make a deposit now to start trading.","2086792088":"Both barriers should be relative or absolute","2088735355":"Your session and login limits","2089087110":"Basket indices","2089299875":"Total assets in your Deriv real accounts.","2089581483":"Expires on","2091671594":"Status","2093167705":"You can only make deposits. Please contact us via live chat for more information.","2093675079":"- Close: the closing price","2096014107":"Apply","2096456845":"Date of birth*","2097170986":"About Tether (Omni)","2097381850":"Calculates Simple Moving Average line from a list with a period","2097932389":"Upload 2 separate screenshots from the personal details page and the account page via <0>https://app.astropay.com/profile","2100713124":"account","2101972779":"This is the same as the above example, using a tick list.","2102572780":"Length of digit code must be 6 characters.","2104115663":"Last login","2104397115":"Please go to your account settings and complete your personal details to enable deposits and withdrawals.","2107381257":"Scheduled cashier system maintenance","2109312805":"The spread is the difference between the buy price and sell price. A variable spread means that the spread is constantly changing, depending on market conditions. A fixed spread remains constant but is subject to alteration, at the Broker's absolute discretion.","2110365168":"Maximum number of trades reached","2111015970":"This block helps you check if your contract can be sold. If your contract can be sold, it returns “True”. Otherwise, it returns an empty string.","2111528352":"Creating a variable","2112119013":"Take a selfie showing your face","2112175277":"with delimiter","2113321581":"Add a Deriv Gaming account","2115007481":"Total assets in your Deriv demo accounts.","2115223095":"Loss","2117073379":"Our cryptocurrency cashier is temporarily down due to system maintenance. You can access the Cashier in a few minutes when the maintenance is complete.","2117165122":"1. Create a Telegram bot and get your Telegram API token. Read more on how to create bots in Telegram here: https://core.telegram.org/bots#6-botfather","2117489390":"Auto update in {{ remaining }} seconds","2118315870":"Where do you live?","2119449126":"Example output of the below example will be:","2120617758":"Set up your trade","2121227568":"NEO/USD","2127564856":"Withdrawals are locked","2131963005":"Please withdraw your funds from the following Deriv MT5 account(s):","2133451414":"Duration","2133470627":"This block returns the potential payout for the selected trade type. This block can be used only in the \"Purchase conditions\" root block.","2135563258":"Forex trading frequency","2136246996":"Selfie uploaded","2137901996":"This will clear all data in the summary, transactions, and journal panels. All counters will be reset to zero.","2137993569":"This block compares two values and is used to build a conditional structure.","2138861911":"Scans and photocopies are not accepted","2139171480":"Reset Up/Reset Down","2139362660":"left side","2141055709":"New {{type}} password","2141873796":"Get more info on <0>CFDs, <1>multipliers, and <2>options.","2143803283":"Purchase Error","2144609616":"If you select \"Reset-Down”, you win the payout if the exit spot is strictly lower than either the entry spot or the spot at reset time.","2145690912":"Income Earning","2145995536":"Create new account","2146336100":"in text %1 get %2","2146892766":"Binary options trading experience","-153346659":"Upload your selfie.","-602131304":"Passport number","-1051213440":"Upload the front and back of your identity card.","-1600807543":"First, enter your identity card number and the expiry date.","-1139923664":"Next, upload the front and back of your identity card.","-783705755":"Upload the front of your identity card.","-566750665":"NIMC slip and proof of age","-1465944279":"NIMC slip number","-429612996":"Next, upload both of the following documents.","-376981174":"Upload your proof of age: birth certificate or age declaration document.","-612174191":"First line of address is required","-242734402":"Only {{max}} characters, please.","-378415317":"State is required","-1784470716":"State is not in a proper format","-1699820408":"Please enter a {{field_name}} under {{max_number}} characters.","-1575567374":"postal/ZIP code","-1497654315":"Our accounts and services are unavailable for the Jersey postal code.","-755626951":"Complete your address details","-1024240099":"Address","-584911871":"Select wallet currency","-1461267236":"Please choose your currency","-1352330125":"CURRENCY","-1027595143":"Less than $25,000","-40491332":"$25,000 - $50,000","-1139806939":"$50,001 - $100,000","-626752657":"0-1 year","-532014689":"1-2 years","-1001024004":"Over 3 years","-790513277":"6-10 transactions in the past 12 months","-580085300":"11-39 transactions in the past 12 months","-654781670":"Primary","-1717373258":"Secondary","-996132458":"Construction","-915003867":"Health","-1430012453":"Information & Communications Technology","-987824916":"Science & Engineering","-146630682":"Social & Cultural","-761306973":"Manufacturing","-739367071":"Employed","-1156937070":"$500,001 - $1,000,000","-315534569":"Over $1,000,000","-2068544539":"Salaried Employee","-531314998":"Investments & Dividends","-1235114522":"Pension","-1298056749":"State Benefits","-449943381":"Savings & Inheritance","-1631552645":"Professionals","-474864470":"Personal Care, Sales and Service Workers","-1129355784":"Agricultural, Forestry and Fishery Workers","-1242914994":"Craft, Metal, Electrical and Electronics Workers","-1317824715":"Cleaners and Helpers","-1592729751":"Mining, Construction, Manufacturing and Transport Workers","-2137323480":"Company Ownership","-1590574533":"Divorce Settlement","-1667683002":"Inheritance","-1237843731":"Investment Income","-777506574":"Sale of Property","-1161338910":"First name is required.","-1161818065":"Last name should be between 2 and 50 characters.","-1281693513":"Date of birth is required.","-26599672":"Citizenship is required","-912174487":"Phone is required.","-673765468":"Letters, numbers, spaces, periods, hyphens and forward slashes only.","-1356204661":"This Tax Identification Number (TIN) is invalid. You may continue with account creation, but to facilitate future payment processes, valid tax information will be required.","-1823540512":"Personal details","-1227878799":"Speculative","-1174064217":"Mr","-855506127":"Ms","-621555159":"Identity information","-204765990":"Terms of use","-231863107":"No","-870902742":"How much knowledge and experience do you have in relation to online trading?","-1929477717":"I have an academic degree, professional certification, and/or work experience related to financial services.","-1540148863":"I have attended seminars, training, and/or workshops related to trading.","-922751756":"Less than a year","-542986255":"None","-1337206552":"In your understanding, CFD trading allows you to","-456863190":"Place a position on the price movement of an asset where the outcome is a fixed return or nothing at all.","-1314683258":"Make a long-term investment for a guaranteed profit.","-1546090184":"How does leverage affect CFD trading?","-1636427115":"Leverage helps to mitigate risk.","-800221491":"Leverage guarantees profits.","-811839563":"Leverage lets you open large positions for a fraction of trade value, which may result in increased profit or loss.","-1185193552":"Close your trade automatically when the loss is equal to or more than a specified amount, as long as there is adequate market liquidity.","-1046354":"Close your trade automatically when the profit is equal to or more than a specified amount, as long as there is adequate market liquidity.","-1842858448":"Make a guaranteed profit on your trade.","-659266366":"When opening a leveraged CFD trade","-1078152772":"When trading multipliers","-1507432523":"When buying shares of a company","-1847406474":"All of the above","-931052769":"Submit verification","-1004605898":"Tips","-1938142055":"Documents uploaded","-448090287":"The link only works on mobile devices","-1244287721":"Something's gone wrong","-241258681":"You'll need to restart your verification on your computer","-929254273":"Get secure link","-2021867851":"Check back here to finish the submission","-1547069149":"Open the link and complete the tasks","-1767652006":"Here's how to do it:","-277611959":"You can now return to your computer to continue","-724178625":"Make sure full document is visible","-1519380038":"Glare detected","-1895280620":"Make sure your card details are clear to read, with no blur or glare","-1464447919":"Make sure your permit details are clear to read, with no blur or glare","-1436160506":"Make sure details are clear to read, with no blur or glare","-759124288":"Close","-759118956":"Redo","-753375398":"Enlarge image","-1042933881":"Driver's license","-1503134764":"Face photo page","-1335343167":"Sorry, no mobile phone bills","-699045522":"Documents you can use to verify your identity","-543666102":"It must be an official photo ID","-903877217":"These are the documents most likely to show your current home address","-1356835948":"Choose document","-1364375936":"Select a %{country} document","-401586196":"or upload photo – no scans or photocopies","-3110517":"Take a photo with your phone","-2033894027":"Submit identity card (back)","-20684738":"Submit license (back)","-1359585500":"Submit license (front)","-106779602":"Submit residence permit (back)","-1287247476":"Submit residence permit (front)","-1954762444":"Restart the process on the latest version of Safari","-261174676":"Must be under 10MB.","-685885589":"An error occurred while loading the component","-502539866":"Your face is needed in the selfie","-1377968356":"Please try again","-1226547734":"Try using a JPG or PNG file","-849068301":"Loading...","-1730346712":"Loading","-1849371752":"Check that your number is correct","-309848900":"Copy","-1424436001":"Send link","-1093833557":"How to scan a QR code","-1408210605":"Point your phone’s camera at the QR code","-1773802163":"If it doesn’t work, download a QR code scanner from Google Play or the App Store","-109026565":"Scan QR code","-1644436882":"Get link via SMS","-1667839246":"Enter mobile number","-1533172567":"Enter your mobile number:","-1352094380":"Send this one-time link to your phone","-28974899":"Get your secure link","-359315319":"Continue","-1279080293":"2. Your desktop window stays open","-102776692":"Continue with the verification","-89152891":"Take a photo of the back of your card","-1646367396":"Take a photo of the front of your card","-1350855047":"Take a photo of the front of your license","-2119367889":"Take a photo using the basic camera mode instead","-342915396":"Take a photo","-419040068":"Passport photo page","-1354983065":"Refresh","-1925063334":"Recover camera access to continue face verification","-54784207":"Camera access is denied","-1392699864":"Allow camera access","-269477401":"Provide the whole document page for best results","-864639753":"Upload back of card from your computer","-1309771027":"Upload front of license from your computer","-1722060225":"Take photo","-565732905":"Selfie","-1703181240":"Check that it is connected and functional. You can also continue verification on your phone","-2043114239":"Camera not working?","-2029238500":"It may be disconnected. Try using your phone instead.","-468928206":"Make sure your device's camera works","-466246199":"Camera not working","-698978129":"Remember to press stop when you're done. Redo video actions","-538456609":"Looks like you took too long","-781816433":"Photo of your face","-1471336265":"Make sure your selfie clearly shows your face","-1375068556":"Check selfie","-1914530170":"Face forward and make sure your eyes are clearly visible","-776541617":"We'll compare it with your document","-478752991":"Your link will expire in one hour","-1859729380":"Keep this window open while using your mobile","-1283761937":"Resend link","-629011256":"Don't refresh this page","-1005231905":"Once you've finished we'll take you to the next step","-542134805":"Upload photo","-1462975230":"Document example","-1472844935":"The photo should clearly show your document","-189310067":"Account closed","-849320995":"Assessments","-773766766":"Email and passwords","-1466827732":"Self exclusion","-1498206510":"Account limits","-241588481":"Login history","-966136867":"Connected apps","-213009361":"Two-factor authentication","-1214803297":"Dashboard-only path","-526636259":"Error 404","-1030759620":"Government Officers","-1196936955":"Upload a screenshot of your name and email address from the personal information section.","-1286823855":"Upload your mobile bill statement showing your name and phone number.","-1309548471":"Upload your bank statement showing your name and account details.","-1410396115":"Upload a photo showing your name and the first six and last four digits of your card number. If the card does not display your name, upload the bank statement showing your name and card number in the transaction history.","-3805155":"Upload a screenshot of either of the following to process the transaction:","-1523487566":"- your account profile section on the website","-613062596":"- the Account Information page on the app","-1718304498":"User ID","-609424336":"Upload a screenshot of your name, account number, and email address from the personal details section of the app or profile section of your account on the website.","-1954436643":"Upload a screenshot of your username on the General Information page at <0>https://onlinenaira.com/members/index.htm","-79853954":"Upload a screenshot of your account number and phone number on the Bank Account/Mobile wallet page at <0>https://onlinenaira.com/members/bank.htm","-1192882870":"Upload a screenshot of your name and account number from the personal details section.","-612752984":"These are default limits that we apply to your accounts.","-1598263601":"To learn more about trading limits and how they apply, please go to the <0>Help Centre.","-1340125291":"Done","-1786659798":"Trading limits - Item","-1101543580":"Limit","-858297154":"Represents the maximum amount of cash that you may hold in your account. If the maximum is reached, you will be asked to withdraw funds.","-976258774":"Not set","-1182362640":"Represents the maximum aggregate payouts on outstanding contracts in your portfolio. If the maximum is attained, you may not purchase additional contracts without first closing out existing positions.","-1781293089":"Maximum aggregate payouts on open positions","-1412690135":"*Any limits in your Self-exclusion settings will override these default limits.","-1598751496":"Represents the maximum volume of contracts that you may purchase in any given trading day.","-1359847094":"Trading limits - Maximum daily turnover","-1502578110":"Your account is fully authenticated and your withdrawal limits have been lifted.","-138380129":"Total withdrawal allowed","-854023608":"To increase limit please verify your identity","-1500958859":"Verify","-1662154767":"a recent utility bill (e.g. electricity, water, gas, landline, or internet), bank statement, or government-issued letter with your name and this address.","-190838815":"We need this for verification. If the information you provide is fake or inaccurate, you won’t be able to deposit and withdraw.","-223216785":"Second line of address*","-594456225":"Second line of address","-1315410953":"State/Province","-1940457555":"Postal/ZIP Code*","-1964954030":"Postal/ZIP Code","-1541554430":"Next","-71696502":"Previous","-1437206131":"JPEG JPG PNG PDF GIF","-820458471":"1 - 6 months old","-155705811":"A clear colour photo or scanned image","-587941902":"Issued under your name with your current address","-438669274":"JPEG JPG PNG PDF GIF","-723198394":"File size should be 8MB or less","-1948369500":"File uploaded is not supported","-1040865880":"Drop files here..","-1437017790":"Financial information","-39038029":"Trading experience","-1416797980":"Please enter your {{ field_name }} as in your official identity documents.","-1466268810":"Please remember that it is your responsibility to keep your answers accurate and up to date. You can update your personal details at any time in your <0>account settings.","-32386760":"Name","-1120954663":"First name*","-1659980292":"First name","-766265812":"first name","-1857534296":"John","-1282749116":"last name","-1485480657":"Other details","-1784741577":"date of birth","-1315571766":"Place of birth","-2040322967":"Citizenship","-1692219415":"Tax residence","-1903720068":"The country in which you meet the criteria for paying taxes. Usually the country in which you physically reside.","-651516152":"Tax Identification Number","-1543016582":"I hereby confirm that the tax information I provided is true and complete. I will also inform {{legal_entity_name}} about any changes to this information.","-1387062433":"Account opening reason","-1088324715":"We’ll review your documents and notify you of its status within 1 - 3 working days.","-684271315":"OK","-1176889260":"Please select a document type.","-1515286538":"Please enter your document number. ","-1785463422":"Verify your identity","-78467788":"Please select the document type and enter the ID number.","-1117345066":"Choose the document type","-651192353":"Sample:","-1263033978":"Please ensure all your personal details are the same as in your chosen document. If you wish to update your personal details, go to account settings.","-937707753":"Go Back","-1926456107":"The ID you submitted is expired.","-555047589":"It looks like your identity document has expired. Please try again with a valid document.","-841187054":"Try Again","-2097808873":"We were unable to verify your ID with the details you provided. ","-228284848":"We were unable to verify your ID with the details you provided.","-1443800801":"Your ID number was submitted successfully","-1391934478":"Your ID is verified. You will also need to submit proof of your address.","-118547687":"ID verification passed","-200989771":"Go to personal details","-1358357943":"Please check and update your postal code before submitting proof of identity.","-1401994581":"Your personal details are missing","-2004327866":"Please select a valid country of document issuance.","-1664159494":"Country","-1874113454":"Please check and resubmit or choose a different document type.","-1044962593":"Upload Document","-749870311":"Please contact us via <0>live chat.","-1084991359":"Proof of identity verification not required","-1981334109":"Your account does not need identity verification at this time. We will inform you if identity verification is required in the future.","-182918740":"Your proof of identity submission failed because:","-246893488":"JPEG, JPG, PNG, PDF, or GIF","-1454880310":"Must be valid for at least 6 months","-100534371":"Before uploading, please ensure that you’re facing forward in the selfie, your face is within the frame, and your eyes are clearly visible even if you’re wearing glasses.","-1529523673":"Confirm and upload","-705047643":"Sorry, an error occured. Please select another file.","-1664309884":"Tap here to upload","-1725454783":"Failed","-839094775":"Back","-856213726":"You must also submit a proof of address.","-987011273":"Your proof of ownership isn't required.","-808299796":"You are not required to submit proof of ownership at this time. We will inform you if proof of ownership is required in the future.","-179726573":"We’ve received your proof of ownership.","-813779897":"Proof of ownership verification passed.","-1389323399":"You should enter {{min_number}}-{{max_number}} characters.","-1313806160":"Please request a new password and check your email for the new token.","-329713179":"Ok","-1598167506":"Success","-1077809489":"You have a new {{platform}} password to log in to your {{platform}} accounts on the web and mobile apps.","-2068479232":"{{platform}} password","-1332137219":"Strong passwords contain at least 8 characters that include uppercase and lowercase letters, numbers, and symbols.","-2005211699":"Create","-1597186502":"Reset {{platform}} password","-638756912":"Black out digits 7 to 12 of the card number that’s shown on the front of your debit/credit card.⁤","-848721396":"These trading limits are optional, and you can strengthen them at any time. If you don’t wish to set a specific limit, leave the field blank. If you live in the United Kingdom, Customer Support can only remove or weaken your trading limits after 24 hours of receiving the request. If you live in the Isle of Man, Customer Support can only remove or weaken your trading limits after your trading limit period has expired.","-469096390":"These trading limits are optional, and you can strengthen them at any time. If you don’t wish to set a specific limit, leave the field blank. Customer Support can only remove or weaken your trading limits after 24 hours of receiving the request.","-42808954":"You can also exclude yourself entirely for a specified duration. This can only be removed once your self-exclusion has expired. If you wish to continue trading once your self-exclusion period expires, you must contact Customer Support by calling <0>+447723580049 to lift this self-exclusion. Requests by chat or email shall not be entertained. There will be a 24-hour cooling-off period before you can resume trading.","-1088698009":"These self-exclusion limits help you control the amount of money and time you spend trading on {{platform_name_trader}}, {{platform_name_dbot}}, {{platform_name_smarttrader}} and {{platform_name_bbot}} on Deriv. The limits you set here will help you exercise <0>responsible trading.","-1702324712":"These limits are optional, and you can adjust them at any time. You decide how much and how long you’d like to trade. If you don’t wish to set a specific limit, leave the field blank.","-1819875658":"You can also exclude yourself entirely for a specified duration. Once the self-exclusion period has ended, you can either extend it further or resume trading immediately. If you wish to reduce or remove the self-exclusion period, contact our <0>Customer Support.","-1031814119":"About trading limits and self-exclusion","-183468698":"Trading limits and self-exclusion","-933963283":"No, review my limits","-1759860126":"Yes, log me out immediately","-572347855":"{{value}} mins","-313333548":"You’ll be able to adjust these limits at any time. You can reduce your limits from the <0>self-exclusion page. To increase or remove your limits, please contact our <1>Customer Support team.","-1265833982":"Accept","-2123139671":"Your stake and loss limits","-1250802290":"24 hours","-2070080356":"Max. total stake","-1545823544":"7 days","-180147209":"You will be automatically logged out from each session after this time limit.","-374553538":"Your account will be excluded from the website until this date (at least 6 months, up to 5 years).","-2121421686":"To self-exclude from all online gambling companies licensed in Great Britain, go to <0>www.gamstop.co.uk.","-2105708790":"Your maximum account balance and open positions","-1960600163":"Once your account balance reaches this amount, you will not be able to deposit funds into your account.","-1073845224":"No. of open position(s)","-288196326":"Your maximum deposit limit","-568749373":"Max. deposit limit","-1884902844":"Max. deposit limit per day","-545085253":"Max. deposit limit over 7 days","-1031006762":"Max. deposit limit over 30 days","-1116871438":"Max. total loss over 30 days","-2134714205":"Time limit per session","-1884271702":"Time out until","-1265825026":"Timeout time must be greater than current time.","-1332882202":"Timeout time cannot be more than 6 weeks.","-1635977118":"Exclude time cannot be less than 6 months.","-2073934245":"The financial trading services offered on this site are only suitable for customers who accept the possibility of losing all the money they invest and who understand and have experience of the risk involved in the purchase of financial contracts. Transactions in financial contracts carry a high degree of risk. If the contracts you purchased expire as worthless, you will lose all your investment, which includes the contract premium.","-1166068675":"Your account will be opened with {{legal_entity_name}}, regulated by the UK Gaming Commission (UKGC), and will be subject to the laws of the Isle of Man.","-975118358":"Your account will be opened with {{legal_entity_name}}, regulated by the Malta Financial Services Authority (MFSA), and will be subject to the laws of Malta.","-680528873":"Your account will be opened with {{legal_entity_name}} and will be subject to the laws of Samoa.","-1125193491":"Add account","-2068229627":"I am not a PEP, and I have not been a PEP in the last 12 months.","-1720468017":"In providing our services to you, we are required to obtain information from you in order to assess whether a given product or service is appropriate for you.","-186841084":"Change your login email","-907403572":"To change your email address, you'll first need to unlink your email address from your {{identifier_title}} account.","-1850792730":"Unlink from {{identifier_title}}","-2139303636":"You may have followed a broken link, or the page has moved to a new address.","-1448368765":"Error code: {{error_code}} page not found","-2145244263":"This field is required","-254792921":"You can only make deposits at the moment. To enable withdrawals, please complete your financial assessment.","-70342544":"We’re legally obliged to ask for your financial information.","-1100235269":"Industry of employment","-684388823":"Estimated net worth","-601903492":"Forex trading experience","-1012699451":"CFD trading experience","-1894668798":"Other trading instruments experience","-1026468600":"Other trading instruments frequency","-179005984":"Save","-307865807":"Risk Tolerance Warning","-690100729":"Yes, I understand the risk.","-2010628430":"CFDs and other financial instruments come with a high risk of losing money rapidly due to leverage. You should consider whether you understand how CFDs and other financial instruments work and whether you can afford to take the high risk of losing your money. <0/><0/> To continue, you must confirm that you understand your capital is at risk.","-863770104":"Please note that by clicking ‘OK’, you may be exposing yourself to risks. You may not have the knowledge or experience to properly assess or mitigate these risks, which may be significant, including the risk of losing the entire sum you have invested.","-1292808093":"Trading Experience","-789291456":"Tax residence*","-1651554702":"Only alphabet is allowed","-1458676679":"You should enter 2-50 characters.","-1166111912":"Use only the following special characters: {{ permitted_characters }}","-884768257":"You should enter 0-35 characters.","-2113555886":"Only letters, numbers, space, and hyphen are allowed.","-874280157":"This Tax Identification Number (TIN) is invalid. You may continue using it, but to facilitate future payment processes, valid tax information will be required.","-1037916704":"Miss","-1113902570":"Details","-634958629":"We use the information you give us only for verification purposes. All information is kept confidential.","-731992635":"Title*","-352888977":"Title","-136976514":"Country of residence*","-945104751":"We’re legally obliged to ask for your tax information.","-1702919018":"Second line of address (optional)","-1124948631":"Professional Client","-259515058":"By default, all {{brand_website_name}} clients are retail clients but anyone can request to be treated as a professional client.","-1463348492":"I would like to be treated as a professional client.","-1958764604":"Email preference","-2121071263":"Check this box to receive updates via email.","-2068064150":"Get updates about Deriv products, services and events.","-1558679249":"Please make sure your information is correct or it may affect your trading experience.","-1822545742":"Ether Classic","-1334641066":"Litecoin","-1214036543":"US Dollar","-1782590355":"No currency has been set for this account","-2116332353":"Please close your positions in the following Deriv account(s):","-2048005267":"{{number_of_positions}} position(s)","-1923892687":"Please withdraw your funds from the following Deriv X account(s):","-1629894615":"I have other financial priorities.","-844051272":"I want to stop myself from trading.","-1113965495":"I’m no longer interested in trading.","-1224285232":"Customer service was unsatisfactory.","-9323953":"Remaining characters: {{remaining_characters}}","-2061895474":"Closing your account will automatically log you out. We shall delete your personal information as soon as our legal obligations are met.","-203298452":"Close account","-1219849101":"Please select at least one reason","-484540402":"An error occurred","-1911549768":"Inaccessible MT5 account(s)","-1869355019":"Action required","-1030102424":"You can't trade on Deriv.","-448385353":"You can't make transactions.","-1058447223":"Before closing your account:","-912764166":"Withdraw your funds.","-60139953":"We shall delete your personal information as soon as our legal obligations are met, as mentioned in the section on Data Retention in our <0>Security and privacy policy","-536187647":"Confirm revoke access?","-1357606534":"Permission","-570222048":"Revoke access","-1076138910":"Trade","-488597603":"Trading information","-1666909852":"Payments","-506510414":"Date and time","-1708927037":"IP address","-80717068":"Apps you have linked to your <0>Deriv password:","-2143208677":"Click the <0>Change password button to change your Deriv MT5 password.","-9570380":"Use the {{platform_name_dxtrade}} password to log in to your {{platform_name_dxtrade}} accounts on the web and mobile apps.","-412891493":"Disable 2FA","-200487676":"Enable","-1840392236":"That's not the right code. Please try again.","-307075478":"6 digit code","-790444493":"Protect your account with 2FA. Each time you log in to your account, you will need to enter your password and an authentication code generated by a 2FA app on your smartphone.","-368010540":"You have enabled 2FA for your Deriv account.","-403552929":"To disable 2FA, please enter the six-digit authentication code generated by your 2FA app below:","-752939584":"How to set up 2FA for your Deriv account","-90649785":"Click here to copy key","-206376148":"Key copied!","-650175948":"A recent bank statement or government-issued letter with your name and address.","-2006895756":"1. Address","-716361389":"An accurate and complete address helps to speed up your verification process.","-890084320":"Save and submit","-902076926":"Before uploading your document, please ensure that your personal details are updated to match your proof of identity. This will help to avoid delays during the verification process.","-1592318047":"See example","-1376950117":"That file format isn't supported. Please upload .pdf, .png, .jpg, or .jpeg files only.","-1272489896":"Please complete this field.","-397487797":"Enter your full card number","-1411635770":"Learn more about account limits","-516397235":"Be careful who you share this token with. Anyone with this token can perform the following actions on your account behalf","-989216986":"Add accounts","-617480265":"Delete token","-316749685":"Are you sure you want to delete this token?","-786372363":"Learn more about API token","-55560916":"To access our mobile apps and other third-party apps, you'll first need to generate an API token.","-198329198":"API Token","-955038366":"Copy this token","-1668692965":"Hide this token","-1661284324":"Show this token","-605778668":"Never","-1628008897":"Token","-1238499897":"Last Used","-1171226355":"Length of token name must be between {{MIN_TOKEN}} and {{MAX_TOKEN}} characters.","-1803339710":"Maximum {{MAX_TOKEN}} characters.","-408613988":"Select scopes based on the access you need.","-5605257":"This scope will allow third-party apps to withdraw to payment agents and make inter-account transfers for you.","-1373485333":"This scope will allow third-party apps to view your trading history.","-758221415":"This scope will allow third-party apps to open accounts for you, manage your settings and token usage, and more. ","-1117963487":"Name your token and click on 'Create' to generate your token.","-2115275974":"CFDs","-1879666853":"Deriv MT5","-460645791":"You are limited to one fiat account. You won’t be able to change your account currency if you have already made your first deposit or created a real {{dmt5_label}} account.","-1146960797":"Fiat currencies","-1959484303":"Cryptocurrencies","-561724665":"You are limited to one fiat currency only","-2087317410":"Oops, something went wrong.","-509054266":"Anticipated annual turnover","-164448351":"Show less","-1361653502":"Show more","-337620257":"Switch to real account","-2120454054":"Add a real account","-38915613":"Unsaved changes","-2137450250":"You have unsaved changes. Are you sure you want to discard changes and leave this page?","-1067082004":"Leave Settings","-1451334536":"Continue trading","-1525879032":"Your documents for proof of address is expired. Please submit again.","-1425489838":"Proof of address verification not required","-1008641170":"Your account does not need address verification at this time. We will inform you if address verification is required in the future.","-60204971":"We could not verify your proof of address","-1944264183":"To continue trading, you must also submit a proof of identity.","-1617352279":"The email is in your spam folder (Sometimes things get lost there).","-547557964":"We can’t deliver the email to this address (Usually because of firewalls or filtering).","-142444667":"Please click on the link in the email to change your Deriv MT5 password.","-742748008":"Check your email and click the link in the email to proceed.","-84068414":"Still didn't get the email? Please contact us via <0>live chat.","-428335668":"You will need to set a password to complete the process.","-1517325716":"Deposit via the following payment methods:","-1547606079":"We accept the following cryptocurrencies:","-42592103":"Deposit cryptocurrencies","-639677539":"Buy cryptocurrencies","-1560098002":"Buy cryptocurrencies via fiat onramp","-541870313":"Deposit via payment agents","-72314872":"Deposit in your local currency via peer-to-peer exchange with fellow traders in your country.","-58126117":"Your simple access to crypto. Fast and secure way to exchange and purchase cryptocurrencies. 24/7 live chat support.","-1705887186":"Your deposit is successful.","-142361708":"In process","-1582681840":"We’ve received your request and are waiting for more blockchain confirmations.","-1626218538":"You’ve cancelled your withdrawal request.","-1062841150":"Your withdrawal is unsuccessful due to an error on the blockchain. Please <0>contact us via live chat for more info.","-630780094":"We’re awaiting confirmation from the blockchain.","-1525882769":"Your withdrawal is unsuccessful. We've sent you an email with more information.","-298601922":"Your withdrawal is successful.","-2021135479":"This field is required.","-1975494965":"Cashier","-1870909526":"Our server cannot retrieve an address.","-582721696":"The current allowed withdraw amount is {{format_min_withdraw_amount}} to {{format_max_withdraw_amount}} {{currency}}","-1957498244":"more","-197251450":"Don't want to trade in {{currency_code}}? You can open another cryptocurrency account.","-1900848111":"This is your {{currency_code}} account.","-749765720":"Your fiat account currency is set to {{currency_code}}.","-803546115":"Manage your accounts ","-1463156905":"Learn more about payment methods","-1309258714":"From account number","-1247676678":"To account number","-816476007":"Account holder name","-1995606668":"Amount","-344403983":"Description","-922432739":"Please enter a valid client login ID.","-1024241603":"Insufficient balance.","-1979554765":"Please enter a valid description.","-1186807402":"Transfer","-1254233806":"You've transferred","-1491457729":"All payment methods","-142563298":"Contact your preferred payment agent for payment instructions and make your deposit.","-1023961762":"Commission on deposits","-552873274":"Commission on withdrawal","-880645086":"Withdrawal amount","-118683067":"Withdrawal limits: <0 />-<1 />","-1125090734":"Important notice to receive your funds","-1924707324":"View transaction","-1474202916":"Make a new withdrawal","-511423158":"Enter the payment agent account number","-2059278156":"Note: {{website_name}} does not charge any transfer fees.","-1201279468":"To withdraw your funds, please choose the same payment method you used to make your deposits.","-8892474":"Start assessment","-1787304306":"Deriv P2P","-60779216":"Withdrawals are temporarily unavailable due to system maintenance. You can make your withdrawals when the maintenance is complete.","-215186732":"You’ve not set your country of residence. To access Cashier, please update your country of residence in the Personal details section in your account settings.","-1392897508":"The identification documents you submitted have expired. Please submit valid identity documents to unlock Cashier. ","-1321645628":"Your cashier is currently locked. Please contact us via live chat to find out how to unlock it.","-1158467524":"Your account is temporarily disabled. Please contact us via live chat to enable deposits and withdrawals again.","-929148387":"Please set your account currency to enable deposits and withdrawals.","-541392118":"Your account has not been authenticated. Please submit your <0>proof of identity and <1>proof of address to authenticate your account and access your cashier.","-247122507":"Your cashier is locked. Please complete the <0>financial assessment to unlock it.","-1443721737":"Your cashier is locked. See <0>how we protect your funds before you proceed.","-901712457":"Your access to Cashier has been temporarily disabled as you have not set your 30-day turnover limit. Please go to <0>Self-exclusion and set your 30-day turnover limit.","-166472881":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable deposits and withdrawals.","-666905139":"Deposits are locked","-378858101":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable deposits.","-1037495888":"You have chosen to exclude yourself from trading on our website until {{exclude_until}}. If you are unable to place a trade or deposit after your self-exclusion period, please contact us via live chat.","-949074612":"Please contact us via live chat.","-1318742415":"Your account has not been authenticated. Please submit your <0>proof of identity and <1>proof of address to authenticate your account and request for withdrawals.","-127614820":"Unfortunately, you can only make deposits. Please contact us via live chat to enable withdrawals.","-172277021":"Cashier is locked for withdrawals","-1624999813":"It seems that you've no commissions to withdraw at the moment. You can make withdrawals once you receive your commissions.","-1077304626":"Amount ({{currency}})","-1559994981":"Approximate value","-190084602":"Transaction","-811190405":"Time","-1272778997":"We've sent you an email.","-89973258":"Resend email in {{seconds}}s","-1332236294":"Please verify your identity","-1675848843":"Error","-283017497":"Retry","-1196049878":"First line of home address","-1326406485":"Postal Code/ZIP","-939625805":"Telephone","-442575534":"Email verification failed","-1459042184":"Update your personal details","-1603543465":"We can't validate your personal details because there is some information missing.","-614516651":"Need help? <0>Contact us.","-203002433":"Deposit now","-720315013":"You have no funds in your {{currency}} account","-2052373215":"Please make a deposit to use this feature.","-379487596":"{{selected_percentage}}% of available balance ({{format_amount}} {{currency__display_code}})","-299033842":"Recent transactions","-348296830":"{{transaction_type}} {{currency}}","-1929538515":"{{amount}} {{currency}} on {{submit_date}}","-1534990259":"Transaction hash:","-1612346919":"View all","-1059419768":"Notes","-316545835":"Please ensure <0>all details are <0>correct before making your transfer.","-949073402":"I confirm that I have verified the client’s transfer information.","-1752211105":"Transfer now","-598073640":"About Tether (Ethereum)","-275902914":"Tether on Ethereum (eUSDT)","-1188009792":"Tether on Omni Layer (USDT)","-1239329687":"Tether was originally created to use the bitcoin network as its transport protocol ‒ specifically, the Omni Layer ‒ to allow transactions of tokenised traditional currency.","-2013448791":"Want to exchange between e-wallet currencies? Try <0>Ewallet.Exchange","-2061807537":"Something’s not right","-1068036170":"We do not charge a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts and between your Deriv fiat and {{platform_name_dxtrade}} accounts.","-2056016338":"You’ll not be charged a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts.","-599632330":"We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts and between your Deriv fiat and {{platform_name_dxtrade}} accounts.","-1196994774":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency accounts.","-993556039":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts and between your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.","-1382702462":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts.","-1151983985":"Transfer limits may vary depending on the exchange rates.","-1747571263":"Please bear in mind that some transfers may not be possible.","-757062699":"Transfers may be unavailable due to high volatility or technical issues and when the exchange markets are closed.","-1344870129":"Deriv accounts","-1156059326":"You have {{number}} transfer remaining for today.","-1109729546":"You will be able to transfer funds between MT5 accounts and other accounts once your address is verified.","-1593609508":"Transfer between your accounts in Deriv","-464965808":"Transfer limits: <0 /> - <1 />","-553249337":"Transfers are locked","-1638172550":"To enable this feature you must complete the following:","-1157701227":"You need at least two accounts","-417711545":"Create account","-1232852916":"We’re switching over to your {{currency}} account to view the transaction.","-993393818":"Binance Smart Chain","-561858764":"Polygon (Matic)","-410890127":"Ethereum (ERC20)","-1059526741":"Ethereum (ETH)","-1615615253":"We do not support Tron, to deposit please use only Ethereum ({{token}}).","-1831000957":"Please select the network from where your deposit will come from.","-314177745":"Unfortunately, we couldn't get the address since our server was down. Please click Refresh to reload the address or try again later.","-1345040662":"Looking for a way to buy cryptocurrency?","-759000391":"We were unable to verify your information automatically. To enable this function, you must complete the following:","-1632668764":"I accept","-544232635":"Please go to the Deposit page to generate an address. Then come back here to continue with your transaction.","-1161069724":"Please copy the crypto address you see below. You'll need it to deposit your cryptocurrency.","-1388977563":"Copied!","-1962894999":"This address can only be used ONCE. Please copy a new one for your next transaction.","-451858550":"By clicking 'Continue' you will be redirected to {{ service }}, a third-party payment service provider. Please note that {{ website_name }} is not responsible for the content or services provided by {{ service }}. If you encounter any issues related to {{ service }} services, you must contact {{ service }} directly.","-2005265642":"Fiat onramp is a cashier service that allows you to convert fiat currencies to crypto to top up your Deriv crypto accounts. Listed here are third-party crypto exchanges. You’ll need to create an account with them to use their services.","-1593063457":"Select payment channel","-953082600":"Some payment methods may not be listed here but payment agents may still offer them. If you can’t find your favourite method, contact the payment agents directly to check further.","-2004264970":"Your wallet address should have 25 to 64 characters.","-1707299138":"Your {{currency_symbol}} wallet address","-38063175":"{{account_text}} wallet","-705272444":"Upload a proof of identity to verify your identity","-2024958619":"This is to protect your account from unauthorised withdrawals.","-130833284":"Please note that your maximum and minimum withdrawal limits aren’t fixed. They change due to the high volatility of cryptocurrency.","-1531269493":"We'll send you an email once your transaction has been processed.","-113940416":"Current stake:","-1999539705":"Deal cancel. fee:","-447037544":"Buy price:","-1342699195":"Total profit/loss:","-1511825574":"Profit/Loss:","-726626679":"Potential profit/loss:","-338379841":"Indicative price:","-1525144993":"Payout limit:","-1167474366":"Tick ","-555886064":"Won","-529060972":"Lost","-571642000":"Day","-155989831":"Decrement value","-1192773792":"Don't show this again","-1769852749":"N/A","-1572746946":"Asian Up","-686840306":"Asian Down","-2141198770":"Higher","-816098265":"Lower","-1646655742":"Spread Up","-668987427":"Spread Down","-912577498":"Matches","-1862940531":"Differs","-808904691":"Odd","-556230215":"Ends Outside","-1268220904":"Ends Between","-703542574":"Up","-1127399675":"Down","-768425113":"No Touch","-1163058241":"Stays Between","-1354485738":"Reset Call","-376148198":"Only Ups","-1337379177":"High Tick","-328036042":"Please enter a stop loss amount that's higher than the current potential loss.","-2127699317":"Invalid stop loss. Stop loss cannot be more than stake.","-1150099396":"We’re working to have this available for you soon. If you have another account, switch to that account to continue trading. You may add a Deriv MT5 Financial.","-1940333322":"DBot is not available for this account","-1223145005":"Loss amount: {{profit}}","-1062922595":"Reference ID (buy)","-2068574600":"Reference ID (sell)","-994038153":"Start Time","-1979852400":"Entry Spot","-427802309":"Profit/Loss","-668558002":"Journal.csv","-746652890":"Notifications","-824109891":"System","-507620484":"Unsaved","-764102808":"Google Drive","-1109191651":"Must be a number higher than 0","-1917772100":"Invalid number format","-1553945114":"Value must be higher than 2","-689786738":"Minimum duration: {{ min }}","-184183432":"Maximum duration: {{ max }}","-749186458":"Account switching is disabled while your bot is running. Please stop your bot before switching accounts.","-662836330":"Would you like to keep your current contract or close it? If you decide to keep it running, you can check and close it later on the <0>Reports page.","-597939268":"Keep my contract","-1322453991":"You need to log in to run the bot.","-1483938124":"This strategy is currently not compatible with DBot.","-236548954":"Contract Update Error","-1428017300":"THE","-1450728048":"OF","-255051108":"YOU","-1845434627":"IS","-931434605":"THIS","-740712821":"A","-187634388":"This block is mandatory. Here is where you can decide if your bot should continue trading. Only one copy of this block is allowed.","-2105473795":"The only input parameter determines how block output is going to be formatted. In case if the input parameter is \"string\" then the account currency will be added.","-1800436138":"2. for \"number\": 1325.68","-2046396241":"This block is mandatory. Only one copy of this block is allowed. It is added to the canvas by default when you open DBot.","-530632460":"This block is used to determine if the market price moves in the selected direction or not. It gives you a value of \"True\" or \"False\".","-1875717842":"Examples:","-890079872":"1. If the selected direction is \"Rise\", and the previous tick value is less than the current tick value, the output will be \"True\". Otherwise, the output will be an empty string.","-489739641":"2. If the selected direction is \"Fall\", and the previous tick value is more than the current tick value, the output will be \"True\". Otherwise, the output will be an empty string.","-2116076360":"There are 4 message types:","-1421941045":"2. 'Warn' displays a message in yellow to highlight something that needs attention.","-277850921":"If \"Win\" is selected, it will return \"True\" if your last trade was successful. Otherwise, it will return an empty string.","-1918487001":"Example:","-2139916657":"1. In the below example the loop is terminated in case \"x\" is \"False\" even though only one iteration is complete","-1238900333":"2. In the below example the loop jumps to the next iteration without executing below block in case if \"x\" is \"False\"","-1729479576":"You can use \"i\" inside the loop, for example to access list items","-1474636594":"In this example, the loop will repeat three times, as that is the number of items in the given list. During each iteration, the variable \"i\" will be assigned a value from the list. ","-908772734":"This block evaluates a statement and will perform an action only when the statement is true.","-334040831":"2. In this example, the instructions are repeated as long as the value of x is greater than or equal to 10. Once the value of x drops below 10, the loop is terminated.","-444267958":"\"Seconds Since Epoch\" block returns the number of seconds since January 1st, 1970.","-447522129":"You might need it when you want to repeat an actions after certain amount of time.","-1488259879":"The term \"candle\" refers to each bar on the candlestick chart. Each candle represents four market prices for the selected time interval:","-2020693608":"Each candlestick on the chart represents 4 market prices for the selected time interval:","-62728852":"- Open price: the opening price","-1247744334":"- Low price: the lowest price","-1386365697":"- Close price: the closing price","-1498732382":"A black (or red) candle indicates that the open price is higher than the close price. This represents a downward movement of the market price.","-1871864755":"This block gives you the last digit of the latest tick value of the selected market. If the latest tick value is 1410.90, this block will return 0. It’s useful for digit-based contracts such as Even/Odd, Matches/Differs, or Higher/Lower.","-1029671512":"In case if the \"OR\" operation is selected, the block returns \"True\" in case if one or both given values are \"True\"","-210295176":"Available operations:","-1385862125":"- Addition","-983721613":"- Subtraction","-854750243":"- Multiplication","-1394815185":"In case if the given number is less than the lower boundary of the range, the block returns the lower boundary value. Similarly, if the given number is greater than the higher boundary, the block will return the higher boundary value. In case if the given value is between boundaries, the block will return the given value unchanged.","-1034564248":"In the below example the block returns the value of 10 as the given value (5) is less than the lower boundary (10)","-2009817572":"This block performs the following operations to a given number","-671300479":"Available operations are:","-514610724":"- Absolute","-1923861818":"- Euler’s number (2.71) to the power of a given number","-1556344549":"Here’s how:","-1061127827":"- Visit the following URL, make sure to replace with the Telegram API token you created in Step 1: https://api.telegram.org/bot/getUpdates","-70949308":"4. Come back to DBot and add the Notify Telegram block to the workspace. Paste the Telegram API token and chat ID into the block fields accordingly.","-311389920":"In this example, the open prices from a list of candles are assigned to a variable called \"cl\".","-1460794449":"This block gives you a list of candles within a selected time interval.","-1634242212":"Used within a function block, this block returns a value when a specific condition is true.","-2012970860":"This block gives you information about your last contract.","-1504783522":"You can choose to see one of the following:","-10612039":"- Profit: the profit you’ve earned","-555996976":"- Entry time: the starting time of the contract","-1391071125":"- Exit time: the contract expiration time","-1961642424":"- Exit value: the value of the last tick of the contract","-111312913":"- Barrier: the barrier value of the contract (applicable to barrier-based trade types such as stays in/out, touch/no touch, etc.)","-674283099":"- Result: the result of the last contract: \"win\" or \"loss\"","-704543890":"This block gives you the selected candle value such as open price, close price, high price, low price, and open time. It requires a candle as an input parameter.","-482281200":"In the example below, the open price is assigned to the variable \"op\".","-364621012":"This block gives you the specified candle value for a selected time interval. You can choose which value you want:","-232477769":"- Open: the opening price","-610736310":"Use this block to sell your contract at the market price. Selling your contract is optional. You may choose to sell if the market trend is unfavourable.","-1307657508":"This block gives you the potential profit or loss if you decide to sell your contract. It can only be used within the \"Sell conditions\" root block.","-1921072225":"In the example below, the contract will only be sold if the potential profit or loss is more than the stake.","-955397705":"SMA adds the market price in a list of ticks or candles for a number of time periods, and divides the sum by that number of time periods.","-1424923010":"where n is the number of periods.","-1835384051":"What SMA tells you","-749487251":"SMA serves as an indicator of the trend. If the SMA points up then the market price is increasing and vice versa. The larger the period number, the smoother SMA line is.","-1996062088":"In this example, each point of the SMA line is an arithmetic average of close prices for the last 10 days.","-1866751721":"Input list accepts a list of ticks or candles, while period is the specified time period.","-1097076512":"You may compare SMA values calculated on every bot run to identify the market trend direction. Alternatively, you may also use a variation of the SMA block, the Simple Moving Average Array block. ","-1254849504":"If a period of 10 is entered, the Simple Moving Average Array block will return a list of SMA values calculated based on period of 10.","-1190046167":"This block displays a dialog box with a customised message. When the dialog box is displayed, your strategy is paused and will only resume after you click \"OK\".","-859028989":"In this example, the date and time will be displayed in a green notification box.","-1452086215":"In this example, a Rise contract will be purchased at midnight on 1 August 2019.","-1765276625":"Click the multiplier drop-down menu and choose the multiplier value you want to trade with.","-1872233077":"Your potential profit will be multiplied by the multiplier value you’ve chosen.","-614454953":"To learn more about multipliers, please go to the <0>Multipliers page.","-2078588404":"Select your desired market and asset type. For example, Forex > Major pairs > AUD/JPY","-2037446013":"2. Trade Type","-533927844":"Select your desired trade type. For example, Up/Down > Rise/Fall","-1192411640":"4. Default Candle Interval","-485434772":"8. Trade Options","-1827646586":"This block assigns a given value to a variable, creating the variable if it doesn't already exist.","-254421190":"List: ({{message_length}})","-1616649196":"results","-90107030":"No results found","-984140537":"Add","-786915692":"You are connected to Google Drive","-1150107517":"Connect","-1759213415":"Find out how this app handles your data by reviewing Deriv's <0>Privacy policy, which is part of Deriv's <1>Terms and conditions.","-934909826":"Load strategy","-1121028020":"or, if you prefer...","-254025477":"Select an XML file from your device","-1131095838":"Please upload an XML file","-523928088":"Create one or upload one from your local drive or Google Drive.","-1684205190":"Why can't I see my recent bots?","-2050879370":"1. Logged in from a different device","-811857220":"3. Cleared your browser cache","-1016171176":"Asset","-621128676":"Trade type","-671128668":"The amount that you pay to enter a trade.","-447853970":"Loss threshold","-410856998":"The bot will stop trading if your total profit exceeds this amount.","-1823621139":"Quick Strategy","-625024929":"Leaving already?","-584289785":"No, I'll stay","-1435060006":"If you leave, your current contract will be completed, but your bot will stop running immediately.","-783058284":"Total stake","-2077494994":"Total payout","-1073955629":"No. of runs","-1729519074":"Contracts lost","-42436171":"Total profit/loss","-1856204727":"Reset","-224804428":"Transactions","-1137823888":"Total payout since you last cleared your stats.","-992662695":"The number of times your bot has run since you last cleared your stats. Each run includes the execution of all the root blocks.","-1382491190":"Your total profit/loss since you last cleared your stats. It is the difference between your total payout and your total stake.","-305283152":"Strategy name","-1003476709":"Save as collection","-636521735":"Save strategy","-1373954791":"Should be a valid number","-1278608332":"Please enter a number between 0 and {{api_max_losses}}.","-287597204":"Enter limits to stop your bot from trading when any of these conditions are met.","-1445989611":"Limits your potential losses for the day across all Deriv platforms.","-152878438":"Maximum number of trades your bot will execute for this run.","-1490942825":"Apply and run","-1696412885":"Import","-250192612":"Sort","-1566369363":"Zoom out","-2060170461":"Load","-1200116647":"Click here to start building your DBot.","-1040972299":"Purchase contract","-600546154":"Sell contract (optional)","-985351204":"Trade again","-112876186":"Analysis","-1769584466":"Stats","-1133736197":"Utility","-1682372359":"Text","-907562847":"Lists","-1646497683":"Loops","-251326965":"Miscellaneous","-1285759343":"Search","-1058262694":"Stopping the bot will prevent further trades. Any ongoing trades will be completed by our system.","-1473283434":"Please be aware that some completed transactions may not be displayed in the transaction table if the bot is stopped while placing trades.","-397015538":"You may refer to the statement page for details of all completed transactions.","-1442034178":"Contract bought","-2020280751":"Bot is stopping","-1436403979":"Contract closed","-1711732508":"Reference IDs","-386141434":"(Buy)","-482272687":"(Sell)","-1983189496":"ticks","-694277729":"(High)","-2028564707":"(Low)","-627895223":"Exit spot","-596238067":"Entry/Exit spot","-558594655":"The bot is not running","-478946875":"The stats are cleared","-9461328":"Security and privacy","-563774117":"Dashboard","-418247251":"Download your journal.","-870004399":"<0>Bought: {{longcode}} (ID: {{transaction_id}})","-1211474415":"Filters","-186972150":"There are no messages to display","-999254545":"All messages are filtered out","-686334932":"Build a bot from the start menu then hit the run button to run the bot.","-1717650468":"Online","-1825471709":"A whole new trading experience on a powerful yet easy to use platform.","-981017278":"Automated trading at your fingertips. No coding needed.","-1768586966":"Trade CFDs on a customizable, easy-to-use trading platform.","-1309011360":"Open positions","-883103549":"Account deactivated","-821418875":"Trader","-679102561":"Contract Details","-430118939":"Complaints policy","-744999940":"Deriv account","-568280383":"Deriv Gaming","-1308346982":"Derived","-1546927062":"Deriv Financial","-895331276":"Complete your proof of address","-782679300":"Complete your proof of identity","-1596515467":"Derived BVI","-328128497":"Financial","-533935232":"Financial BVI","-565431857":"Financial Labuan","-1669418686":"AUD/CAD","-1548588249":"AUD/CHF","-1552890620":"AUD/JPY","-681231560":"AUD/PLN","-64938413":"AUD/USD","-1430522808":"EUR/AUD","-2020477069":"EUR/CAD","-1201853162":"EUR/CHF","-1318070255":"EUR/GBP","-1197505739":"EUR/JPY","-405907358":"EUR/USD","-1536293064":"NZD/JPY","-79700881":"NZD/USD","-642323838":"USD/CAD","-428199705":"USD/CHF","-424108348":"USD/JPY","-548255282":"USD/NOK","-1834131208":"USD/PLN","-524302516":"Silver/USD","-764731776":"Platinum/USD","-700966800":"Dutch Index","-1863229260":"Australian Index","-946336619":"Wall Street Index","-945048133":"French Index","-1093355162":"UK Index","-932734062":"Hong Kong Index","-2030624691":"Japanese Index","-354063409":"US Index","-232855849":"Euro 50 Index","-1925264914":"Volatility 25 Index","-708579504":"Volatility 50 Index","-975255670":"Volatility 75 Index","-1736314513":"Crash 300 Index","-342128411":"Crash 500 Index","-9704319":"Crash 1000 Index","-465860988":"Bull Market Index","-390528194":"Step Index","-280323742":"EUR Basket","-563812039":"Volatility 10 (1s) Index","-764111252":"Volatility 100 (1s) Index","-1374309449":"Volatility 200 (1s) Index","-1164978320":"Jump 10 Index","-575272887":"BCH/USD","-295406873":"BTC/ETH","-1713556301":"ZMR/USD","-2046638412":"XRP/USD","-1263203461":"BTC/USD","-1112522776":"DSH/USD","-460689370":"LTC/USD","-841561409":"Put Spread","-144803045":"Only numbers and these special characters are allowed: {{permitted_characters}}","-1450516268":"Only letters, numbers, space, hyphen, period, and apostrophe are allowed.","-1072358250":"Letters, spaces, periods, hyphens, apostrophes only","-1966032552":"The length of token should be 8.","-2128137611":"Should start with letter or number, and may contain hyphen and underscore.","-1590869353":"Up to {{decimal_count}} decimal places are allowed.","-2061307421":"Should be more than {{min_value}}","-1099941162":"Should be less than {{max_value}}","-1528188268":"Straight rows of keys are easy to guess","-1339903234":"Short keyboard patterns are easy to guess","-23980798":"Repeats like \"aaa\" are easy to guess","-235760680":"Avoid repeated words and characters","-1568933154":"Sequences like abc or 6543 are easy to guess","-725663701":"Avoid sequences","-1450768475":"Recent years are easy to guess","-1804838610":"Avoid years that are associated with you","-64849469":"Dates are often easy to guess","-2006915194":"Avoid dates and years that are associated with you","-2124205211":"A word by itself is easy to guess","-1095202689":"All-uppercase is almost as easy to guess as all-lowercase","-2137856661":"Reversed words aren't much harder to guess","-1885413063":"Predictable substitutions like '@' instead of 'a' don't help very much","-369258265":"This password is on the blacklist","-681468758":"Your web browser is out of date and may affect your trading experience. Please <0>update your browser.","-577777971":"You have reached the rate limit of requests per second. Please try later.","-206321775":"Fiat","-522767852":"DEMO","-433761292":"Switching to default account.","-405439829":"Sorry, you can't view this contract because it doesn't belong to this account.","-1590712279":"Gaming","-16448469":"Virtual","-540474806":"Your Options account is scheduled to be closed","-618539786":"Your account is scheduled to be closed","-945275490":"Withdraw all funds from your Options account.","-2093768906":"{{name}} has released your funds.
Would you like to give your feedback?","-705744796":"Your demo account balance has reached the maximum limit, and you will not be able to place new trades. Reset your balance to continue trading from your demo account.","-800774345":"Power up your Financial trades with intuitive tools from Acuity.","-279582236":"Learn More","-1211460378":"Power up your trades with Acuity","-703292251":"Download intuitive trading tools to keep track of market events. The Acuity suite is only available for Windows, and is most recommended for financial assets.","-1585069798":"Please click the following link to complete your Appropriateness Test.","-1287141934":"Find out more","-367759751":"Your account has not been verified","-596690079":"Enjoy using Deriv?","-265932467":"We’d love to hear your thoughts","-1815573792":"Drop your review on Trustpilot.","-823349637":"Go to Trustpilot","-1204063440":"Set my account currency","-1751632759":"Get a faster mobile trading experience with the <0>{{platform_name_go}} app!","-1164554246":"You submitted expired identification documents","-219846634":"Let’s verify your ID","-529038107":"Install","-1738575826":"Please switch to your real account or create one to access the cashier.","-1329329028":"You’ve not set your 30-day turnover limit","-132893998":"Your access to the cashier has been temporarily disabled as you have not set your 30-day turnover limit. Please go to Self-exclusion and set the limit.","-1852207910":"MT5 withdrawal disabled","-764323310":"MT5 withdrawals have been disabled on your account. Please check your email for more details.","-1902997828":"Refresh now","-753791937":"A new version of Deriv is available","-1775108444":"This page will automatically refresh in 5 minutes to load the latest version.","-1175685940":"Please contact us via live chat to enable withdrawals.","-1125797291":"Password updated.","-157145612":"Please log in with your updated password.","-1728185398":"Resubmit proof of address","-1519764694":"Your proof of address is verified.","-1961967032":"Resubmit proof of identity","-117048458":"Please submit your proof of identity.","-1196422502":"Your proof of identity is verified.","-136292383":"Your proof of address verification is pending","-386909054":"Your proof of address verification has failed","-430041639":"Your proof of address did not pass our verification checks, and we’ve placed some restrictions on your account. Please resubmit your proof of address.","-87177461":"Please go to your account settings and complete your personal details to enable deposits.","-904632610":"Reset your balance","-470018967":"Reset balance","-156611181":"Please complete the financial assessment in your account settings to unlock it.","-1925176811":"Unable to process withdrawals in the moment","-980696193":"Withdrawals are temporarily unavailable due to system maintenance. You can make withdrawals when the maintenance is complete.","-1647226944":"Unable to process deposit in the moment","-488032975":"Deposits are temporarily unavailable due to system maintenance. You can make deposits when the maintenance is complete.","-67021419":"Our cashier is temporarily down due to system maintenance. You can access the cashier in a few minutes when the maintenance is complete.","-849587074":"You have not provided your tax identification number","-47462430":"This information is necessary for legal and regulatory requirements. Please go to your account settings, and fill in your latest tax identification number.","-2067423661":"Stronger security for your Deriv account","-1719731099":"With two-factor authentication, you’ll protect your account with both your password and your phone - so only you can access your account, even if someone knows your password.","-2087822170":"You are offline","-1669693571":"Check your connection.","-1706642239":"<0>Proof of ownership <1>required","-553262593":"<0><1>Your account is currently locked <2><3>Please upload your proof of <4>ownership to unlock your account. <5>","-1834929362":"Upload my document","-1043638404":"<0>Proof of ownership <1>verification failed","-1766760306":"<0><1>Please upload your document <2>with the correct details. <3>","-1998049070":"If you agree to our use of cookies, click on Accept. For more information, <0>see our policy.","-402093392":"Add Deriv Account","-277547429":"A Deriv account will allow you to fund (and withdraw from) your MT5 account(s).","-1721181859":"You’ll need a {{deriv_account}} account","-1989074395":"Please add a {{deriv_account}} account first before adding a {{dmt5_account}} account. Deposits and withdrawals for your {{dmt5_label}} account are done by transferring funds to and from your {{deriv_label}} account.","-689237734":"Proceed","-1642457320":"Help centre","-1966944392":"Network status: {{status}}","-594209315":"Synthetic indices in the EU are offered by {{legal_entity_name}}, W Business Centre, Level 3, Triq Dun Karm, Birkirkara BKR 9033, Malta, licensed and regulated by the Malta Gaming Authority (<0>licence no. MGA/B2C/102/2000) and by the Revenue Commissioners for clients in Ireland (<2>licence no. 1010285).","-181484419":"Responsible trading","-650505513":"Full screen","-1823504435":"View notifications","-1954045170":"No currency assigned","-583559763":"Menu","-1922462747":"Trader's hub","-1591792668":"Account Limits","-34495732":"Regulatory information","-1496158755":"Go to Deriv.com","-2094580348":"Thanks for verifying your email","-1396326507":"Unfortunately, {{website_name}} is not available in your country.","-1019903756":"Synthetic","-288996254":"Unavailable","-122970184":"Total assets in your Deriv and {{platform_name_dxtrade}} demo accounts.","-97270814":"Total assets in your Deriv and {{platform_name_dxtrade}} real accounts.","-1607445331":"Deriv MT5 Accounts","-1844355483":"{{platform_name_dxtrade}} Accounts","-1740162250":"Manage account","-1277942366":"Total assets","-1556699568":"Choose your citizenship","-1310654342":"As part of the changes in our product line-up, we will be closing Gaming accounts belonging to our UK clients.","-626152766":"As part of the changes in our product line-up, we are closing Options accounts belonging to our clients in Europe.","-490100162":"As part of the changes in our product line-up, we will be closing accounts belonging to our Isle of Man clients.","-1208958060":"You can no longer trade digital options on any of our platforms. You also can’t deposit funds into your account.<0/><1/>Any open positions on digital options have been closed with full payout.","-2050417883":"You’ll lose access to your Gaming account when it gets closed, so make sure to withdraw your funds as soon as possible.","-1950045402":"Withdraw all your funds","-168971942":"What this means for you","-905560792":"OK, I understand","-1308593541":"You will lose access to your account when it gets closed, so be sure to withdraw all your funds.","-2024365882":"Explore","-1197864059":"Create free demo account","-1602122812":"24-hour Cool Down Warning","-740157281":"Trading Experience Assessment","-399816343":"Trading Experience Assessment<0/>","-1822498621":"As per our regulatory obligations, we are required to assess your trading knowledge and experience.<0/><0/>Please click ‘OK’ to continue","-71049153":"Keep your account secure with a password","-1861974537":"Strong passwords contain at least 8 characters, combine uppercase and lowercase letters, numbers, and symbols.","-1965920446":"Start trading","-1485242688":"Step {{step}}: {{step_title}} ({{step}} of {{steps}})","-1829842622":"You can open an account for each cryptocurrency.","-987221110":"Choose a currency you would like to trade with.","-1066574182":"Choose a currency","-1914534236":"Choose your currency","-200560194":"Please switch to your {{fiat_currency}} account to change currencies.","-1829493739":"Choose the currency you would like to trade with.","-1814647553":"Add a new","-1269362917":"Add new","-650480777":"crypto account","-175638343":"Choose an account or add a new one","-1768223277":"Your account is ready","-1215717784":"<0>You have successfully changed your currency to {{currency}}.<0>Make a deposit now to start trading.","-786091297":"Trade on demo","-228099749":"Please verify your identity and address","-1041852744":"We're processing your personal information","-1775006840":"Make a deposit now to start trading.","-983734304":"We need proof of your identity and address before you can start trading.","-917733293":"To get trading, please confirm where you live.","-1282628163":"You'll be able to get trading as soon as verification is complete.","-952649119":"Log In","-3815578":"Sign Up","-1456176427":"Set a currency for your real account","-1557011219":"Add a real Deriv Options account","-241733171":"Add a Deriv Financial account","-1329687645":"Create a cryptocurrency account","-1429178373":"Create a new account","-1016775979":"Choose an account","-1519791480":"CFDs and other financial instruments come with a high risk of losing money rapidly due to leverage. You should consider whether you understand how CFDs and other financial instruments work and whether you can afford to take the risk of losing your money. <0/><0/>\n As you have declined our previous warning, you would need to wait 24 hours before you can proceed further.","-1010875436":"CFDs and other financial instruments come with a high risk of losing money rapidly due to leverage. You should consider whether you understand how CFDs and other financial instruments work and whether you can afford to take the high risk of losing your money. <0/><0/> To continue, kindly note that you would need to wait 24 hours before you can proceed further.","-1725418054":"By clicking ‘Accept’ and proceeding with the account opening, you should note that you may be exposing yourself to risks. These risks, which may be significant, include the risk of losing the entire sum invested, and you may not have the knowledge and experience to properly assess or mitigate them.","-1369294608":"Already signed up?","-617844567":"An account with your details already exists.","-292363402":"Trading statistics report","-1656860130":"Options trading can become a real addiction, as can any other activity pushed to its limits. To avoid the danger of such an addiction, we provide a reality-check that gives you a summary of your trades and accounts on a regular basis.","-28080461":"Would like to check your statement first? <0>Check Statement","-611059051":"Please specify your preferred interval reality check in minutes:","-1876891031":"Currency","-11615110":"Turnover","-1370419052":"Profit / Loss","-437320982":"Session duration:","-3959715":"Current time:","-1534648620":"Your password has been changed","-596199727":"We will now redirect you to the login page.","-310434518":"The email input should not be empty.","-437918412":"No currency assigned to your account","-707550055":"We need this to make sure our service complies with laws and regulations in your country.","-280139767":"Set residence","-601615681":"Select theme","-1152511291":"Dark","-1428458509":"Light","-1976089791":"Your Deriv account has been unlinked from your {{social_identity_provider}} account. You can now log in to Deriv using your new email address and password.","-505449293":"Enter a new password for your Deriv account.","-703818088":"Only log in to your account at this secure link, never elsewhere.","-1235799308":"Fake links often contain the word that looks like \"Deriv\" but look out for these differences.","-2102997229":"Examples","-82488190":"I've read the above carefully.","-97775019":"Do not trust and give away your credentials on fake websites, ads or emails.","-2142491494":"OK, got it","-611136817":"Beware of fake links.","-1787820992":"Platforms","-1793883644":"Trade FX and CFDs on a customisable, easy-to-use trading platform.","-184713104":"Earn fixed payouts with options, or trade multipliers to amplify your gains with limited risk.","-1571775875":"Our flagship options and multipliers trading platform.","-1107320163":"Automate your trading, no coding needed.","-820028470":"Options & Multipliers","-895091803":"If you're looking for CFDs","-1447215751":"Not sure? Try this","-2338797":"<0>Maximise returns by <0>risking more than you put in.","-1682067341":"Earn <0>fixed returns by <0>risking only what you put in.","-1744351732":"Not sure where to start?","-943710774":"This complaints policy, which may change from time to time, applies to your account registered with {{legal_entity_name}}, having its registered office address at First Floor, Millennium House, Victoria Road, Douglas, Isle of Man, IM2 4RW, licensed and regulated respectively by (1) the Gambling Supervision Commission in the Isle of Man (current <0>licence issued on 31 August 2017) and (2) the Gambling Commission in the UK (<1>licence no. 39172).","-255056078":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name}}, having its registered office address at W Business Centre, Level 3, Triq Dun Karm, Birkirkara, BKR 9033, Malta, licensed and regulated by the Malta Gaming Authority in Malta for gambling products only, <0>licence no. MGA/B2C/102/2000, and for clients residing in the UK by the UK Gambling Commission (account number 39495).","-1941013000":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}}, {{legal_entity_name_fx}}, and {{legal_entity_name_v}}.","-594812204":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}}.","-1639808836":"If you are not satisfied with the outcome, you can escalate your complaint to the <0>Independent Betting Adjudication Service (IBAS) by filling the IBAS adjudication form. Please note that IBAS only deals with disputes that result from transactions.","-1505742956":"<0/><1/>You can also refer your dispute to the Malta Gaming Authority via the <2>Player Support Unit.","-1406192787":"If you are not satisfied with the outcome, you can escalate your complaint to the <0>Financial Commission.","-1776547326":"<0/><1/>If you reside in the UK and you are unhappy with our response you may escalate your complaint to the <2>Financial Ombudsman Service.","-2115348800":"1. Introduction","-744009523":"2. Fair treatment","-866831420":"3.1. Submission of a complaint","-1102904026":"3.2. Handling your complaint","-603378979":"3.3. Resolving your complaint","-697569974":"3.4. Your decision","-993572476":"<0>b.The Financial Commission has 5 days to acknowledge that your complaint was received and 14 days to answer the complaint through our Internal Dispute Resolution (IDR) procedure.","-1769159081":"<0>c.You will be able to file a complaint with the Financial Commission only if you are not satisfied with our decision or the decision wasn’t made within 14 days.","-58307244":"3. Determination phase","-356618087":"<0>b.The DRC may request additional information from you or us, who must then provide the requested information within 7 days.","-945718602":"<0>b.If you agree with a DRC decision, you will need to accept it within 14 days. If you do not respond to the DRC decision within 14 days, the complaint is considered closed.","-1500907666":"<0>d.If the decision is made in our favour, you must provide a release for us within 7 days of when the decision is made, and the complaint will be considered closed.","-429248139":"5. Disclaimer","-818926350":"The Financial Commission accepts appeals for 45 days following the date of the incident and only after the trader has tried to resolve the issue with the company directly.","-358055541":"Power up your trades with cool new tools","-815070480":"Disclaimer: The trading services and information provided by Acuity should not be construed as a solicitation to invest and/or trade. Deriv does not offer investment advice. The past is not a guide to future performance, and strategies that have worked in the past may not work in the future.","-2111521813":"Download Acuity","-175369516":"Welcome to Deriv X","-939154994":"Welcome to Deriv MT5 dashboard","-1667427537":"Run Deriv X on your browser or download the mobile app","-305915794":"Run MT5 from your browser or download the MT5 app for your devices","-404375367":"Trade forex, basket indices, commodities, and cryptocurrencies with high leverage.","-243985555":"Trade CFDs on forex, stocks, stock indices, synthetic indices, cryptocurrencies, and commodities with leverage.","-2030107144":"Trade CFDs on forex, stocks & stock indices, commodities, and crypto.","-781132577":"Leverage","-1264604378":"Up to 1:1000","-637908996":"100%","-1420548257":"20+","-1373949478":"50+","-1686150678":"Up to 1:100","-1382029900":"70+","-1493055298":"90+","-1056874273":"25+ assets: synthetics","-223956356":"Leverage up to 1:1000","-1340877988":"Registered with the Financial Commission","-879901180":"170+ assets: forex (standard/micro), stocks, stock indices, commodities, basket indices, and cryptocurrencies","-1020615994":"Better spreads","-1789823174":"Regulated by the Vanuatu Financial Services Commission","-1040269115":"30+ assets: forex and commodities","-1372141447":"Straight-through processing","-318390366":"Regulated by the Labuan Financial Services Authority (Licence no. MB/18/0024)","-1556783479":"80+ assets: forex and cryptocurrencies","-875019707":"Leverage up to 1:100","-1752249490":"Malta Financial","-2068980956":"Leverage up to 1:30","-2098459063":"British Virgin Islands","-1434036215":"Demo Financial","-1416247163":"Financial STP","-1882063886":"Demo CFDs","-1347908717":"Demo Financial SVG","-1780324582":"SVG","-785625598":"Use these credentials to log in to your {{platform}} account on the website and mobile apps.","-997127433":"Change Password","-162753510":"Add real account","-1300381594":"Get Acuity trading tools","-860609405":"Password","-742647506":"Fund transfer","-1972393174":"Trade CFDs on our synthetics, baskets, and derived FX.","-1357917360":"Web terminal","-1454896285":"The MT5 desktop app is not supported by Windows XP, Windows 2003, and Windows Vista.","-810388996":"Download the Deriv X mobile app","-1727991510":"Scan the QR code to download the Deriv X Mobile App","-1302404116":"Maximum leverage","-511301450":"Indicates the availability of cryptocurrency trading on a particular account.","-2102641225":"At bank rollover, liquidity in the forex markets is reduced and may increase the spread and processing time for client orders. This happens around 21:00 GMT during daylight saving time, and 22:00 GMT non-daylight saving time.","-495364248":"Margin call and stop out level will change from time to time based on market condition.","-536189739":"To protect your portfolio from adverse market movements due to the market opening gap, we reserve the right to decrease leverage on all offered symbols for financial accounts before market close and increase it again after market open. Please make sure that you have enough funds available in your {{platform}} account to support your positions at all times.","-712681566":"Peer-to-peer exchange","-1267880283":"{{field_name}} is required","-2084509650":"{{field_name}} is not properly formatted.","-1779241732":"First line of address is not in a proper format.","-188222339":"This should not exceed {{max_number}} characters.","-1673422138":"State/Province is not in a proper format.","-1580554423":"Trade CFDs on our synthetic indices that simulate real-world market movements.","-1385484963":"Confirm to change your {{platform}} password","-1990902270":"This will change the password to all of your {{platform}} accounts.","-673424733":"Demo account","-1986258847":"Server maintenance starts at 01:00 GMT every Sunday, and this process may take up to 2 hours to complete. Service may be disrupted during this time.","-1199152768":"Please explore our other platforms.","-205020823":"Explore {{platform_name_trader}}","-1982499699":"Explore {{platform_name_dbot}}","-1567989247":"Submit your proof of identity and address","-184453418":"Enter your {{platform}} password","-1769158315":"real","-700260448":"demo","-1980366110":"Congratulations, you have successfully created your {{category}} {{platform}} <0>{{type}} account.","-790488576":"Forgot password?","-926547017":"Enter your {{platform}} password to add a {{platform}} {{account}} {{jurisdiction_shortcode}} account.","-1190393389":"Enter your {{platform}} password to add a {{platform}} {{account}} account.","-2057918502":"Hint: You may have entered your Deriv password, which is different from your {{platform}} password.","-1928229820":"Reset Deriv X investor password","-1087845020":"main","-1950683866":"investor","-1874242353":"Fund top up","-89838213":"You can top up your demo account with an additional <0> if your balance is <1> or less.","-1211122723":"{{ platform }} {{ account_title }} account","-78895143":"Current balance","-149993085":"New current balance","-490244964":"Forex, stocks, stock indices, cryptocurrencies","-1368041210":", synthetic indices","-877064208":"EUR","-1284221303":"You’ll get a warning, known as margin call, if your account balance drops down close to the stop out level.","-1848799829":"To understand stop out, first you need to learn about margin level, which is the ratio of your equity (the total balance you would have if you close all your positions at that point) to the margin you're using at the moment. If your margin level drops below our stop out level, your positions may be closed automatically to protect you from further losses.","-224051432":"24/7","-1591882610":"Synthetics","-70716111":"FX-majors (standard/micro lots), FX-minors, basket indices, commodities, cryptocurrencies, and stocks and stock indices","-1041629137":"FX-majors, FX-minors, FX-exotics, and cryptocurrencies","-287097947":"FX-majors (standard/micro lots), FX-minors, Commodities, Cryptocurrencies (except UK)","-1225160479":"Compare available accounts","-2042845290":"Your investor password has been changed.","-1882295407":"Your password has been changed.","-254497873":"Use this password to grant viewing access to another user. While they may view your trading account, they will not be able to trade or take any other actions.","-161656683":"Current investor password","-374736923":"New investor password","-1793894323":"Create or reset investor password","-1124208206":"Switch to your real account to create a DMT5 {{account_title}} {{type_title}} account.","-1576792859":"Proof of identity and address are required","-104382603":"Check your proof of address","-793684335":"Check your proof of identity","-1271218821":"Account added","-599621079":"Add your Deriv MT5 {{account_type}} account under Deriv (SVG) LLC (company no. 273 LLC 2020).","-1302969276":"Add your Deriv MT5 {{account_type}} account under Deriv (BVI) Ltd, regulated by the British Virgin Islands Financial Services Commission (License no. SIBA/{{line_break}}L/18/1114).","-1422519943":"Add Your DMT5 {{account_type}} account under Deriv (V) Ltd, regulated by the Vanuatu Financial Services Commission.","-1731304187":"Add your Deriv MT5 CFDs account under Deriv Investments (Europe) Limited regulated by the Malta Financial Services Authority (MFSA) (licence no. IS/70156).","-16048185":"To create this account first we need your proof of identity and address.","-1627989291":"To create this account first we need you to resubmit your proof of identity.","-1389025684":"To create this account first we need you to resubmit your proof of identity and address.","-1615750576":"You will be able to open this account once your submitted documents have been verified.","-724308541":"Jurisdiction for your Deriv MT5 CFDs account","-479119833":"Choose a jurisdiction for your Deriv MT5 {{account_type}} account","-1931257307":"You will need to submit proof of identity","-2026018074":"Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (SVG) LLC (company no. 273 LLC 2020).","-162320753":"Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (BVI) Ltd, regulated by the British Virgin Islands Financial Services Commission (License no. SIBA/L/18/1114).","-450424792":"You need a real account (fiat currency or cryptocurrency) in Deriv to create a real Deriv MT5 account.","-1760596315":"Create a Deriv account","-705682181":"Malta","-194969520":"Counterparty company","-1131400885":"Deriv Investments (Europe) Limited","-409563066":"Regulator","-2073451889":"Malta Financial Services Authority (MFSA) (Licence no. IS/70156)","-362324454":"Commodities","-543177967":"Stock indices","-1089385344":"Deriv (SVG) LLC","-2019617323":"Deriv (BVI) Ltd","-112814932":"Deriv (FX) Ltd","-1747078152":"-","-1510474851":"British Virgin Islands Financial Services Commission (licence no. SIBA/L/18/1114)","-199154602":"Vanuatu Financial Services Commission","-761250329":"Labuan Financial Services Authority (Licence no. MB/18/0024)","-251202291":"Broker","-81650212":"MetaTrader 5 web","-2123571162":"Download","-941636117":"MetaTrader 5 Linux app","-2019704014":"Scan the QR code to download Deriv MT5.","-648956272":"Use this password to log in to your Deriv X accounts on the web and mobile apps.","-1814308691":"Please click on the link in the email to change your {{platform}} password.","-1282933308":"Not {{barrier}}","-968190634":"Equals {{barrier}}","-1747377543":"Under {{barrier}}","-337314714":"days","-442488432":"day","-1572548510":"Ups & Downs","-71301554":"Ins & Outs","-952298801":"Look Backs","-763273340":"Digits","-1790089996":"NEW!","-1386326276":"Barrier is a required field.","-1418742026":"Higher barrier must be higher than lower barrier.","-92007689":"Lower barrier must be lower than higher barrier.","-1095538960":"Please enter the start time in the format \"HH:MM\".","-1975910372":"Minute must be between 0 and 59.","-866277689":"Expiry time cannot be in the past.","-1455298001":"Now","-256210543":"Trading is unavailable at this time.","-28115241":"{{platform_name_trader}} is not available for this account","-453920758":"Go to {{platform_name_mt5}} dashboard","-402175529":"History","-902712434":"Deal cancellation","-988484646":"Deal cancellation (executed)","-444882676":"Deal cancellation (active)","-13423018":"Reference ID","-1551639437":"No history","-1214703885":"You have yet to update either take profit or stop loss","-880722426":"Market is closed","-504849554":"It will reopen at","-59803288":"In the meantime, try our synthetic indices. They simulate real-market volatility and are open 24/7.","-1278109940":"See open markets","-694105443":"This market is closed","-439389714":"We’re working on it","-770929448":"Go to {{platform_name_smarttrader}}","-138538812":"Log in or create a free account to place a trade.","-2036388794":"Create free account","-1813736037":"No further trading is allowed on this contract type for the current trading session. For more info, refer to our <0>terms and conditions.","-590131162":"Stay on {{website_domain}}","-1444663817":"Go to Binary.com","-1526466612":"You’ve selected a trade type that is currently unsupported, but we’re working on it.","-1043795232":"Recent positions","-1572796316":"Purchase price:","-153220091":"{{display_value}} Tick","-802374032":"Hour","-2039780875":"Purchase confirmation","-1672470173":"Require confirmation before purchasing a contract","-1342661765":"Lock contract purchase buttons","-939764287":"Charts","-1738427539":"Purchase","-1392065699":"If you select \"Rise\", you win the payout if the exit spot is strictly higher than the entry spot.","-1762566006":"If you select \"Fall\", you win the payout if the exit spot is strictly lower than the entry spot.","-1435306976":"If you select \"Allow equals\", you win the payout if exit spot is higher than or equal to entry spot for \"Rise\". Similarly, you win the payout if exit spot is lower than or equal to entry spot for \"Fall\".","-1959473569":"If you select \"Lower\", you win the payout if the exit spot is strictly lower than the barrier.","-1350745673":"If the exit spot is equal to the barrier, you don't win the payout.","-2089488446":"If you select \"Ends Between\", you win the payout if the exit spot is strictly higher than the Low barrier AND strictly lower than the High barrier.","-1876950330":"If you select \"Ends Outside\", you win the payout if the exit spot is EITHER strictly higher than the High barrier, OR strictly lower than the Low barrier.","-546460677":"If the exit spot is equal to either the Low barrier or the High barrier, you don't win the payout.","-1812957362":"If you select \"Stays Between\", you win the payout if the market stays between (does not touch) either the High barrier or the Low barrier at any time during the contract period","-220379757":"If you select \"Goes Outside\", you win the payout if the market touches either the High barrier or the Low barrier at any time during the contract period.","-1281286610":"If you select \"Matches\", you will win the payout if the last digit of the last tick is the same as your prediction.","-1929209278":"If you select \"Even\", you will win the payout if the last digit of the last tick is an even number (i.e., 2, 4, 6, 8, or 0).","-2038865615":"If you select \"Odd\", you will win the payout if the last digit of the last tick is an odd number (i.e., 1, 3, 5, 7, or 9).","-1416078023":"If you select \"Touch\", you win the payout if the market touches the barrier at any time during the contract period.","-1272255095":"If the exit spot is equal to the barrier or the new barrier (if a reset occurs), you don't win the payout.","-231957809":"Win maximum payout if the exit spot is higher than or equal to the upper barrier.","-464144986":"Win maximum payout if the exit spot is lower than or equal to the lower barrier.","-1031456093":"Win up to maximum payout if exit spot is between lower and upper barrier, in proportion to the difference between upper barrier and exit spot.","-968162707":"No payout if exit spot is above or equal to the upper barrier.","-299450697":"If you select \"High Tick\", you win the payout if the selected tick is the highest among the next five ticks.","-705681870":"By purchasing the \"High-to-Low\" contract, you'll win the multiplier times the difference between the high and low over the duration of the contract.","-420387848":"The high is the highest point ever reached by the market during the contract period.","-1666375348":"By purchasing the \"High-to-Close\" contract, you'll win the multiplier times the difference between the high and close over the duration of the contract.","-2024955268":"If you select “Up”, you will earn a profit by closing your position when the market price is higher than the entry spot.","-1598433845":"If you select “Down”, you will earn a profit by closing your position when the market price is lower than the entry spot.","-1092777202":"The Stop-out level on the chart indicates the price at which your potential loss equals your entire stake. When the market price reaches this level, your position will be closed automatically. This ensures that your loss does not exceed the amount you paid to purchase the contract.","-885323297":"These are optional parameters for each position that you open:","-584696680":"If you select “Take profit” and specify an amount that you’d like to earn, your position will be closed automatically when your profit is more than or equals to this amount. Your profit may be more than the amount you entered depending on the market price at closing.","-178096090":"“Take profit” cannot be updated. You may update it only when “Deal cancellation” expires.","-206909651":"The entry spot is the market price when your contract is processed by our servers.","-149836494":"Your transaction reference number is {{transaction_id}}","-1382749084":"Go back to trading","-1231210510":"Tick","-1239477911":"second","-1585766960":"min","-1652791614":"mins","-1977959027":"hours","-8998663":"Digit: {{last_digit}} ","-1435392215":"About deal cancellation","-2017825013":"Got it","-1280319153":"Cancel your trade anytime within a chosen time-frame. Triggered automatically if your trade reaches the stop out level within the chosen time-frame.","-471757681":"Risk management","-843831637":"Stop loss","-771725194":"Deal Cancellation","-45873457":"NEW","-127118348":"Choose {{contract_type}}","-543478618":"Try checking your spelling or use a different term","-338707425":"Minimum duration is 1 day","-1003473648":"Duration: {{duration}} day","-700280380":"Deal cancel. fee","-741395299":"{{value}}","-1527492178":"Purchase Locked","-725375562":"You can lock/unlock the purchase button from the Settings menu","-1358367903":"Stake","-1513281069":"Barrier 2","-390994177":"Should be between {{min}} and {{max}}","-2055106024":"Toggle between advanced and simple duration settings","-1012793015":"End time","-2037881712":"Your contract will be closed automatically at the next available asset price on <0>.","-629549519":"Commission <0/>","-2131859340":"Stop out <0/>","-1686280757":"<0>{{commission_percentage}}% of (<1/> * {{multiplier}})","-1043117679":"When your current loss equals or exceeds {{stop_out_percentage}}% of your stake, your contract will be closed at the nearest available asset price.","-477998532":"Your contract is closed automatically when your loss is more than or equals to this amount.","-243332856":"Last digit stats for latest 1000 ticks for {{ underlying_name }}","-339236213":"Multiplier","-461955353":"purchase price","-172348735":"profit","-1624674721":"contract type","-1644154369":"entry spot time","-510792478":"entry spot price","-1974651308":"exit spot time","-1600267387":"exit spot price","-514917720":"barrier","-2004386410":"Win","-1072292603":"No Change","-1631669591":"string","-1768939692":"number","-795152863":"green","-1640576332":"blue","-804983649":"yellow","-94281841":"red","-1242470654":"Earned money","-1429914047":"Low","-1893628957":"Open Time","-1896106455":"10 minutes","-999492762":"15 minutes","-1978767852":"30 minutes","-293628675":"1 hour","-385604445":"2 hours","-1965813351":"4 hours","-525321833":"1 day","-1691868913":"Touch/No Touch","-151151292":"Asians","-1048378719":"Reset Call/Reset Put","-1282312809":"High/Low Ticks","-1237186896":"Only Ups/Only Downs","-529846150":"Seconds","-2035315547":"Low barrier","-1635771697":"middle","-1529389221":"Histogram","-1819860668":"MACD","-1750896349":"D'Alembert","-102980621":"The Oscar's Grind Strategy is a low-risk positive progression strategy that first appeared in 1965. By using this strategy, the size of your contract will increase after successful trades, but remains unchanged after unsuccessful trades.","-462715374":"Untitled Bot","-2002533437":"Custom function","-215053350":"with:","-1257232389":"Specify a parameter name:","-1885742588":"with: ","-188442606":"function {{ function_name }} {{ function_params }} {{ dummy }}","-313112159":"This block is similar to the one above, except that this returns a value. The returned value can be assigned to a variable of your choice.","-1783320173":"Prematurely returns a value within a function","-1485521724":"Conditional return","-1482801393":"return","-46453136":"get","-1838027177":"first","-1182568049":"Get list item","-1675454867":"This block gives you the value of a specific item in a list, given the position of the item. It can also remove the item from the list.","-381501912":"This block creates a list of items from an existing list, using specific item positions.","-426766796":"Get sub-list","-1679267387":"in list {{ input_list }} find {{ first_or_last }} occurence of item {{ input_value }}","-2087996855":"This block gives you the position of an item in a given list.","-422008824":"Checks if a given list is empty","-1343887675":"This block checks if a given list is empty. It returns “True” if the list is empty, “False” if otherwise.","-1548407578":"length of {{ input_list }}","-1786976254":"This block gives you the total number of items in a given list.","-2113424060":"create list with item {{ input_item }} repeated {{ number }} times","-1955149944":"Repeat an item","-434887204":"set","-197957473":"as","-851591741":"Set list item","-1874774866":"ascending","-1457178757":"Sorts the items in a given list","-350986785":"Sort list","-324118987":"make text from list","-155065324":"This block creates a list from a given string of text, splitting it with the given delimiter. It can also join items in a list into a string of text.","-459051222":"Create list from text","-977241741":"List Statement","-451425933":"{{ break_or_continue }} of loop","-323735484":"continue with next iteration","-1592513697":"Break out/continue","-713658317":"for each item {{ variable }} in list {{ input_list }}","-1825658540":"Iterates through a given list","-952264826":"repeat {{ number }} times","-887757135":"Repeat (2)","-1608672233":"This block is similar to the block above, except that the number of times it repeats is determined by a given variable.","-533154446":"Repeat (1)","-1059826179":"while","-1893063293":"until","-279445533":"Repeat While/Until","-1003706492":"User-defined variable","-359097473":"set {{ variable }} to {{ value }}","-1588521055":"Sets variable value","-980448436":"Set variable","-1538570345":"Get the last trade information and result, then trade again.","-222725327":"Here is where you can decide if your bot should continue trading.","-1638446329":"Result is {{ win_or_loss }}","-1968029988":"Last trade result","-1588406981":"You can check the result of the last trade with this block.","-1459154781":"Contract Details: {{ contract_detail }}","-1652241017":"Reads a selected property from contract details list","-2082345383":"These blocks transfer control to the Purchase conditions block.","-172574065":"This block will transfer the control back to the Purchase conditions block, enabling you to purchase another contract.","-403103225":"restart","-837044282":"Ask Price {{ contract_type }}","-1033917049":"This block returns the purchase price for the selected trade type.","-1863737684":"2. Purchase conditions","-228133740":"Specify contract type and purchase conditions.","-1291088318":"Purchase conditions","-1098726473":"This block is mandatory. Only one copy of this block is allowed. You can place the Purchase block (see below) here as well as conditional blocks to define your purchase conditions.","-1777988407":"Payout {{ contract_type }}","-511116341":"This block returns the potential payout for the selected trade type","-1943211857":"Potential payout","-813464969":"buy","-53668380":"True if active contract can be sold before expiration at current market price","-43337012":"Sell profit/loss","-2112866691":"Returns the profit/loss from selling at market price","-2132417588":"This block gives you the potential profit or loss if you decide to sell your contract.","-1360483055":"set {{ variable }} to Bollinger Bands {{ band_type }} {{ dummy }}","-20542296":"Calculates Bollinger Bands (BB) from a list with a period","-1951109427":"Bollinger Bands (BB)","-857226052":"BB is a technical analysis indicator that’s commonly used by traders. The idea behind BB is that the market price stays within the upper and lower bands for 95% of the time. The bands are the standard deviations of the market price, while the line in the middle is a simple moving average line. If the price reaches either the upper or lower band, there’s a possibility of a trend reversal.","-325196350":"set {{ variable }} to Bollinger Bands Array {{ band_type }} {{ dummy }}","-199689794":"Similar to BB. This block gives you a choice of returning the values of either the lower band, higher band, or the SMA line in the middle.","-920690791":"Calculates Exponential Moving Average (EMA) from a list with a period","-960641587":"EMA is a type of moving average that places more significance on the most recent data points. It’s also known as the exponentially weighted moving average. EMA is different from SMA in that it reacts more significantly to recent price changes.","-1557584784":"set {{ variable }} to Exponential Moving Average Array {{ dummy }}","-32333344":"Calculates Moving Average Convergence Divergence (MACD) from a list","-628573413":"MACD is calculated by subtracting the long-term EMA (26 periods) from the short-term EMA (12 periods). If the short-term EMA is greater or lower than the long-term EMA than there’s a possibility of a trend reversal.","-1133676960":"Fast EMA Period {{ input_number }}","-883166598":"Period {{ input_period }}","-450311772":"set {{ variable }} to Relative Strength Index {{ dummy }}","-1861493523":"Calculates Relative Strength Index (RSI) list from a list of values with a period","-880048629":"Calculates Simple Moving Average (SMA) from a list with a period","-1150972084":"Market direction","-276935417":"This block is used to determine if the market price moves in the selected direction or not. It gives you a value of “True” or “False”.","-764931948":"in candle list get # from end {{ input_number }}","-924607337":"Returns the last digit of the latest tick","-560033550":"Returns the list of last digits of 1000 recent tick values","-74062476":"Make a List of {{ candle_property }} values in candles list with interval: {{ candle_interval_type }}","-1556495906":"Returns a list of specific values from a candle list according to selected time interval","-166816850":"Create a list of candle values (1)","-1261436901":"Candles List","-1174859923":"Read the selected candle value","-1972165119":"Read candle value (1)","-1956100732":"You can use this block to analyze the ticks, regardless of your trades","-443243232":"The content of this block is called on every tick. Place this block outside of any root block.","-641399277":"Last Tick","-1628954567":"Returns the value of the last tick","-1332756793":"This block gives you the value of the last tick.","-2134440920":"Last Tick String","-1466340125":"Tick value","-467913286":"Tick value Description","-785831237":"This block gives you a list of the last 1000 tick values.","-1546430304":"Tick List String Description","-1788626968":"Returns \"True\" if the given candle is black","-436010611":"Make a list of {{ candle_property }} values from candles list {{ candle_list }}","-1384340453":"Returns a list of specific values from a given candle list","-584859539":"Create a list of candle values (2)","-2010558323":"Read {{ candle_property }} value in candle {{ input_candle }}","-2846417":"This block gives you the selected candle value.","-1587644990":"Read candle value (2)","-1202212732":"This block returns account balance","-1737837036":"Account balance","-1963883840":"Put your blocks in here to prevent them from being removed","-1284013334":"Use this block if you want some instructions to be ignored when your bot runs. Instructions within this block won’t be executed.","-1217253851":"Log","-1987568069":"Warn","-104925654":"Console","-1956819233":"This block displays messages in the developer's console with an input that can be either a string of text, a number, boolean, or an array of data.","-1450461842":"Load block from URL: {{ input_url }}","-1088614441":"Loads blocks from URL","-1747943728":"Loads from URL","-2105753391":"Notify Telegram {{ dummy }} Access Token: {{ input_access_token }} Chat ID: {{ input_chat_id }} Message: {{ input_message }}","-1008209188":"Sends a message to Telegram","-1218671372":"Displays a notification and optionally play selected sound","-2099284639":"This block gives you the total profit/loss of your trading strategy since your bot started running. You can reset this by clicking “Clear stats” on the Transaction Stats window, or by refreshing this page in your browser.","-683825404":"Total Profit String","-718220730":"Total Profit String Description","-1861858493":"Number of runs","-264195345":"Returns the number of runs","-303451917":"This block gives you the total number of times your bot has run. You can reset this by clicking “Clear stats” on the Transaction Stats window, or by refreshing this page in your browser.","-2132861129":"Conversion Helper Block","-74095551":"Seconds Since Epoch","-15528039":"Returns the number of seconds since January 1st, 1970","-729807788":"This block returns the number of seconds since January 1st, 1970.","-1370107306":"{{ dummy }} {{ stack_input }} Run after {{ number }} second(s)","-558838192":"Delayed run","-1975250999":"This block converts the number of seconds since the Unix Epoch (1 January 1970) into a string of text representing the date and time.","-702370957":"Convert to date/time","-982729677":"Convert to timestamp","-311268215":"This block converts a string of text that represents the date and time into seconds since the Unix Epoch (1 January 1970). The time and time zone offset are optional. Example: 2019-01-01 21:03:45 GMT+0800 will be converted to 1546347825.","-1797602591":"Stop Loss: {{ currency }} {{ stop_loss }}","-1214929127":"Stop loss must be a positive number.","-780745489":"If the contract type is “Both”, then the Purchase Conditions should include both Rise and Fall using the “Conditional Block\"","-2142851225":"Multiplier trade options","-625636913":"Amount must be a positive number.","-1466383897":"Duration: {{ duration_unit }} {{ duration_value }}","-440702280":"Trade options","-1193894978":"Define your trade options such as duration and stake. Some options are only applicable for certain trade types.","-46523443":"Duration value is not allowed. To run the bot, please enter a value between {{min}} to {{max}}.","-1483427522":"Trade Type: {{ trade_type_category }} > {{ trade_type }}","-323348124":"1. Trade parameters","-1671903503":"Run once at start:","-783173909":"Trade options:","-376956832":"Here is where you define the parameters of your contract.","-1244007240":"if {{ condition }} then","-1577206704":"else if","-33796979":"true","-1434883449":"This is a single block that returns a boolean value, either true or false.","-1946404450":"Compares two values","-979918560":"This block converts the boolean value (true or false) to its opposite.","-2047257743":"Null","-1274387519":"Performs selected logic operation","-766386234":"This block performs the \"AND\" or the \"OR\" logic operation.","-790995537":"test {{ condition }}","-1860211657":"if false {{ return_value }}","-1643760249":"This block tests if a given value is true or false and returns “True” or “False” accordingly.","-1551875333":"Test value","-52486882":"Arithmetical operations","-1010436425":"This block adds the given number to the selected variable","-999773703":"Change variable","-1272091683":"Mathematical constants","-1396629894":"constrain {{ number }} low {{ low_number }} high {{ high_number }}","-425224412":"This block constrains a given number so that it is within a set range.","-2072551067":"Constrain within a range","-43523220":"remainder of {{ number1 }} ÷ {{ number2 }}","-1291857083":"Returns the remainder after a division","-592154850":"Remainder after division","-736665095":"Returns the remainder after the division of the given numbers.","-1266992960":"Math Number Description","-77191651":"{{ number }} is {{ type }}","-817881230":"even","-142319891":"odd","-1000789681":"whole","-1735674752":"Test a number","-1017805068":"This block tests a given number according to the selection and it returns a value of “True” or “False”. Available options: Even, Odd, Prime, Whole, Positive, Negative, Divisible","-1858332062":"Number","-1053492479":"Enter an integer or fractional number into this block. Please use `.` as a decimal separator for fractional numbers.","-927097011":"sum","-1653202295":"max","-1555878023":"average","-1748351061":"mode","-992067330":"Aggregate operations","-1691561447":"This block gives you a random fraction between 0.0 to 1.0","-523625686":"Random fraction number","-933024508":"Rounds a given number to an integer","-1656927862":"This block rounds a given number according to the selection: round, round up, round down.","-1495304618":"absolute","-61210477":"Operations on a given number","-181644914":"This block performs the selected operations to a given number.","-840732999":"to {{ variable }} append text {{ input_text }}","-1469497908":"Appends a given text to a variable","-1851366276":"Text Append","-1666316828":"Appends a given text to a variable.","-1902332770":"Transform {{ input_text }} to {{ transform_type }}","-1489004405":"Title Case","-904432685":"Changes text case accordingly","-882381096":"letter #","-1027605069":"letter # from end","-2066990284":"random letter","-337089610":"in text {{ input_text1 }} find {{ first_or_last }} occurence of text {{ input_text2 }}","-1966694141":"Searches through a string of text for a specific occurrence of a given character or word, and returns the position.","-697543841":"Text join","-141160667":"length of {{ input_text }}","-1133072029":"Text String Length","-1109723338":"print {{ input_text }}","-736668830":"Print","-1821552998":"trim spaces from {{ side }} of {{ input_text }}","-801766026":"right side","-474779821":"Trims spaces","-1219239717":"One or more mandatory blocks are missing from your workspace. Please add the required block(s) and then try again.","-250761331":"One or more mandatory blocks are disabled in your workspace. Please enable the required block(s) and then try again.","-1687036846":"Download block","-1266781295":"Expand","-894560707":"function","-1867119688":"Duplicate","-610728049":"Rearrange Vertically","-2033146714":"Collapse All Blocks","-958601558":"Delete Block","-1193267384":"Detach Block","-1750478127":"New variable name","-1061878051":"Y","-2047029150":"Unable to load the block file.","-1410769167":"Target must be an XML file","-609157479":"This URL is already loaded","-241945454":"Proposals are not ready","-1087890592":"Maximum loss amount reached","-1030545878":"You are rate limited for: {{ message_type }}, retrying in {{ delay }}s (ID: {{ request }})","-490766438":"You are disconnected, retrying in {{ delay }}s","-1389975609":"unknown","-1900515692":"Duration must be a positive integer","-245297595":"Please login","-1445046468":"Given candle is not valid","-1891622945":"{{hourPast}}h ago","-1723202824":"Please grant permission to view and manage Google Drive folders created with Binary Bot","-210953314":"There was an error retrieving data from Google Drive","-1521930919":"Select a Binary Bot strategy","-845301264":"There was an error listing files from Google Drive","-1452908801":"There was an error retrieving files from Google Drive","-232617824":"There was an error processing your request","-1800672151":"GBP Index","-1904030160":"Transaction performed by (App ID: {{app_id}})","-513103225":"Transaction time","-2066666313":"Credit/Debit","-2140412463":"Buy price","-1981004241":"Sell time","-600828210":"Indicative profit/loss","-706219815":"Indicative price","-3423966":"Take profit<0 />Stop loss","-2082644096":"Current stake","-538215347":"Net deposits","-280147477":"All transactions","-137444201":"Buy","-130601012":"Please select duration","-232254547":"Custom","-1577570698":"Start date","-1251526905":"Last 7 days","-360975483":"You've made no transactions of this type during this period.","-2092611555":"Sorry, this app is unavailable in your current location.","-1488537825":"If you have an account, log in to continue.","-555592125":"Unfortunately, trading options isn't possible in your country","-1571816573":"Sorry, trading is unavailable in your current location.","-1603581277":"minutes","-922253974":"Rise/Fall","-1361254291":"Higher/Lower","-335816381":"Ends In/Ends Out","-1789807039":"Asian Up/Asian Down","-330437517":"Matches/Differs","-657360193":"Over/Under","-558031309":"High Tick/Low Tick","-1714959941":"This chart display is not ideal for tick contracts","-1254554534":"Please change the chart duration to tick for a better trading experience.","-1658230823":"Contract was sold for <0 />.","-1905867404":"Contract cancelled"} \ No newline at end of file +{"0":"","1014140":"You may also call <0>+447723580049 to place your complaint.","3125515":"Your Deriv MT5 password is for logging in to your Deriv MT5 accounts on the desktop, web, and mobile apps.","3215342":"Last 30 days","7100308":"Hour must be between 0 and 23.","11539750":"set {{ variable }} to Relative Strength Index Array {{ dummy }}","11872052":"Yes, I'll come back later","14365404":"Request failed for: {{ message_type }}, retrying in {{ delay }}s","15377251":"Profit amount: {{profit}}","17843034":"Check proof of identity document verification status","19424289":"Username","19552684":"USD Basket","21035405":"Please tell us why you’re leaving. (Select up to {{ allowed_reasons }} reasons.)","24900606":"Gold Basket","25854018":"This block displays messages in the developer’s console with an input that can be either a string of text, a number, boolean, or an array of data.","26566655":"Summary","26596220":"Finance","27582767":"{{amount}} {{currency}}","27830635":"Deriv (V) Ltd","28581045":"Add a real MT5 account","30801950":"Your account will be opened with {{legal_entity_name}}, regulated by the Malta Gaming Authority, and will be subject to the laws of Malta.","33433576":"Please use an e-wallet to withdraw your funds.","35089987":"Upload the front and back of your driving licence.","39720204":"AUD Index","41737927":"Thank you","44877997":"Residence permit","45453595":"Binary Coin","45941470":"Where would you like to start?","46523711":"Your proof of identity is verified","49963458":"Choose an option","50200731":"FX majors (standard/micro lots), FX minors, basket indices, commodities, and cryptocurrencies","54185751":"Less than $100,000","55340304":"Keep your current contract?","55916349":"All","58254854":"Scopes","59169515":"If you select \"Asian Rise\", you will win the payout if the last tick is higher than the average of the ticks.","59341501":"Unrecognized file format","59662816":"Stated limits are subject to change without prior notice.","62748351":"List Length","63869411":"This block tests a given number according to the selection","64402604":"Check transfer information","65185694":"Fiat onramp","65982042":"Total","66519591":"Investor password","66557535":"Cancel your trade at any time within a specified time frame.","68885999":"Repeats the previous trade when an error is encountered.","69005593":"The example below restarts trading after 30 or more seconds after 1 minute candle was started.","71016232":"OMG/USD","71445658":"Open","71563326":"A fast and secure fiat-to-crypto payment service. Deposit cryptocurrencies from anywhere in the world using your credit/debit cards and bank transfers.","71853457":"$100,001 - $500,000","72500774":"Please fill in Tax residence.","73086872":"You have self-excluded from trading","73326375":"The low is the lowest point ever reached by the market during the contract period.","74963864":"Under","76916358":"You have reached the withdrawal limit.<0/>Please upload your proof of identity and address to lift the limit to continue your withdrawal.","80881349":"Get an Options account","81450871":"We couldn’t find that page","82839270":"Upload the page of your passport that contains your photo.","83202647":"Collapse Block","85343079":"Financial assessment","85359122":"40 or more","85389154":"Steps required to continue verification on your mobile","89062902":"Trade on MT5","90266322":"2. Start a chat with your newly created Telegram bot and make sure to send it some messages before proceeding to the next step. (e.g. Hello Bot!)","91993812":"The Martingale Strategy is a classic trading technique that has been used for more than a hundred years, popularised by the French mathematician Paul Pierre Levy in the 18th century.","96381225":"ID verification failed","98473502":"We’re not obliged to conduct an appropriateness test, nor provide you with any risk warnings.","98972777":"random item","100239694":"Upload front of card from your computer","102226908":"Field cannot be empty","108916570":"Duration: {{duration}} days","109073671":"Please use an e-wallet that you have used for deposits previously. Ensure the e-wallet supports withdrawal. See the list of e-wallets that support withdrawals <0>here.","111215238":"Move away from direct light","111718006":"End date","111931529":"Max. total stake over 7 days","113378532":"ETH/USD","113884303":"German Index","115032488":"Buy price and P/L","116005488":"Indicators","117318539":"Password should have lower and uppercase English letters with numbers.","119261701":"Prediction:","119446122":"Contract type is not selected","120340777":"Complete your personal details","123454801":"{{withdraw_amount}} {{currency_symbol}}","124625402":"of","124723298":"Upload a proof of address to verify your address","125443840":"6. Restart last trade on error","127307725":"A politically exposed person (PEP) is someone appointed with a prominent public position. Close associates and family members of a PEP are also considered to be PEPs.","130567238":"THEN","132596476":"In providing our services to you, we are required to ask you for some information to assess if a given product or service is appropriate for you and whether you have the experience and knowledge to understand the risks involved.<0/><0/>","132689841":"Trade on web terminal","133523018":"Please go to the Deposit page to get an address.","133536621":"and","138055021":"Synthetic indices","139454343":"Confirm my limits","141265840":"Funds transfer information","141626595":"Make sure your device has a working camera","142050447":"set {{ variable }} to create text with","142390699":"Connected to your mobile","143970826":"Payment problems?","145146541":"Our accounts and services are unavailable for the Jersey postal code","145736466":"Take a selfie","150486954":"Token name","151344063":"The exit spot is the market price when the contract is closed.","151646545":"Unable to read file {{name}}","152415091":"Math","152524253":"Trade the world’s markets with our popular user-friendly platform.","157593038":"random integer from {{ start_number }} to {{ end_number }}","160746023":"Tether as an Omni token (USDT) is a version of Tether that is hosted on the Omni layer on the Bitcoin blockchain.","160863687":"Camera not detected","164112826":"This block allows you to load blocks from a URL if you have them stored on a remote server, and they will be loaded only when your bot runs.","164564432":"Deposits are temporarily unavailable due to system maintenance. You can make your deposits when the maintenance is complete.","165294347":"Please set your country of residence in your account settings to access the cashier.","165312615":"Continue on phone","165682516":"If you don’t mind sharing, which other trading platforms do you use?","170185684":"Ignore","170244199":"I’m closing my account for other reasons.","171307423":"Recovery","171579918":"Go to Self-exclusion","171638706":"Variables","173991459":"We’re sending your request to the blockchain.","176319758":"Max. total stake over 30 days","176654019":"$100,000 - $250,000","177099483":"Your address verification is pending, and we’ve placed some restrictions on your account. The restrictions will be lifted once your address is verified.","178413314":"First name should be between 2 and 50 characters.","179083332":"Date","181881956":"Contract Type: {{ contract_type }}","184024288":"lower case","189705706":"This block uses the variable \"i\" to control the iterations. With each iteration, the value of \"i\" is determined by the items in a given list.","189759358":"Creates a list by repeating a given item","191372501":"Accumulation of Income/Savings","192436105":"No need for symbols, digits, or uppercase letters","192573933":"Verification complete","195972178":"Get character","196998347":"We hold customer funds in bank accounts separate from our operational accounts which would not, in the event of insolvency, form part of the company's assets. This meets the <0>Gambling Commission's requirements for the segregation of customer funds at the level: <1>medium protection.","197190401":"Expiry date","201091938":"30 days","203179929":"<0>You can open this account once your submitted documents have been verified.","203271702":"Try again","204797764":"Transfer to client","204863103":"Exit time","206010672":"Delete {{ delete_count }} Blocks","207824122":"Please withdraw your funds from the following Deriv account(s):","209533725":"You’ve transferred {{amount}} {{currency}}","210385770":"If you have an active account, please log in to continue. Otherwise, please sign up.","211224838":"Investment","211461880":"Common names and surnames are easy to guess","211847965":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable withdrawals.","216650710":"You are using a demo account","217403651":"St. Vincent & Grenadines","217504255":"Financial assessment submitted successfully","218441288":"Identity card number","220014242":"Upload a selfie from your computer","220186645":"Text Is empty","220232017":"demo CFDs","222468543":"The amount that you may add to your stake if you’re losing a trade.","223120514":"In this example, each point of the SMA line is an arithmetic average of close prices for the last 50 days.","223607908":"Last digit stats for latest 1000 ticks for {{underlying_name}}","224650827":"IOT/USD","224929714":"Virtual events based bets in the UK and the Isle of Man are offered by {{legal_entity_name}}, Millennium House, Level 1, Victoria Road, Douglas IM2 4RW, Isle of Man, licensed and regulated in Great Britain by the Gambling Commission under <0>account no. 39172 and by the Gambling Supervision Commission in the Isle of Man (<1>view licence).","225887649":"This block is mandatory. It's added to your strategy by default when you create new strategy. You can not add more than one copy of this block to the canvas.","227591929":"To timestamp {{ input_datetime }} {{ dummy }}","227903202":"We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts.","228079844":"Click here to upload","228521812":"Tests whether a string of text is empty. Returns a boolean value (true or false).","229355215":"Trade on {{platform_name_dbot}}","233500222":"- High: the highest price","235583807":"SMA is a frequently used indicator in technical analysis. It calculates the average market price over a specified period, and is usually used to identify market trend direction: up or down. For example, if the SMA is moving upwards, it means the market trend is up. ","236642001":"Journal","238496287":"Leverage trading is high-risk, so it's a good idea to use risk management features such as stop loss. Stop loss allows you to","240247367":"Profit table","243614144":"This is only available for existing clients.","245005091":"lower","245187862":"The DRC will make a <0>decision on the complaint (please note that the DRC mentions no timeframe for announcing its decision).","245812353":"if {{ condition }} return {{ value }}","247418415":"Gaming trading can become a real addiction, as can any other activity pushed to its limits. To avoid the danger of such an addiction, we provide a reality-check that gives you a summary of your trades and accounts on a regular basis.","248565468":"Check your {{ identifier_title }} account email and click the link in the email to proceed.","248909149":"Send a secure link to your phone","249908265":"Are you a citizen of {{- residence}}?","251134918":"Account Information","251322536":"Deriv EZ accounts","251445658":"Dark theme","251882697":"Thank you! Your response has been recorded into our system.<0/><0/>Please click ‘OK’ to continue.","254912581":"This block is similar to EMA, except that it gives you the entire EMA line based on the input list and the given period.","256031314":"Cash Business","256602726":"If you close your account:","258310842":"Workspace","258448370":"MT5","258912192":"Trading assessment","260069181":"An error occured while trying to load the URL","260086036":"Place blocks here to perform tasks once when your bot starts running.","260361841":"Tax Identification Number can't be longer than 25 characters.","264976398":"3. 'Error' displays a message in red to highlight something that needs to be resolved immediately.","265644304":"Trade types","267992618":"The platforms lack key features or functionality.","268940240":"Your balance ({{format_balance}} {{currency}}) is less than the current minimum withdrawal allowed ({{format_min_withdraw_amount}} {{currency}}). Please top up your account to continue with your withdrawal.","269322978":"Deposit with your local currency via peer-to-peer exchange with fellow traders in your country.","269607721":"Upload","270339490":"If you select \"Over\", you will win the payout if the last digit of the last tick is greater than your prediction.","270610771":"In this example, the open price of a candle is assigned to the variable \"candle_open_price\".","270712176":"descending","270780527":"You've reached the limit for uploading your documents.","272042258":"When you set your limits, they will be aggregated across all your account types in {{platform_name_trader}}, {{platform_name_dbot}}, {{platform_name_smarttrader}} and {{platform_name_bbot}} on Deriv. For example, the losses made on all four platforms will add up and be counted towards the loss limit you set.","272179372":"This block is commonly used to adjust the parameters of your next trade and to implement stop loss/take profit logic.","273350342":"Copy and paste the token into the app.","273728315":"Should not be 0 or empty","274268819":"Volatility 100 Index","275116637":"Deriv X","277469417":"Exclude time cannot be for more than five years.","278684544":"get sub-list from # from end","282319001":"Check your image","282564053":"Next, we'll need your proof of address.","283830551":"Your address doesn’t match your profile","283986166":"Self-exclusion on the website only applies to your {{brand_website_name}} account and does not include other companies or websites.","284527272":"antimode","284772879":"Contract","287934290":"Are you sure you want to cancel this transaction?","289898640":"TERMS OF USE","291817757":"Go to our Deriv community and learn about APIs, API tokens, ways to use Deriv APIs, and more.","292491635":"If you select “Stop loss” and specify an amount to limit your loss, your position will be closed automatically when your loss is more than or equals to this amount. Your loss may be more than the amount you entered depending on the market price at closing.","292526130":"Tick and candle analysis","292589175":"This will display the SMA for the specified period, using a candle list.","292887559":"Transfer to {{selected_value}} is not allowed, Please choose another account from dropdown","294305803":"Manage account settings","294335229":"Sell at market price","300762428":"Swiss Index","303959005":"Sell Price:","304309961":"We're reviewing your withdrawal request. You may still cancel this transaction if you wish. Once we start processing, you won't be able to cancel.","310234308":"Close all your positions.","312142140":"Save new limits?","312300092":"Trims the spaces within a given string or text.","313298169":"Our cashier is temporarily down due to system maintenance. You can access the Cashier in a few minutes when the maintenance is complete.","313741895":"This block returns “True” if the last candle is black. It can be placed anywhere on the canvas except within the Trade parameters root block.","315306603":"You have an account that do not have currency assigned. Please choose a currency to trade with this account.","316694303":"Is candle black?","317601768":"Themes","318865860":"close","318984807":"This block repeats the instructions contained within for a specific number of times.","323179846":"The time interval for each candle can be set from one minute to one day.","323209316":"Select a Deriv Bot Strategy","325662004":"Expand Block","325763347":"result","326770937":"Withdraw {{currency}} ({{currency_symbol}}) to your wallet","327534692":"Duration value is not allowed. To run the bot, please enter {{min}}.","328539132":"Repeats inside instructions specified number of times","329404045":"<0>Switch to your real account<1> to create a {{platform}} {{account_title}} account.","333456603":"Withdrawal limits","334680754":"Switch to your real account to create a Deriv MT5 account","334942497":"Buy time","335040248":"About us","337023006":"Start time cannot be in the past.","339449279":"Remaining time","339610914":"Spread Up/Spread Down","339879944":"GBP/USD","340807218":"Description not found.","342181776":"Cancel transaction","343873723":"This block displays a message. You can specify the color of the message and choose from 6 different sound options.","344418897":"These trading limits and self-exclusion help you control the amount of money and time you spend on {{brand_website_name}} and exercise <0>responsible trading.","345320063":"Invalid timestamp","346994074":"Selecting this will onboard you through Deriv (SVG) LLC (company no. 273 LLC 2020)","347029309":"Forex: standard/micro","347039138":"Iterate (2)","348951052":"Your cashier is currently locked","349047911":"Over","349110642":"<0>{{payment_agent}}<1>'s contact details","351744408":"Tests if a given text string is empty","352363702":"You may see links to websites with a fake Deriv login page where you’ll get scammed for your money.","353731490":"Job done","354945172":"Submit document","357477280":"No face found","359053005":"Please enter a token name.","359649435":"Given candle list is not valid","359809970":"This block gives you the selected candle value from a list of candles within the selected time interval. You can choose from open price, close price, high price, low price, and open time.","360224937":"Logic","362772494":"This should not exceed {{max}} characters.","363576009":"- High price: the highest price","363738790":"Browser","363990763":"Sell price:","368160866":"in list","371151609":"Last used","371710104":"This scope will allow third-party apps to buy and sell contracts for you, renew your expired purchases, and top up your demo accounts.","372291654":"Exclude time must be after today.","372645383":"True if the market direction matches the selection","373021397":"random","373306660":"{{label}} is required.","373495360":"This block returns the entire SMA line, containing a list of all values for a given period.","374164629":"Trade on Deriv MT5, the all-in-one FX and CFD trading platform.","374537470":"No results for \"{{text}}\"","375714803":"Deal Cancellation Error","379523479":"To avoid loss of funds, do not share tokens with the Admin scope with unauthorised parties.","379730150":"US Tech Index","380606668":"tick","380694312":"Maximum consecutive trades","382781785":"Your contract is closed automatically when your profit is more than or equals to this amount.","384303768":"This block returns \"True\" if the last candle is black. It can be placed anywhere on the canvas except within the Trade parameters root block.","386278304":"Install the {{platform_name_trader}} web app","386502387":"Bot is not running","389923099":"Zoom in","390647540":"Real account","390890891":"Last quarter","391915203":"Hedging","392582370":"Fall Equals","396418990":"Offline","396961806":"We do not support Polygon (Matic), to deposit please use only Ethereum ({{token}}).","398816980":"Launch {{platform_name_trader}} in seconds the next time you want to trade.","401339495":"Verify address","402343402":"Due to an issue on our server, some of your {{platform}} accounts are unavailable at the moment. Please bear with us and thank you for your patience.","403456289":"The formula for SMA is:","404743411":"Total deposits","406359555":"Contract details","406497323":"Sell your active contract if needed (optional)","411482865":"Add {{deriv_account}} account","412433839":"I agree to the <0>terms and conditions.","413594348":"Only letters, numbers, space, hyphen, period, and forward slash are allowed.","417714706":"If your margin level drops below our stop out level, your positions may be closed automatically to protect you from further losses.","417864079":"You’ll not be able to change currency once you have made a deposit.","418265501":"Demo Derived","420072489":"CFD trading frequency","422055502":"From","424897068":"Do you understand that you could potentially lose 100% of the money you use to trade?","426031496":"Stop","427134581":"Try using another file type.","427617266":"Bitcoin","428709688":"Your preferred time interval between each report:","430975601":"Town/City is not in a proper format.","432508385":"Take Profit: {{ currency }} {{ take_profit }}","432519573":"Document uploaded","433348384":"Real accounts are not available to politically exposed persons (PEPs).","433616983":"2. Investigation phase","434548438":"Highlight function definition","434896834":"Custom functions","436364528":"Your account will be opened with {{legal_entity_name}}, and will be subject to the laws of Saint Vincent and the Grenadines.","437138731":"Create a new {{platform}} password","437453244":"Choose your preferred cryptocurrency","437485293":"File type not supported","437904704":"Maximum open positions","438067535":"Over $500,000","442520703":"$250,001 - $500,000","443559872":"Financial SVG","444484637":"Logic negation","445419365":"1 - 2 years","450983288":"Your deposit is unsuccessful due to an error on the blockchain. Please contact your crypto wallet service provider for more info.","451852761":"Continue on your phone","452054360":"Similar to RSI, this block gives you a list of values for each entry in the input list.","453175851":"Your MT5 Financial STP account will be opened through {{legal_entity_name}}. All trading in this account is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA). None of your other accounts, including your Deriv account, is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA).","453409608":"Your profit is the percentage change in market price times your stake and the multiplier of your choice.","454593402":"2. Please upload one of the following:","456746157":"Grant access to your camera from your browser settings","457020083":"It’ll take longer to verify you if we can’t read it","457494524":"1. From the block library, enter a name for the new variable and click Create.","459817765":"Pending","460975214":"Complete your Appropriateness Test","461795838":"Please contact us via live chat to unlock it.","462079779":"Resale not offered","462461595":"Explore Trader's hub","463361726":"Select an item","465993338":"Oscar's Grind","466369320":"Your gross profit is the percentage change in market price times your stake and the multiplier chosen here.","467839232":"I trade forex CFDs and other complex financial instruments regularly on other platforms.","473154195":"Settings","473863031":"Pending proof of address review","474306498":"We’re sorry to see you leave. Your account is now closed.","475492878":"Try Synthetic Indices","476023405":"Didn't receive the email?","477557241":"Remote blocks to load must be a collection.","478280278":"This block displays a dialog box that uses a customised message to prompt for an input. The input can be either a string of text or a number and can be assigned to a variable. When the dialog box is displayed, your strategy is paused and will only resume after you enter a response and click \"OK\".","479420576":"Tertiary","481276888":"Goes Outside","483279638":"Assessment Completed<0/><0/>","483591040":"Delete all {{ delete_count }} blocks?","485379166":"View transactions","487239607":"Converts a given True or False to the opposite value","488150742":"Resend email","489768502":"Change investor password","491603904":"Unsupported browser","492198410":"Make sure everything is clear","496680295":"Choose country","497518317":"Function that returns a value","498562439":"or","499522484":"1. for \"string\": 1325.68 USD","500855527":"Chief Executives, Senior Officials and Legislators","500920471":"This block performs arithmetic operations between two numbers.","501401157":"You are only allowed to make deposits","501537611":"*Maximum number of open positions","502041595":"This block gives you a specific candle from within the selected time interval.","503137339":"Payout limit","505793554":"last letter","508390614":"Demo Financial STP","510815408":"Letters, numbers, spaces, hyphens only","514031715":"list {{ input_list }} is empty","514776243":"Your {{account_type}} password has been changed.","514948272":"Copy link","518955798":"7. Run Once at Start","520136698":"Boom 500 Index","521872670":"item","522283618":"Digital options trading experience","522703281":"divisible by","523123321":"- 10 to the power of a given number","527329988":"This is a top-100 common password","529056539":"Options","529597350":"If you had any open positions, we have closed them and refunded you.","530953413":"Authorised applications","531114081":"3. Contract Type","531675669":"Euro","535041346":"Max. total stake per day","538228086":"Close-Low","541650045":"Manage {{platform}} password","541700024":"First, enter your driving licence number and the expiry date.","542038694":"Only letters, numbers, space, underscore, and hyphen are allowed for {{label}}.","542305026":"You must also submit a proof of identity.","543413346":"You have no open positions for this asset. To view other open positions, click Go to Reports","543915570":"Forex, stocks, stock indices, cryptocurrencies, synthetic indices","545476424":"Total withdrawals","546534357":"If you select “Deal cancellation”, you’ll be able to cancel your trade within a chosen time frame should the market move against your favour. We’ll charge a small fee for this, but we’ll return your stake amount without profit or loss. If the stop-out amount is reached before the deal cancellation expires, your position will be cancelled automatically and we’ll return your stake amount without profit or loss. While “Deal cancellation” is active:","549479175":"Deriv Multipliers","551569133":"Learn more about trading limits","554410233":"This is a top-10 common password","555351771":"After defining trade parameters and trade options, you may want to instruct your bot to purchase contracts when specific conditions are met. To do that you can use conditional blocks and indicators blocks to help your bot to make decisions.","556264438":"Time interval","559224320":"Our classic “drag-and-drop” tool for creating trading bots, featuring pop-up trading charts, for advanced users.","561982839":"Change your currency","562599414":"This block returns the purchase price for the selected trade type. This block can be used only in the \"Purchase conditions\" root block.","563034502":"We shall try to resolve your complaint within 15 business days. We will inform you of the outcome together with an explanation of our position and propose any remedial measures we intend to take.","563166122":"We shall acknowledge receiving your complaint, review it carefully, and keep you updated on the handling process. We might request further information or clarifications to facilitate the resolution of the complaint.","563652273":"Go to block","565410797":"The below image illustrates how Simple Moving Average Array block works:","566274201":"1. Market","567019968":"A variable is among the most important and powerful components in creating a bot. It is a way to store information, either as text or numbers. The information stored as a variable can be used and changed according to the given instructions. Variables can be given any name, but usually they are given useful, symbolic names so that it is easier to call them during the execution of instructions.","567163880":"Create a {{platform}} password","567755787":"Tax Identification Number is required.","569057236":"In which country was your document issued?","571921777":"Funds protection level","572576218":"Languages","573173477":"Is candle {{ input_candle }} black?","577215477":"count with {{ variable }} from {{ start_number }} to {{ end_number }} by {{ step_size }}","577779861":"Withdrawal","577883523":"4. Awards and orders","578640761":"Call Spread","579529868":"Show all details — including the bottom 2 lines","580431127":"Restart buy/sell on error (disable for better performance): {{ checkbox }}","580665362":"Stays In/Goes Out","580774080":"insert at","581168980":"Legal","582945649":"2 minutes","584028307":"Allow equals","587577425":"Secure my account","587856857":"Want to know more about APIs?","592087722":"Employment status is required.","593459109":"Try a different currency","595080994":"Example: CR123456789","595136687":"Save Strategy","597089493":"Here is where you can decide to sell your contract before it expires. Only one copy of this block is allowed.","597481571":"DISCLAIMER","597707115":"Tell us about your trading experience.","599469202":"{{secondPast}}s ago","602278674":"Verify identity","606240547":"- Natural log","606877840":"Back to today","607807243":"Get candle","609519227":"This is the email address associated with your Deriv account.","609650241":"Infinite loop detected","610537973":"Any information you provide is confidential and will be used for verification purposes only.","611020126":"View address on Blockchain","611786123":"FX-majors (standard/micro lots), FX-minors, Commodities, Cryptocurrencies, Stocks, and Stock Indices","613877038":"Chart","617345387":"If you select \"Reset-Up”, you win the payout if the exit spot is strictly higher than either the entry spot or the spot at reset time.","618520466":"Example of a cut-off document","619268911":"<0>a.The Financial Commission will investigate the validity of the complaint within 5 business days.","619407328":"Are you sure you want to unlink from {{identifier_title}}?","623192233":"Please complete the <0>Appropriateness Test to access your cashier.","623542160":"Exponential Moving Average Array (EMAA)","626175020":"Standard Deviation Up Multiplier {{ input_number }}","626809456":"Resubmit","627292452":"<0>Your Proof of Identity or Proof of Address did not meet our requirements. Please check your email for further instructions.","627814558":"This block returns a value when a condition is true. Use this block within either of the function blocks above.","628193133":"Account ID","629145209":"In case if the \"AND\" operation is selected, the block returns \"True\" only if both given values are \"True\"","632398049":"This block assigns a null value to an item or statement.","634219491":"You have not provided your tax identification number. This information is necessary for legal and regulatory requirements. Please go to <0>Personal details in your account settings, and fill in your latest tax identification number.","636219628":"<0>c.If no settlement opportunity can be found, the complaint will proceed to the determination phase to be handled by the DRC.","639382772":"Please upload supported file type.","640596349":"You have yet to receive any notifications","640730141":"Refresh this page to restart the identity verification process","641420532":"We've sent you an email","642210189":"Please check your email for the verification link to complete the process.","642393128":"Enter amount","642546661":"Upload back of license from your computer","642995056":"Email","643014039":"The trade length of your purchased contract.","644150241":"The number of contracts you have won since you last cleared your stats.","645016681":"Trading frequency in other financial instruments","645902266":"EUR/NZD","647192851":"Contract will be sold at the prevailing market price when the request is received by our servers. This price may differ from the indicated price.","647745382":"Input List {{ input_list }}","649317411":"On the basis of the information provided in relation to your knowledge and experience, we consider that the investments available via this website are not appropriate for you.<0/><1/>","649923867":"Adds a sign to a number to create a barrier offset. (deprecated)","651284052":"Low Tick","651684094":"Notify","652041791":"To create a Deriv X real account, create a Deriv real account first.","652298946":"Date of birth","654264404":"Up to 1:30","654507872":"True-False","654924603":"Martingale","655937299":"We’ll update your limits. Click <0>Accept to acknowledge that you are fully responsible for your actions, and we are not liable for any addiction or loss.","657325150":"This block is used to define trade options within the Trade parameters root block. Some options are only applicable for certain trade types. Parameters such as duration and stake are common among most trade types. Prediction is used for trade types such as Digits, while barrier offsets are for trade types that involve barriers such as Touch/No Touch, Ends In/Out, etc.","657444253":"Sorry, account opening is unavailable in your region.","659482342":"Please remember that it is your responsibility to keep your answers accurate and up to date. You can update your personal details at any time in your account settings.","660481941":"To access your mobile apps and other third-party apps, you'll first need to generate an API token.","660991534":"Finish","661759508":"On the basis of the information provided in relation to your knowledge and experience, we consider that the investments available via this website are not appropriate for you.<0/><0/>","662578726":"Available","662609119":"Download the MT5 app","665089217":"Please submit your <0>proof of identity to authenticate your account and access your Cashier.","665777772":"XLM/USD","665872465":"In the example below, the opening price is selected, which is then assigned to a variable called \"op\".","666724936":"Please enter a valid ID number.","668344562":"Synthetics, FX majors (standard/micro lots), FX minors, basket indices, commodities, and cryptocurrencies","672008428":"ZEC/USD","673915530":"Jurisdiction and choice of law","674973192":"Use this password to log in to your Deriv MT5 accounts on the desktop, web, and mobile apps.","676159329":"Could not switch to default account.","677918431":"Market: {{ input_market }} > {{ input_submarket }} > {{ input_symbol }}","678517581":"Units","680334348":"This block was required to correctly convert your old strategy.","680478881":"Total withdrawal limit","681926004":"Example of a blurry document","682056402":"Standard Deviation Down Multiplier {{ input_number }}","684282133":"Trading instruments","685391401":"If you're having trouble signing in, let us know via <0>chat","687212287":"Amount is a required field.","689137215":"Purchase price","691956534":"<0>You have added a {{currency}} account.<0> Make a deposit now to start trading.","693396140":"Deal cancellation (expired)","696870196":"- Open time: the opening time stamp","697630556":"This market is presently closed.","698748892":"Let’s try that again","699159918":"1. Filing complaints","700259824":"Account currency","701034660":"We are still processing your withdrawal request.<0 />Please wait for the transaction to be completed before deactivating your account.","701462190":"Entry spot","701647434":"Search for string","705299518":"Next, upload the page of your passport that contains your photo.","706727320":"Binary options trading frequency","706755289":"This block performs trigonometric functions.","707662672":"{{unblock_date}} at {{unblock_time}}","708055868":"Driving licence number","710123510":"repeat {{ while_or_until }} {{ boolean }}","711999057":"Successful","712101776":"Take a photo of your passport photo page","712635681":"This block gives you the selected candle value from a list of candles. You can choose from open price, close price, high price, low price, and open time.","713054648":"Sending","714080194":"Submit proof","714746816":"MetaTrader 5 Windows app","715841616":"Please enter a valid phone number (e.g. +15417541234).","716428965":"(Closed)","718504300":"Postal/ZIP code","720293140":"Log out","720519019":"Reset my password","721011817":"- Raise the first number to the power of the second number","723045653":"You'll log in to your Deriv account with this email address.","723961296":"Manage password","724203548":"You can send your complaint to the <0>European Commission's Online Dispute Resolution (ODR) platform. This is not applicable to UK clients.","728042840":"To continue trading with us, please confirm where you live.","728824018":"Spanish Index","729651741":"Choose a photo","730473724":"This block performs the \"AND\" or the \"OR\" logic operation with the given values.","731382582":"BNB/USD","734390964":"Insufficient balance","734881840":"false","742676532":"Trade CFDs on forex, derived indices, cryptocurrencies, and commodities with high leverage.","744110277":"Bollinger Bands Array (BBA)","745656178":"Use this block to sell your contract at the market price.","745674059":"Returns the specific character from a given string of text according to the selected option. ","746112978":"Your computer may take a few seconds to update","750886728":"Switch to your real account to submit your documents","751692023":"We <0>do not guarantee a refund if you make a wrong transfer.","752024971":"Reached maximum number of digits","752633544":"You will need to submit proof of identity and address once you reach certain thresholds","752992217":"This block gives you the selected constant values.","753088835":"Default","753184969":"In providing our services to you, we are required to obtain information from you in order to assess whether a given product or service is appropriate for you (that is, whether you possess the experience and knowledge to understand the risks involved).<0/><1/>","753727511":"Type","755867072":"{{platform_name_mt5}} is not available in {{country}}","756152377":"SMA places equal weight to the entire distribution of values.","758003269":"make list from text","759783233":"For more information and assistance to counselling and support services, please visit <0>begambleaware.org.","760528514":"Please note that changing the value of \"i\" won't change the value of the original item in the list","761576760":"Fund your account to start trading.","762185380":"<0>Multiply returns by <0>risking only what you put in.","762871622":"{{remaining_time}}s","763019867":"Your Gaming account is scheduled to be closed","764366329":"Trading limits","764540515":"Stopping the bot is risky","766317539":"Language","770171141":"Go to {{hostname}}","772632060":"Do not send any other currency to the following address. Otherwise, you'll lose funds.","773091074":"Stake:","773309981":"Oil/USD","773336410":"Tether is a blockchain-enabled platform designed to facilitate the use of fiat currencies in a digital manner.","775679302":"{{pending_withdrawals}} pending withdrawal(s)","776085955":"Strategies","781924436":"Call Spread/Put Spread","783974693":"Avoid recent years","784311461":"Exponential Moving Average (EMA)","784583814":"Linked to your computer","785969488":"Jump 75 Index","787116142":"The multiplier amount used to increase your stake if you’re losing a trade. Value must be higher than 2.","787727156":"Barrier","788005234":"NA","793526589":"To file a complaint about our service, send an email to <0>complaints@deriv.com and state your complaint in detail. Please submit any relevant screenshots of your trading or system for our better understanding.","793531921":"Our company is one of the oldest and most reputable online trading companies in the world. We are committed to treat our clients fairly and provide them with excellent service.<0/><1/>Please provide us with feedback on how we can improve our services to you. Rest assured that you will be heard, valued, and treated fairly at all times.","794682658":"Copy the link to your phone","795859446":"Password saved","797007873":"Follow these steps to recover camera access:","797500286":"negative","800228448":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}} and {{legal_entity_name_fx}}.","800521289":"Your personal details are incomplete","801430087":"A link can contain the word \"Deriv\" and still be fake.","802436811":"View transaction details","802438383":"New proof of address is needed","802556390":"seconds","802989607":"Drag your XML file here","803500173":"Initial stake","807499069":"Financial commission complaints procedure","808323704":"You can also use \"Compare\" and \"Logic operation\" blocks to make test variables.","811876954":"You may transfer between your Deriv fiat, cryptocurrency, {{platform_name_mt5}}, and {{platform_name_dxtrade}} accounts.","816580787":"Welcome back! Your messages have been restored.","816738009":"<0/><1/>You may also raise your unresolved dispute to the <2>Office of the Arbiter for Financial Services.","818447476":"Switch account?","820877027":"Please verify your proof of identity","823186089":"A block that can contain text.","824797920":"Is list empty?","826511719":"USD/SEK","827688195":"Disable Block","828219890":"then","828602451":"Returns the list of tick values in string format","830164967":"Last name","830993327":"No current transactions available","832217983":"40 transactions or more in the past 12 months","832398317":"Sell Error","832588873":"Order execution","832721563":"If you select \"Low Tick\", you win the payout if the selected tick is the lowest among the next five ticks.","834966953":"1551661986 seconds since Jan 01 1970 (UTC) translates to 03/04/2019 @ 1:13am (UTC).","835058671":"Total buy price","835350845":"Add another word or two. Uncommon words are better.","836097457":"I am interested in trading but have very little experience.","837066896":"Your document is being reviewed, please check back in 1-3 days.","839618971":"ADDRESS","839805709":"To smoothly verify you, we need a better photo","841434703":"Disable stack","841543189":"View transaction on Blockchain","843333337":"You can only make deposits. Please complete the <0>financial assessment to unlock withdrawals.","845213721":"Logout","845304111":"Slow EMA Period {{ input_number }}","847888634":"Please withdraw all your funds.","850582774":"Please update your personal info","851054273":"If you select \"Higher\", you win the payout if the exit spot is strictly higher than the barrier.","851264055":"Creates a list with a given item repeated for a specific number of times.","851508288":"This block constrains a given number within a set range.","852583045":"Tick List String","854399751":"Digit code must only contain numbers.","854630522":"Choose a cryptocurrency account","857363137":"Volatility 300 (1s) Index","857445204":"Deriv currently supports withdrawals of Tether eUSDT to Ethereum wallet. To ensure a successful transaction, enter a wallet address compatible with the tokens you wish to withdraw. <0>Learn more","857986403":"do something","860319618":"Tourism","862283602":"Phone number*","863328851":"Proof of identity","864610268":"First, enter your {{label}} and the expiry date.","864957760":"Math Number Positive","865424952":"High-to-Low","865642450":"2. Logged in from a different browser","866496238":"Make sure your license details are clear to read, with no blur or glare","868826608":"Excluded from {{brand_website_name}} until","869823595":"Function","869993298":"Minimum withdrawal","872549975":"You have {{number}} transfers remaining for today.","872661442":"Are you sure you want to update email <0>{{prev_email}} to <1>{{changed_email}}?","872817404":"Entry Spot Time","873166343":"1. 'Log' displays a regular message.","874461655":"Scan the QR code with your phone","874484887":"Take profit must be a positive number.","875532284":"Restart process on a different device","876086855":"Complete the financial assessment form","876292912":"Exit","879014472":"Reached maximum number of decimals","888274063":"Town/City","890299833":"Go to Reports","891097078":"USD Index","891337947":"Select country","892341141":"Your trading statistics since: {{date_time}}","893117915":"Variable","893963781":"Close-to-Low","893975500":"You do not have any recent bots","894191608":"<0>c.We must award the settlement within 28 days of when the decision is reached.","898457777":"You have added a Deriv Financial account.","902045490":"3 minutes","903429103":"In candles list read {{ candle_property }} # from end {{ input_number }}","904696726":"API token","905134118":"Payout:","905227556":"Strong passwords contain at least 8 characters, combine uppercase and lowercase letters and numbers.","905564365":"MT5 CFDs","906049814":"We’ll review your documents and notify you of its status within 5 minutes.","907680782":"Proof of ownership verification failed","910888293":"Too many attempts","915735109":"Back to {{platform_name}}","918447723":"Real","920125517":"Add demo account","921901739":"- your account details of the bank linked to your account","924046954":"Upload a document showing your name and bank account number or account details.","926813068":"Fixed/Variable","929608744":"You are unable to make withdrawals","930346117":"Capitalization doesn't help very much","930546422":"Touch","933126306":"Enter some text here","933193610":"Only letters, periods, hyphens, apostrophes, and spaces, please.","934835052":"Potential profit","934932936":"PERSONAL","936766426":"You are limited to one fiat account. You won’t be able to change your account currency if you have already made your first deposit.","937237342":"Strategy name cannot be empty","937682366":"Upload both of these documents to prove your identity.","937831119":"Last name*","937992258":"Table","938500877":"{{ text }}. <0>You can view the summary of this transaction in your email.","938988777":"High barrier","940950724":"This trade type is currently not supported on {{website_name}}. Please go to <0>Binary.com for details.","943535887":"Please close your positions in the following Deriv MT5 account(s):","944499219":"Max. open positions","945532698":"Contract sold","946204249":"Read","946841802":"A white (or green) candle indicates that the open price is lower than the close price. This represents an upward movement of the market price.","946944859":"Hit the button below and we'll send you an email with a link. Click that link to verify your withdrawal request.","947046137":"Your withdrawal will be processed within 24 hours","947363256":"Create list","947549448":"Total assets in your Deriv, {{platform_name_mt5}} and {{platform_name_dxtrade}} real accounts.","947758334":"City is required","947914894":"Top up  <0>","948156236":"Create {{type}} password","948545552":"150+","949859957":"Submit","952927527":"Regulated by the Malta Financial Services Authority (MFSA) (licence no. IS/70156)","955352264":"Trade on {{platform_name_dxtrade}}","956448295":"Cut-off image detected","957182756":"Trigonometric functions","958430760":"In/Out","959031082":"set {{ variable }} to MACD Array {{ dropdown }} {{ dummy }}","960201789":"3. Sell conditions","961692401":"Bot","966457287":"set {{ variable }} to Exponential Moving Average {{ dummy }}","968576099":"Up/Down","969987233":"Win up to maximum payout if exit spot is between lower and upper barrier, in proportion to the difference between exit spot and lower barrier.","970915884":"AN","974888153":"High-Low","975668699":"I confirm and accept {{company}} 's <0>Terms and Conditions","975950139":"Country of Residence","977929335":"Go to my account settings","981138557":"Redirect","981965437":"Scan the QR code below with your 2FA app. We recommend <0>Authy or <1>Google Authenticator.","982146443":"WhatsApp","982402892":"First line of address","982829181":"Barriers","987224688":"How many trades have you placed with other financial instruments in the past 12 months?","987900242":"Total assets in your Deriv, {{platform_name_mt5}} and {{platform_name_dxtrade}} demo accounts.","988361781":"You have no trading activity yet.","988934465":"When prompted, you must enable camera access to continue","992294492":"Your postal code is invalid","993827052":"Choosing this jurisdiction will give you a Financial STP account. Your trades will go directly to the market and have tighter spreads.","995563717":"not {{ boolean }}","999008199":"text","1001160515":"Sell","1001749987":"You’ll get a warning, named margin call, if your account balance drops down close to the stop out level.","1003876411":"Should start with letter or number and may contain a hyphen, period and slash.","1004127734":"Send email","1006458411":"Errors","1006664890":"Silent","1009032439":"All time","1010198306":"This block creates a list with strings and numbers.","1010337648":"We were unable to verify your proof of ownership.","1012102263":"You will not be able to log in to your account until this date (up to 6 weeks from today).","1015201500":"Define your trade options such as duration and stake.","1016220824":"You need to switch to a real money account to use this feature.<0/>You can do this by selecting a real account from the <1>Account Switcher.","1018803177":"standard deviation","1019265663":"You have no transactions yet.","1019508841":"Barrier 1","1022934784":"1 minute","1023237947":"1. In the example below, the instructions are repeated as long as the value of x is less than or equal to 10. Once the value of x exceeds 10, the loop is terminated.","1023643811":"This block purchases contract of a specified type.","1023795011":"Even/Odd","1024205076":"Logic operation","1025887996":"Negative Balance Protection","1026046972":"Please enter a payout amount that's lower than {{max_payout}}.","1027098103":"Leverage gives you the ability to trade a larger position using your existing capital. Leverage varies across different symbols.","1028211549":"All fields are required","1028758659":"Citizenship*","1029164365":"We presume that you possess the experience, knowledge, and expertise to make your own investment decisions and properly assess the risk involved.","1030021206":"change {{ variable }} by {{ number }}","1031602624":"We've sent a secure link to %{number}","1031731167":"Pound Sterling","1032173180":"Deriv","1032907147":"AUD/NZD","1035506236":"Choose a new password","1036116144":"Speculate on the price movement of an asset without actually owning it.","1036353276":"Please create another Deriv or {{platform_name_mt5}} account.","1036867749":"The desired duration, stake, prediction, and/or barrier(s) for the contract is defined here.","1038575777":"Change password","1039755542":"Use a few words, avoid common phrases","1040677897":"To continue trading, you must also submit a proof of address.","1041001318":"This block performs the following operations on a given list: sum, minimum, maximum, average, median, mode, antimode, standard deviation, random item.","1041620447":"If you are unable to scan the QR code, you can manually enter this code instead:","1042659819":"You have an account that needs action","1043790274":"There was an error","1044230481":"This is an Ethereum ({{token}}) only address, please do not use {{prohibited_token}}.","1044540155":"100+","1044599642":"<0> has been credited into your {{platform}} {{title}} account.","1045704971":"Jump 150 Index","1045782294":"Click the <0>Change password button to change your Deriv password.","1047389068":"Food Services","1048947317":"Sorry, this app is unavailable in {{clients_country}}.","1049384824":"Rise","1050128247":"I confirm that I have verified the payment agent’s transfer information.","1050844889":"Reports","1052137359":"Family name*","1052779010":"You are on your demo account","1053153674":"Jump 50 Index","1053159279":"Level of education","1055313820":"No document detected","1056381071":"Return to trade","1056821534":"Are you sure?","1057216772":"text {{ input_text }} is empty","1057749183":"Two-factor authentication (2FA)","1057765448":"Stop out level","1057904606":"The concept of the D’Alembert Strategy is said to be similar to the Martingale Strategy where you will increase your contract size after a loss. With the D’Alembert Strategy, you will also decrease your contract size after a successful trade.","1060231263":"When are you required to pay an initial margin?","1061308507":"Purchase {{ contract_type }}","1061561084":"Switch to your real account to create a Deriv MT5 {{account_title}} {{type_title}} account.","1062536855":"Equals","1065353420":"110+","1065498209":"Iterate (1)","1069347258":"The verification link you used is invalid or expired. Please request for a new one.","1069576070":"Purchase lock","1070624871":"Check proof of address document verification status","1076006913":"Profit/loss on the last {{item_count}} contracts","1077515534":"Date to","1078221772":"Leverage prevents you from opening large positions.","1080068516":"Action","1080990424":"Confirm","1082158368":"*Maximum account cash balance","1082406746":"Please enter a stake amount that's at least {{min_stake}}.","1083781009":"Tax identification number*","1083826534":"Enable Block","1086118495":"Traders Hub","1088138125":"Tick {{current_tick}} - ","1089085289":"Mobile number","1096078516":"We’ll review your documents and notify you of its status within 3 days.","1096175323":"You’ll need a Deriv account","1098147569":"Purchase commodities or shares of a company.","1098622295":"\"i\" starts with the value of 1, and it will be increased by 2 at every iteration. The loop will repeat until \"i\" reaches the value of 12, and then the loop is terminated.","1100870148":"To learn more about account limits and how they apply, please go to the <0>Help Centre.","1101560682":"stack","1101712085":"Buy Price","1102420931":"Next, upload the front and back of your driving licence.","1102995654":"Calculates Exponential Moving Average (EMA) list from a list of values with a period","1103309514":"Target","1103452171":"Cookies help us to give you a better experience and personalised content on our site.","1104912023":"Pending verification","1107474660":"Submit proof of address","1107555942":"To","1109217274":"Success!","1110102997":"Statement","1112582372":"Interval duration","1113119682":"This block gives you the selected candle value from a list of candles.","1113292761":"Less than 8MB","1113433728":"Resubmit your proof of identity and address","1117863275":"Security and safety","1118294625":"You have chosen to exclude yourself from trading on our website until {{exclusion_end}}. If you are unable to place a trade or deposit after your self-exclusion period, please contact us via live chat.","1119887091":"Verification","1119986999":"Your proof of address was submitted successfully","1120985361":"Terms & conditions updated","1122910860":"Please complete your <0>financial assessment.","1123927492":"You have not selected your account currency","1125090693":"Must be a number","1126075317":"Add your Deriv MT5 <0>{{account_type_name}} STP account under Deriv (FX) Ltd regulated by Labuan Financial Services Authority (Licence no. MB/18/0024).","1126934455":"Length of token name must be between 2 and 32 characters.","1127149819":"Make sure§","1128139358":"How many CFD trades have you placed in the past 12 months?","1128404172":"Undo","1129124569":"If you select \"Under\", you will win the payout if the last digit of the last tick is less than your prediction.","1129842439":"Please enter a take profit amount.","1130744117":"We shall try to resolve your complaint within 10 business days. We will inform you of the outcome together with an explanation of our position and propose any remedial measures we intend to take.","1130791706":"N","1133651559":"Live chat","1134879544":"Example of a document with glare","1139483178":"Enable stack","1143730031":"Direction is {{ direction_type }}","1144028300":"Relative Strength Index Array (RSIA)","1145927365":"Run the blocks inside after a given number of seconds","1146064568":"Go to Deposit page","1147269948":"Barrier cannot be zero.","1147625645":"Please proceed to withdraw all your funds from your account before <0>30 November 2021.","1151964318":"both sides","1152294962":"Upload the front of your driving licence.","1154021400":"list","1154239195":"Title and name","1155011317":"This block converts the date and time to the number of seconds since the Unix Epoch (1970-01-01 00:00:00).","1158678321":"<0>b.The Head of the Dispute Resolution Committee (DRC) will contact both you and us within 5 business days to obtain all necessary information and see if there is a chance to settle the complaint during the investigation phase.","1160761178":"No payout if exit spot is below or equal to the lower barrier.","1161924555":"Please select an option","1163836811":"Real Estate","1164773983":"Take profit and/or stop loss are not available while deal cancellation is active.","1166128807":"Choose one of your accounts or add a new cryptocurrency account","1166377304":"Increment value","1168029733":"Win payout if exit spot is also equal to entry spot.","1169201692":"Create {{platform}} password","1170228717":"Stay on {{platform_name_trader}}","1174542625":"- Find the chat ID property in the response, and copy the value of the id property","1174748431":"Payment channel","1175183064":"Vanuatu","1176926166":"Experience with trading other financial instruments","1177396776":"If you select \"Asian Fall\", you will win the payout if the last tick is lower than the average of the ticks.","1177723589":"There are no transactions to display","1178582280":"The number of contracts you have lost since you last cleared your stats.","1178800778":"Take a photo of the back of your license","1178942276":"Please try again in a minute.","1179704370":"Please enter a take profit amount that's higher than the current potential profit.","1180619731":"Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts, up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts, and up to {{ allowed_dxtrade }} transfers between your Deriv and {{platform_name_dxtrade}} accounts.","1181396316":"This block gives you a random number from within a set range","1181770592":"Profit/loss from selling","1183007646":"- Contract type: the name of the contract type such as Rise, Fall, Touch, No Touch, etс.","1188316409":"To receive your funds, contact the payment agent with the details below","1188980408":"5 minutes","1189368976":"Please complete your personal details before you verify your identity.","1189886490":"Please create another Deriv, {{platform_name_mt5}}, or {{platform_name_dxtrade}} account.","1191429031":"Please click on the link in the email to change your <0>{{platform_name_dxtrade}} password.","1191644656":"Predict the market direction and select either “Up” or “Down” to open a position. We will charge a commission when you open a position.","1192708099":"Duration unit","1195393249":"Notify {{ notification_type }} with sound: {{ notification_sound }} {{ input_message }}","1196006480":"Profit threshold","1197326289":"You are no longer able to trade digital options on any of our platforms. Also, you can’t make deposits into your Options account.","1198368641":"Relative Strength Index (RSI)","1199281499":"Last Digits List","1201533528":"Contracts won","1201773643":"numeric","1203297580":"This block sends a message to a Telegram channel.","1204223111":"In this example, the open prices from a list of candles are assigned to a variable called \"candle_list\".","1206227936":"How to mask your card?","1206821331":"Armed Forces","1208729868":"Ticks","1208903663":"Invalid token","1211912982":"Bot is starting","1214893428":"Account creation is currently unavailable for mobile. Please log in with your computer to create a new account.","1216408337":"Self-Employed","1217159705":"Bank account number","1217481729":"Tether as an ERC20 token (eUSDT) is a version of Tether that is hosted on Ethereum.","1218546232":"What is Fiat onramp?","1219844088":"do %1","1221250438":"To enable withdrawals, please submit your <0>Proof of Identity (POI) and <1>Proof of Address (POA) and also complete the <2>financial assessment in your account settings.","1222096166":"Deposit via bank wire, credit card, and e-wallet","1222521778":"Making deposits and withdrawals is difficult.","1222544232":"We’ve sent you an email","1225150022":"Number of assets","1227074958":"random fraction","1227240509":"Trim spaces","1228534821":"Some currencies may not be supported by payment agents in your country.","1229883366":"Tax identification number","1230884443":"State/Province (optional)","1231282282":"Use only the following special characters: {{permitted_characters}}","1232291311":"Maximum withdrawal remaining","1232353969":"0-5 transactions in the past 12 months","1233300532":"Payout","1234292259":"Source of wealth","1234764730":"Upload a screenshot of your name and email address from the personal details section.","1235426525":"50%","1237330017":"Pensioner","1238311538":"Admin","1239760289":"Complete your trading assessment","1239940690":"Restarts the bot when an error is encountered.","1240027773":"Please Log in","1241238585":"You may transfer between your Deriv fiat, cryptocurrency, and {{platform_name_mt5}} accounts.","1243064300":"Local","1246207976":"Enter the authentication code generated by your 2FA app:","1246443703":"Financial Assessment","1246880072":"Select issuing country","1247280835":"Our cryptocurrency cashier is temporarily down due to system maintenance. You can make cryptocurrency deposits and withdrawals in a few minutes when the maintenance is complete.","1248018350":"Source of income","1248161058":"You can create your account on {{real_account_unblock_date}}. <0/>Please click ‘OK’ to continue.","1248940117":"<0>a.The decisions made by the DRC are binding on us. DRC decisions are binding on you only if you accept them.","1250495155":"Token copied!","1254565203":"set {{ variable }} to create list with","1255909792":"last","1255963623":"To date/time {{ input_timestamp }} {{ dummy }}","1258097139":"What could we do to improve?","1258198117":"positive","1259598687":"GBP/JPY","1260259925":"Phone is not in a proper format.","1263387702":"All {{count}} account types use market execution. This means you agree with the broker's price in advance and will place orders at the broker's price.","1264096613":"Search for a given string","1265704976":"","1270581106":"If you select \"No Touch\", you win the payout if the market never touches the barrier at any time during the contract period.","1272012156":"GBP/CHF","1272337240":"Days","1272681097":"Hours","1274819385":"3. Complaints and Disputes","1275474387":"Quick","1281045211":"Sorts the items in a given list, by their numeric or alphabetical value, in either ascending or descending order.","1281290230":"Select","1282951921":"Only Downs","1284522768":"If \"Loss\" is selected, it will return \"True\" if your last trade was unsuccessful. Otherwise, it will return an empty string.","1286094280":"Withdraw","1286507651":"Close identity verification screen","1288965214":"Passport","1289646209":"Margin call","1290525720":"Example: ","1291887623":"Digital options trading frequency","1292188546":"Reset Deriv MT5 investor password","1292891860":"Notify Telegram","1293660048":"Max. total loss per day","1294756261":"This block creates a function, which is a group of instructions that can be executed at any time. Place other blocks in here to perform any kind of action that you need in your strategy. When all the instructions in a function have been carried out, your bot will continue with the remaining blocks in your strategy. Click the “do something” field to give it a name of your choice. Click the plus icon to send a value (as a named variable) to your function.","1295284664":"Please accept our <0>updated Terms and Conditions to proceed.","1296380713":"Close my contract","1299479533":"8 hours","1300576911":"Please resubmit your proof of address or we may restrict your account.","1302691457":"Occupation","1303016265":"Yes","1303530014":"We’re processing your withdrawal.","1304083330":"copy","1304272843":"Please submit your proof of address.","1304620236":"Enable camera","1304788377":"<0/><1/>If your complaint relates to our data processing practices, you can submit a formal complaint to the <2>Information and Data Protection Commissioner (Malta) on their website or make a complaint to any supervisory authority within the European Union.","1305217290":"Upload the back of your identity card.","1308625834":"Sets the default time interval for blocks that read list of candles.","1309017029":"Enabling this allows you to save your blocks as one collection which can be easily integrated into other bots.","1309044871":"Returns the value of the latest tick in string format","1310483610":"Results for \"{{ search_term }}\"","1311680770":"payout","1311799109":"We do not support Binance Smart Chain tokens to deposit, please use only Ethereum ({{token}}).","1312767038":"Exit Trader's hub","1313167179":"Please log in","1313302450":"The bot will stop trading if your total loss exceeds this amount.","1316216284":"You can use this password for all your {{platform}} accounts.","1319217849":"Check your mobile","1320750775":"Front and back","1322804930":"Restart the process on the latest version of Google Chrome","1323327633":"Our complaints process comprises the following 4 steps:","1323476617":"Changes the capitalisation of a string of text to Upper case, Lower case, Title case.","1323996051":"Profile","1324110809":"Address information","1324922837":"2. The new variable will appear as a block under Set variable.","1327181172":"Financial Vanuatu","1327494533":"{{sell_value}} (Sell)","1329136554":"Jump 200 Index","1329325646":"The content of this block is called on every tick","1331199417":"Please enter the correct format. ","1331367811":"Client account number","1332168410":"Learn more","1332168769":"Disconnect","1333576137":"Please update your {{details}} to continue.","1333839457":"Submit identity card (front)","1334326985":"It may take a few minutes to arrive","1335967988":"Notice","1337846406":"This block gives you the selected candle value from a list of candles within the selected time interval.","1337864666":"Photo of your document","1338496204":"Ref. ID","1341840346":"View in Journal","1346204508":"Take profit","1346339408":"Managers","1347071802":"{{minutePast}}m ago","1348009461":"Please close your positions in the following Deriv X account(s):","1349133669":"Try changing your search criteria.","1349289354":"Great, that's everything we need","1349295677":"in text {{ input_text }} get substring from {{ position1 }} {{ index1 }} to {{ position2 }} {{ index2 }}","1351906264":"This feature is not available for payment agents.","1353197182":"Please select","1354288636":"Based on your answers, it looks like you have insufficient knowledge and experience in trading CFDs. CFD trading is risky and you could potentially lose all of your capital.<0/><0/>","1355250245":"{{ calculation }} of list {{ input_list }}","1356574493":"Returns a specific portion of a given string of text.","1356607862":"Deriv password","1357129681":"{{num_day}} days {{num_hour}} hours {{num_minute}} minutes","1357213116":"Identity card","1358543466":"Not available","1359424217":"You have sold this contract at <0 />","1360929368":"Add a Deriv account","1362578283":"High","1363060668":"Your trading statistics since:","1363675688":"Duration is a required field.","1364958515":"Stocks","1366244749":"Limits","1367023655":"To ensure your loss does not exceed your stake, your contract will be closed automatically when your loss equals to <0/>.","1367488817":"4. Restart trading conditions","1367990698":"Volatility 10 Index","1369709538":"Our terms of use","1371193412":"Cancel","1371555192":"Choose your preferred payment agent and enter your withdrawal amount. If your payment agent is not listed, <0>search for them using their account number.","1371641641":"Open the link on your mobile","1371911731":"Financial products in the EU are offered by {{legal_entity_name}}, licensed as a Category 3 Investment Services provider by the Malta Financial Services Authority (<0>Licence no. IS/70156).","1374627690":"Max. account balance","1376329801":"Last 60 days","1378419333":"Ether","1383017005":"You have switched accounts.","1384127719":"You should enter {{min}}-{{max}} numbers.","1384222389":"Please submit valid identity documents to unlock the cashier.","1385418910":"Please set a currency for your existing real account before creating another account.","1387503299":"Log in","1389197139":"Import error","1390792283":"Trade parameters","1391174838":"Potential payout:","1392966771":"Mrs","1392985917":"This is similar to a commonly used password","1393559748":"Invalid date/time: {{ datetime_string }}","1393901361":"There’s an app for that","1393903598":"if true {{ return_value }}","1396179592":"Commission","1396417530":"Bear Market Index","1397628594":"Insufficient funds","1399620764":"We're legally obliged to ask for your financial information.","1400341216":"We’ll review your documents and notify you of its status within 1 to 3 days.","1400637999":"(All fields are required)","1400732866":"View from camera","1400962248":"High-Close","1402208292":"Change text case","1403376207":"Update my details","1405584799":"with interval: {{ candle_interval_type }}","1408844944":"Click the plus icon to extend the functionality of this block.","1410320737":"Go to Deriv MT5 dashboard","1412535872":"You can check the result of the last trade with this block. It can only be placed within the \"Restart trading conditions\" root block.","1413047745":"Assigns a given value to a variable","1413359359":"Make a new transfer","1414205271":"prime","1415006332":"get sub-list from first","1415974522":"If you select \"Differs\", you will win the payout if the last digit of the last tick is not the same as your prediction.","1417558007":"Max. total loss over 7 days","1417914636":"Login ID","1418115525":"This block repeats instructions as long as a given condition is true.","1421749665":"Simple Moving Average (SMA)","1422060302":"This block replaces a specific item in a list with another given item. It can also insert the new item in the list at a specific position.","1422129582":"All details must be clear — nothing blurry","1423082412":"Last Digit","1424741507":"See more","1424779296":"If you've recently used bots but don't see them in this list, it may be because you:","1430396558":"5. Restart buy/sell on error","1430632931":"To get trading, please confirm who you are, and where you live.","1433367863":"Sorry, an error occured while processing your request.","1434382099":"Displays a dialog window with a message","1434976996":"Announcement","1435363248":"This block converts the number of seconds since the Unix Epoch to a date and time format such as 2019-08-01 00:00:00.","1435380105":"Minimum deposit","1437396005":"Add comment","1438247001":"A professional client receives a lower degree of client protection due to the following.","1438340491":"else","1439168633":"Stop loss:","1441208301":"Total<0 />profit/loss","1442747050":"Loss amount: <0>{{profit}}","1442840749":"Random integer","1443478428":"Selected proposal does not exist","1445592224":"You accidentally gave us another email address (Usually a work or a personal one instead of the one you meant).","1449462402":"In review","1452260922":"Too many failed attempts","1452941569":"This block delays execution for a given number of seconds. You can place any blocks within this block. The execution of other blocks in your strategy will be paused until the instructions in this block are carried out.","1453317405":"This block gives you the balance of your account either as a number or a string of text.","1453362009":"Deriv Accounts","1454648764":"deal reference id","1454865058":"Do not enter an address linked to an ICO purchase or crowdsale. If you do, the ICO tokens will not be credited into your account.","1455741083":"Upload the back of your driving licence.","1457341530":"Your proof of identity verification has failed","1457603571":"No notifications","1461323093":"Display messages in the developer’s console.","1464190305":"This block will transfer the control back to the Purchase conditions block, enabling you to purchase another contract without manually stopping and restarting your bot.","1464253511":"You already have an account for each of the cryptocurrencies available on {{deriv}}.","1465084972":"How much experience do you have with other financial instruments?","1465919899":"Pick an end date","1466430429":"Should be between {{min_value}} and {{max_value}}","1466900145":"Doe","1467017903":"This market is not yet available on {{platform_name_trader}}, but it is on {{platform_name_smarttrader}}.","1467421920":"with interval: %1","1467661678":"Cryptocurrency trading","1468308734":"This block repeats instructions as long as a given condition is true","1468419186":"Deriv currently supports withdrawals of Tether USDT to Omni wallet. To ensure a successful transaction, enter a wallet address compatible with the tokens you wish to withdraw. <0>Learn more","1468937050":"Trade on {{platform_name_trader}}","1469150826":"Take Profit","1469764234":"Cashier Error","1469814942":"- Division","1470319695":"Returns either True or False","1471070549":"Can contract be sold?","1471741480":"Severe error","1475513172":"Size","1476301886":"Similar to SMA, this block gives you the entire SMA line containing a list of all values for a given period.","1478030986":"Create or delete API tokens for trading and withdrawals","1481977420":"Please help us verify your withdrawal request.","1484336612":"This block is used to either terminate or continue a loop, and can be placed anywhere within a loop block.","1487086154":"Your documents were submitted successfully","1488548367":"Upload again","1490583127":"DBot isn't quite ready for real accounts","1491392301":"<0>Sold for: {{sold_for}}","1492686447":"Your MT5 Financial STP account will be opened through Deriv (FX) Ltd. All trading in this account is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA). None of your other accounts, including your Deriv account, is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA).","1493673429":"Change email","1493866481":"Run Deriv X on your browser","1496810530":"GBP/AUD","1497773819":"Deriv MT5 accounts","1499074768":"Add a real Deriv Multipliers account","1499080621":"Tried to perform an invalid operation.","1501691227":"Add Your Deriv MT5 <0>{{account_type_name}} account under Deriv (V) Ltd, regulated by the Vanuatu Financial Services Commission.","1502039206":"Over {{barrier}}","1502325741":"Your password cannot be the same as your email address.","1503618738":"- Deal reference ID: the reference ID of the contract","1505420815":"No payment agents found for your search","1505898522":"Download stack","1509570124":"{{buy_value}} (Buy)","1509678193":"Education","1510075920":"Gold/USD","1510357015":"Tax residence is required.","1510735345":"This block gives you a list of the last digits of the last 1000 tick values.","1512469749":"In the above example it is assumed that variable candle_open_price is processed somewhere within other blocks.","1516537408":"You can no longer trade on Deriv or deposit funds into your account.","1516559721":"Please select one file only","1516676261":"Deposit","1517503814":"Drop file or click here to upload","1519124277":"Derived SVG","1519336051":"Try a different phone number","1520332426":"Net annual income","1524636363":"Authentication failed","1527251898":"Unsuccessful","1527906715":"This block adds the given number to the selected variable.","1529440614":"Use the <0>Deriv password to log in to {{brand_website_name}}, {{platform_name_go}}, {{platform_name_trader}}, {{platform_name_smarttrader}}, and {{platform_name_dbot}}.","1531017969":"Creates a single text string from combining the text value of each attached item, without spaces in between. The number of items can be added accordingly.","1533177906":"Fall","1534569275":"As part of the changes in our markets, we will be closing our UK clients’ accounts.","1534796105":"Gets variable value","1537711064":"You need to make a quick identity verification before you can access the Cashier. Please go to your account settings to submit your proof of identity.","1539108340":"EUR Index","1540585098":"Decline","1541969455":"Both","1544642951":"If you select \"Only Ups\", you win the payout if consecutive ticks rise successively after the entry spot. No payout if any tick falls or is equal to any of the previous ticks.","1547148381":"That file is too big (only up to 8MB allowed). Please upload another file.","1548765374":"Verification of document number failed","1549098835":"Total withdrawn","1551172020":"AUD Basket","1552162519":"View onboarding","1552918367":"Send only {{currency}} ({{currency_symbol}}) to this address.","1557426040":"Demo Derived SVG","1557682012":"Account Settings","1558972889":"set {{ variable }} to Simple Moving Average {{ dummy }}","1560302445":"Copied","1562374116":"Students","1564392937":"When you set your limits or self-exclusion, they will be aggregated across all your account types in {{platform_name_trader}} and {{platform_name_dbot}}. For example, the losses made on both platforms will add up and be counted towards the loss limit you set.","1566037033":"Bought: {{longcode}} (ID: {{transaction_id}})","1567076540":"Only use an address for which you have proof of residence - ","1567586204":"Self-exclusion","1569624004":"Dismiss alert","1570484627":"Ticks list","1571575776":"Accepted formats: pdf, jpeg, jpg, and png. Max file size: 8MB","1572504270":"Rounding operation","1572982976":"Server","1575556189":"Tether on the Ethereum blockchain, as an ERC20 token, is a newer transport layer, which now makes Tether available in Ethereum smart contracts. As a standard ERC20 token, it can also be sent to any Ethereum address.","1577480486":"Your mobile link will expire in one hour","1577527507":"Account opening reason is required.","1577612026":"Select a folder","1579839386":"Appstore","1580498808":"Multiple faces found","1584109614":"Ticks String List","1584578483":"50+ assets: forex, stocks, stock indices, synthetics indices, and cryptocurrencies.","1584936297":"XML file contains unsupported elements. Please check or modify file.","1585859194":"We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts, your Deriv fiat and {{platform_name_derivez}} accounts, and your Deriv fiat and {{platform_name_dxtrade}} accounts.","1587046102":"Documents from that country are not currently supported — try another document type","1589640950":"Resale of this contract is not offered.","1589702653":"Proof of address","1591933071":"Resubmit document","1593010588":"Login now","1594147169":"Please come back in","1594322503":"Sell is available","1596378630":"You have added a real Gaming account.<0/>Make a deposit now to start trading.","1597672660":"Deriv MT5 Password","1598009247":"<0>a.You may file a complaint with the Financial Commission up to 45 days after the incident.","1598386296":"Town/City is required.","1598443642":"Transaction hash","1602894348":"Create a password","1604171868":"Please withdraw all your funds as soon as possible.","1604916224":"Absolute","1605222432":"I have no knowledge and experience in trading at all.","1605292429":"Max. total loss","1612105450":"Get substring","1613633732":"Interval should be between 10-60 minutes","1615897837":"Signal EMA Period {{ input_number }}","1618809782":"Maximum withdrawal","1619070150":"You are being redirected to an external website.","1620278321":"Names and surnames by themselves are easy to guess","1620346110":"Set currency","1621024661":"Tether as a TRC20 token (tUSDT) is a version of Tether that is hosted on Tron.","1622662457":"Date from","1623706874":"Use this block when you want to use multipliers as your trade type.","1630372516":"Try our Fiat onramp","1630417358":"Please go to your account settings and complete your personal details to enable withdrawals.","1631281562":"GBP Basket","1634594289":"Select language","1634903642":"Only your face can be in the selfie","1634969163":"Change currency","1635266650":"It seems that your name in the document is not the same as your Deriv profile. Please update your name in the <0>Personal details page to solve this issue.","1636605481":"Platform settings","1636782601":"Multipliers","1638321777":"Your demo account balance is low. Reset your balance to continue trading from your demo account.","1639262461":"Pending withdrawal request:","1639304182":"Please click on the link in the email to reset your password.","1641395634":"Last digits list","1641635657":"New proof of identity document needed","1641980662":"Salutation is required.","1644908559":"Digit code is required.","1647186767":"The bot encountered an error while running.","1651513020":"Display remaining time for each interval","1651951220":"Repeats like \"abcabcabc\" are only slightly harder to guess than \"abc\"","1652366857":"get and remove","1652968048":"Define your trade options such as multiplier and stake.","1652976865":"In this example, this block is used with another block to get the open prices from a list of candles. The open prices are then assigned to the variable called \"cl\".","1653136377":"copied!","1653180917":"We cannot verify you without using your camera","1654365787":"Unknown","1654496508":"Our system will finish any DBot trades that are running, and DBot will not place any new trades.","1654721858":"Upload anyway","1655627840":"UPPER CASE","1656155124":"Resend in <0 /> seconds","1658954996":"Plant and Machine Operators and Assemblers","1659074761":"Reset Put","1665272539":"Remember: You cannot log in to your account until the selected date.","1665738338":"Balance","1665756261":"Go to live chat","1668138872":"Modify account settings","1670016002":"Multiplier: {{ multiplier }}","1670426231":"End Time","1671232191":"You have set the following limits:","1675030608":"To create this account first we need you to resubmit your proof of address.","1677027187":"Forex","1677990284":"My apps","1680666439":"Upload your bank statement showing your name, account number, and transaction history.","1682409128":"Untitled Strategy","1682636566":"Resend email in","1683963454":"Your contract will be closed automatically at the next available asset price on {{date}} at {{timestamp}}.","1684148009":"Total assets in your Deriv and {{platform_name_mt5}} real accounts.","1684419981":"What's this?","1686800117":"{{error_msg}}","1689103988":"Second Since Epoch","1689258195":"We were unable to verify your address with the details you provided. Please check and resubmit or choose a different document type.","1689738742":"Gold Index","1691335819":"To continue trading with us, please confirm who you are.","1691765860":"- Negation","1693614409":"Start time","1694331708":"You can switch between CFDs, digital options, and multipliers at any time.","1694517345":"Enter a new email address","1695807119":"Could not load Google Drive blocks","1700233813":"Transfer from {{selected_value}} is not allowed, Please choose another account from dropdown","1701447705":"Please update your address","1704656659":"How much experience do you have in CFD trading?","1708413635":"For your {{currency_name}} ({{currency}}) account","1709859601":"Exit Spot Time","1710662619":"If you have the app, launch it to start trading.","1711013665":"Anticipated account turnover","1711676335":"square root","1711929663":"Your funds have been transferred","1712357617":"Invalid email address.","1714255392":"To enable withdrawals, please complete your financial assessment.","1715011380":"Jump 25 Index","1715630945":"Returns the total profit in string format","1719248689":"EUR/GBP/USD","1720451994":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv fiat and Deriv cryptocurrency accounts.","1720968545":"Upload passport photo page from your computer","1722401148":"The amount that you may add to your stake after each successful trade.","1723398114":"A recent utility bill (e.g. electricity, water, gas, phone or internet)","1723589564":"Represents the maximum number of outstanding contracts in your portfolio. Each line in your portfolio counts for one open position. Once the maximum is reached, you will not be able to open new positions without closing an existing position first.","1724696797":"You are limited to one fiat account only.","1725958461":"Account number","1726472773":"Function with no return value","1726565314":"Close my account","1727681395":"Total assets in your Deriv and {{platform_name_mt5}} demo accounts.","1728121741":"Transactions.csv","1728183781":"About Tether","1729145421":"Risk warning","1731747596":"The block(s) highlighted in red are missing input values. Please update them and click \"Run bot\".","1732891201":"Sell price","1734185104":"Balance: %1","1734264460":"Disclaimer","1736292549":"Update postal code","1737352280":"Bot.init is not called","1738681493":"Remove your glasses, if necessary","1739384082":"Unemployed","1739668049":"Close your account","1740371444":"Underlying market is not selected","1740843997":"Buy cryptocurrencies in an instant. Enjoy easy, quick, and secure exchanges using your local payment methods.","1742256256":"Please upload one of the following documents:","1743448290":"Payment agents","1743902050":"Complete your financial assessment","1745523557":"- Square root","1746051371":"Download the app","1746273643":"Moving Average Convergence Divergence","1747501260":"Sell conditions","1747523625":"Go back","1747674345":"Please use `.` as a decimal separator for fractional numbers.","1747682136":"Contract was cancelled.","1748754976":"Run","1749675724":"Deriv charges no commission across all account types.","1750065391":"Login time:","1753226544":"remove","1753975551":"Upload passport photo page","1756678453":"break out","1758386013":"Do not get lured to fake \"Deriv\" pages!","1761038852":"Let’s continue with providing proofs of address and identity.","1761762171":"Restart last trade on error (bot ignores the unsuccessful trade): {{ checkbox }}","1762707297":"Phone number","1763123662":"Upload your NIMC slip.","1766212789":"Server maintenance starts at 06:00 GMT every Sunday and may last up to 2 hours. You may experience service disruption during this time.","1766993323":"Only letters, numbers, and underscores are allowed.","1767429330":"Add a Derived account","1768861315":"Minute","1768918213":"Only letters, space, hyphen, period, and apostrophe are allowed.","1769068935":"Choose any of these exchanges to buy cryptocurrencies:","1771037549":"Add a Deriv real account","1771592738":"Conditional block","1772532756":"Create and edit","1777847421":"This is a very common password","1778893716":"Click here","1779519903":"Should be a valid number.","1780770384":"This block gives you a random fraction between 0.0 to 1.0.","1781393492":"We do not charge a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts, your Deriv fiat and {{platform_name_derivez}} accounts and your Deriv fiat and {{platform_name_dxtrade}} accounts.","1782308283":"Quick strategy","1782395995":"Last Digit Prediction","1782690282":"Blocks menu","1782703044":"Sign up","1783740125":"Upload your selfie","1787135187":"Postal/ZIP code is required","1787492950":"Indicators on the chart tab are for indicative purposes only and may vary slightly from the ones on the {{platform_name_dbot}} workspace.","1788966083":"01-07-1999","1789497185":"Make sure your passport details are clear to read, with no blur or glare","1790770969":"FX-majors (standard/micro lots), FX-minors, Commodities, Cryptocurrencies","1791017883":"Check out this <0>user guide.","1791432284":"Search for country","1791971912":"Recent","1793913365":"To deposit money, please switch to your {{currency_symbol}} account.","1794815502":"Download your transaction history.","1796787905":"Please upload the following document(s).","1798943788":"You can only make deposits.","1801093206":"Get candle list","1801927731":"{{platform_name_dxtrade}} accounts","1803338729":"Choose what type of contract you want to trade. For example, for the Rise/Fall trade type you can choose one of three options: Rise, Fall, or Both. Selected option will determine available options for the Purchase block.","1804620701":"Expiration","1804789128":"{{display_value}} Ticks","1806355993":"No commission","1806503050":"Please note that some payment methods might not be available in your country.","1808058682":"Blocks are loaded successfully","1808393236":"Login","1808867555":"This block uses the variable “i” to control the iterations. With each iteration, the value of “i” is determined by the items in a given list.","1810217569":"Please refresh this page to continue.","1811109068":"Jurisdiction","1811972349":"Market","1811973475":"Returns a specific character from a given string","1812582011":"Connecting to server","1813700208":"Boom 300 Index","1813958354":"Remove comment","1815034361":"alphabetic","1815995250":"Buying contract","1816126006":"Trade on Deriv MT5 ({{platform_name_dmt5}}), the all-in-one FX and CFD trading platform.","1817154864":"This block gives you a random number from within a set range.","1820242322":"e.g. United States","1820332333":"Top up","1823177196":"Most popular","1824193700":"This block gives you the last digit of the latest tick value.","1827607208":"File not uploaded.","1828370654":"Onboarding","1830520348":"{{platform_name_dxtrade}} Password","1833481689":"Unlock","1833499833":"Proof of identity documents upload failed","1836767074":"Search payment agent name","1837762008":"Please submit your proof of identity and proof of address to verify your account in your account settings to access the cashier.","1838639373":"Resources","1839021527":"Please enter a valid account number. Example: CR123456789","1840865068":"set {{ variable }} to Simple Moving Average Array {{ dummy }}","1841788070":"Palladium/USD","1841996888":"Daily loss limit","1842266423":"back","1842862156":"Welcome to your Deriv X dashboard","1843658716":"If you select \"Only Downs\", you win the payout if consecutive ticks fall successively after the entry spot. No payout if any tick rises or is equal to any of the previous ticks.","1845892898":"(min: {{min_stake}} - max: {{max_payout}})","1846266243":"This feature is not available for demo accounts.","1846587187":"You have not selected your country of residence","1846664364":"{{platform_name_dxtrade}}","1849484058":"Any unsaved changes will be lost.","1850031313":"- Low: the lowest price","1850132581":"Country not found","1850659345":"- Payout: the payout of the contract","1850663784":"Submit proofs","1851052337":"Place of birth is required.","1851776924":"upper","1851951013":"Please switch to your demo account to run your DBot.","1854480511":"Cashier is locked","1854874899":"Back to list","1855566768":"List item position","1856485118":"Please <0>resubmit your proof of address to transfer funds between MT5 and Deriv accounts.","1858251701":"minute","1859308030":"Give feedback","1863053247":"Please upload your identity document.","1863731653":"To receive your funds, contact the payment agent","1866811212":"Deposit in your local currency via an authorised, independent payment agent in your country.","1866836018":"<0/><1/>If your complaint relates to our data processing practices, you can submit a formal complaint to your local supervisory authority.","1867217564":"Index must be a positive integer","1867783237":"High-to-Close","1869315006":"See how we protect your funds to unlock the cashier.","1869787212":"Even","1870933427":"Crypto","1871196637":"True if the result of the last trade matches the selection","1871664426":"Note","1871804604":"Regulated by the British Virgin Islands Financial Services Commission (License no. SIBA/L/18/1114)","1873838570":"Please verify your address","1874481756":"Use this block to purchase the specific contract you want. You may add multiple Purchase blocks together with conditional blocks to define your purchase conditions. This block can only be used within the Purchase conditions block.","1874756442":"BVI","1876325183":"Minutes","1877225775":"Your proof of address is verified","1877410120":"What you need to do now","1877832150":"# from end","1879042430":"Appropriateness Test, WARNING:","1879412976":"Profit amount: <0>{{profit}}","1880029566":"Australian Dollar","1880097605":"prompt for {{ string_or_number }} with message {{ input_text }}","1880875522":"Create \"get %1\"","1881018702":"hour","1881587673":"Total stake since you last cleared your stats.","1882825238":"Restart trading conditions","1883531976":"Clerks","1885708031":"#","1887852176":"Site is being updated","1889357660":"Enter a value in minutes, up to 60480 minutes (equivalent to 6 weeks).","1890171328":"By clicking Accept below and proceeding with the Account Opening you should note that you may be exposing yourself to risks (which may be significant, including the risk of loss of the entire sum invested) that you may not have the knowledge and experience to properly assess or mitigate.","1890332321":"Returns the number of characters of a given string of text, including numbers, spaces, punctuation marks, and symbols.","1894667135":"Please verify your proof of address","1898670234":"{{formatted_opening_time}} (GMT) on {{opening_day}},<0> {{opening_date}}.","1902547203":"MetaTrader 5 MacOS app","1903437648":"Blurry photo detected","1905032541":"We're now ready to verify your identity","1905589481":"If you want to change your account currency, please contact us via <0>live chat.","1906639368":"If this is the first time you try to create a password, or you have forgotten your password, please reset it.","1907884620":"Add a real Deriv Gaming account","1908239019":"Make sure all of the document is in the photo","1908686066":"Appropriateness Test Warning","1909647105":"TRX/USD","1909769048":"median","1913777654":"Switch account","1914014145":"Today","1914270645":"Default Candle Interval: {{ candle_interval_type }}","1914725623":"Upload the page that contains your photo.","1917523456":"This block sends a message to a Telegram channel. You will need to create your own Telegram bot to use this block.","1917804780":"You will lose access to your Options account when it gets closed, so be sure to withdraw all your funds. (If you have a CFDs account, you can also transfer the funds from your Options account to your CFDs account.)","1918633767":"Second line of address is not in a proper format.","1918796823":"Please enter a stop loss amount.","1918832194":"No experience","1919030163":"Tips to take a good selfie","1919594496":"{{website_name}} is not affiliated with any payment agents. Customers deal with payment agents at their sole risk. Customers are advised to check the credentials of payment agents and the accuracy of any information about payment agents (on {{website_name}} or elsewhere) before using their services.","1919694313":"To start trading, transfer funds from your Deriv account into this account.","1920217537":"Compare","1920468180":"How to use the SMA block","1921634159":"A few personal details","1921914669":"Deposit with Deriv P2P","1922529883":"Boom 1000 Index","1922955556":"Use a longer keyboard pattern with more turns","1923431535":"“Stop loss” is deactivated and will only be available when “Deal cancellation” expires.","1924365090":"Maybe later","1924765698":"Place of birth*","1925090823":"Sorry, trading is unavailable in {{clients_country}}.","1927244779":"Use only the following special characters: . , ' : ; ( ) @ # / -","1928930389":"GBP/NOK","1929309951":"Employment Status","1929694162":"Compare accounts","1930899934":"Tether","1931659123":"Run on every tick","1931884033":"It seems that your date of birth in the document is not the same as your Deriv profile. Please update your date of birth in the <0>Personal details page to solve this issue.","1939902659":"Signal","1940408545":"Delete this token","1941915555":"Try later","1942091675":"Cryptocurrency trading is not available for clients residing in the United Kingdom.","1943440862":"Calculates Bollinger Bands (BB) list from a list with a period","1944204227":"This block returns current account balance.","1947527527":"1. This link was sent by you","1948092185":"GBP/CAD","1949719666":"Here are the possible reasons:","1950413928":"Submit identity documents","1952580688":"Submit passport photo page","1955219734":"Town/City*","1957759876":"Upload identity document","1958807602":"4. 'Table' takes an array of data, such as a list of candles, and displays it in a table format.","1959678342":"Highs & Lows","1960240336":"first letter","1964097111":"USD","1964165648":"Connection lost","1965916759":"Asian options settle by comparing the last tick with the average spot over the period.","1966023998":"2FA enabled","1966281100":"Console {{ message_type }} value: {{ input_message }}","1968025770":"Bitcoin Cash","1968077724":"Agriculture","1968368585":"Employment status","1971898712":"Add or manage account","1973536221":"You have no open positions yet.","1973564194":"You are limited to one fiat account. You won’t be able to change your account currency if you have already made your first deposit or created a real {{dmt5_label}} or {{platform_name_dxtrade}} account.","1974273865":"This scope will allow third-party apps to view your account activity, settings, limits, balance sheets, trade purchase history, and more.","1981940238":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}} and {{legal_entity_name_v}}.","1982912252":"Relative Strength Index (RSI) from a list with a period","1983001416":"Define your trade options such as multiplier and stake. This block can only be used with the multipliers trade type. If you select another trade type, this block will be replaced with the Trade options block.","1983387308":"Preview","1983544897":"P.O. Box is not accepted in address","1983676099":"Please check your email for details.","1984700244":"Request an input","1984742793":"Uploading documents","1985366224":"Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts and up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts.","1985637974":"Any blocks placed within this block will be executed at every tick. If the default candle interval is set to 1 minute in the Trade Parameters root block, the instructions in this block will be executed once every minute. Place this block outside of any root block.","1986498784":"BTC/LTC","1987080350":"Demo","1987447369":"Your cashier is locked","1988153223":"Email address","1988302483":"Take profit:","1988601220":"Duration value","1990331072":"Proof of ownership","1990735316":"Rise Equals","1991448657":"Don't know your tax identification number? Click <0>here to learn more.","1991524207":"Jump 100 Index","1994023526":"The email address you entered had a mistake or typo (happens to the best of us).","1994558521":"The platforms aren’t user-friendly.","1994600896":"This block requires a list of candles as an input parameter.","1995023783":"First line of address*","1996767628":"Please confirm your tax information.","1997138507":"If the last tick is equal to the average of the ticks, you don't win the payout.","1998199587":"You can also exclude yourself entirely for a specified duration. If, at any time, you decide to trade again, you must then contact our Customer Support to remove this self-exclusion. There will be a 24-hour-cooling-off period before you can resume trading. ","2001222130":"Check your spam or junk folder. If it's not there, try resending the email.","2004395123":"New trading tools for MT5","2004792696":"If you are a UK resident, to self-exclude from all online gambling companies licensed in Great Britain, go to <0>www.gamstop.co.uk.","2007028410":"market, trade type, contract type","2007092908":"Trade with leverage and low spreads for better returns on successful trades.","2008809853":"Please proceed to withdraw your funds before 30 November 2021.","2009620100":"DBot will not proceed with any new trades. Any ongoing trades will be completed by our system. Any unsaved changes will be lost.<0>Note: Please check your statement to view completed transactions.","2009770416":"Address:","2010759971":"Uploads successful","2010866561":"Returns the total profit/loss","2011609940":"Please input number greater than 0","2011808755":"Purchase Time","2014536501":"Card number","2014590669":"Variable '{{variable_name}}' has no value. Please set a value for variable '{{variable_name}}' to notify.","2017672013":"Please select the country of document issuance.","2020545256":"Close your account?","2021037737":"Please update your details to continue.","2023659183":"Student","2023762268":"I prefer another trading website.","2025339348":"Move away from direct light — no glare","2027625329":"Simple Moving Average Array (SMAA)","2027696535":"Tax information","2028163119":"EOS/USD","2029237955":"Labuan","2030018735":"RSI is a technical analysis tool that helps you identify the market trend. It will give you a value from 0 to 100. An RSI value of 70 and above means that the asset is overbought and the current trend may reverse, while a value of 30 and below means that the asset is oversold.","2030045667":"Message","2033648953":"This block gives you the specified candle value for a selected time interval.","2034803607":"You must be 18 years old and above.","2035258293":"Start trading with us","2035925727":"sort {{ sort_type }} {{ sort_direction }} {{ input_list }}","2036578466":"Should be {{value}}","2037481040":"Choose a way to fund your account","2037665157":"Expand All Blocks","2037906477":"get sub-list from #","2042023623":"We’re reviewing your documents. This should take about 5 minutes.","2042050260":"- Purchase price: the purchase price (stake) of the contract","2042115724":"Upload a screenshot of your account and personal details page with your name, account number, phone number, and email address.","2042778835":"This complaints policy, which may change from time to time, applies to your account registered with {{legal_entity_name}}.","2044086432":"The close is the latest tick at or before the end time. If you selected a specific end time, the end time is the selected time.","2046273837":"Last tick","2048110615":"Email address*","2048134463":"File size exceeded.","2050080992":"Tron","2050170533":"Tick list","2051558666":"View transaction history","2053617863":"Please proceed to withdraw all your funds from your account.","2054889300":"Create \"%1\"","2055317803":"Copy the link to your mobile browser","2057082550":"Accept our updated <0>terms and conditions","2057419639":"Exit Spot","2060873863":"Your order {{order_id}} is complete","2062912059":"function {{ function_name }} {{ function_params }}","2063655921":"By purchasing the \"Close-to-Low\" contract, you'll win the multiplier times the difference between the close and low over the duration of the contract.","2063812316":"Text Statement","2063890788":"Cancelled","2065278286":"Spread","2067903936":"Driving licence","2070002739":"Don’t accept","2070752475":"Regulatory Information","2071043849":"Browse","2074235904":"Last name is required.","2074497711":"The Telegram notification could not be sent","2080553498":"3. Get the chat ID using the Telegram REST API (read more: https://core.telegram.org/bots/api#getupdates)","2080829530":"Sold for: {{sold_for}}","2082533832":"Yes, delete","2084693624":"Converts a string representing a date/time string into seconds since Epoch. Example: 2019-01-01 21:03:45 GMT+0800 will be converted to 1546347825. Time and time zone offset are optional.","2084925123":"Use our fiat onramp services to buy and deposit cryptocurrency into your Deriv account.","2085387371":"Must be numbers, letters, and special characters . , ' -","2085602195":"- Entry value: the value of the first tick of the contract","2086742952":"You have added a real Options account.<0/>Make a deposit now to start trading.","2086792088":"Both barriers should be relative or absolute","2088735355":"Your session and login limits","2089087110":"Basket indices","2089299875":"Total assets in your Deriv real accounts.","2089581483":"Expires on","2091671594":"Status","2093167705":"You can only make deposits. Please contact us via live chat for more information.","2093675079":"- Close: the closing price","2096014107":"Apply","2096456845":"Date of birth*","2097170986":"About Tether (Omni)","2097381850":"Calculates Simple Moving Average line from a list with a period","2097932389":"Upload 2 separate screenshots from the personal details page and the account page via <0>https://app.astropay.com/profile","2100713124":"account","2101972779":"This is the same as the above example, using a tick list.","2102572780":"Length of digit code must be 6 characters.","2104115663":"Last login","2104397115":"Please go to your account settings and complete your personal details to enable deposits and withdrawals.","2107381257":"Scheduled cashier system maintenance","2109312805":"The spread is the difference between the buy price and sell price. A variable spread means that the spread is constantly changing, depending on market conditions. A fixed spread remains constant but is subject to alteration, at the Broker's absolute discretion.","2110365168":"Maximum number of trades reached","2111015970":"This block helps you check if your contract can be sold. If your contract can be sold, it returns “True”. Otherwise, it returns an empty string.","2111528352":"Creating a variable","2112119013":"Take a selfie showing your face","2112175277":"with delimiter","2113321581":"Add a Deriv Gaming account","2115007481":"Total assets in your Deriv demo accounts.","2115223095":"Loss","2117073379":"Our cryptocurrency cashier is temporarily down due to system maintenance. You can access the Cashier in a few minutes when the maintenance is complete.","2117165122":"1. Create a Telegram bot and get your Telegram API token. Read more on how to create bots in Telegram here: https://core.telegram.org/bots#6-botfather","2117489390":"Auto update in {{ remaining }} seconds","2118315870":"Where do you live?","2119449126":"Example output of the below example will be:","2120617758":"Set up your trade","2121227568":"NEO/USD","2127564856":"Withdrawals are locked","2131963005":"Please withdraw your funds from the following Deriv MT5 account(s):","2133451414":"Duration","2133470627":"This block returns the potential payout for the selected trade type. This block can be used only in the \"Purchase conditions\" root block.","2135563258":"Forex trading frequency","2136246996":"Selfie uploaded","2137901996":"This will clear all data in the summary, transactions, and journal panels. All counters will be reset to zero.","2137993569":"This block compares two values and is used to build a conditional structure.","2138861911":"Scans and photocopies are not accepted","2139171480":"Reset Up/Reset Down","2139362660":"left side","2141055709":"New {{type}} password","2141873796":"Get more info on <0>CFDs, <1>multipliers, and <2>options.","2143803283":"Purchase Error","2144609616":"If you select \"Reset-Down”, you win the payout if the exit spot is strictly lower than either the entry spot or the spot at reset time.","2145690912":"Income Earning","2145995536":"Create new account","2146336100":"in text %1 get %2","2146892766":"Binary options trading experience","-153346659":"Upload your selfie.","-602131304":"Passport number","-1051213440":"Upload the front and back of your identity card.","-1600807543":"First, enter your identity card number and the expiry date.","-1139923664":"Next, upload the front and back of your identity card.","-783705755":"Upload the front of your identity card.","-566750665":"NIMC slip and proof of age","-1465944279":"NIMC slip number","-429612996":"Next, upload both of the following documents.","-376981174":"Upload your proof of age: birth certificate or age declaration document.","-612174191":"First line of address is required","-242734402":"Only {{max}} characters, please.","-378415317":"State is required","-1784470716":"State is not in a proper format","-1699820408":"Please enter a {{field_name}} under {{max_number}} characters.","-1575567374":"postal/ZIP code","-1497654315":"Our accounts and services are unavailable for the Jersey postal code.","-755626951":"Complete your address details","-1024240099":"Address","-584911871":"Select wallet currency","-1461267236":"Please choose your currency","-1352330125":"CURRENCY","-1027595143":"Less than $25,000","-40491332":"$25,000 - $50,000","-1139806939":"$50,001 - $100,000","-626752657":"0-1 year","-532014689":"1-2 years","-1001024004":"Over 3 years","-790513277":"6-10 transactions in the past 12 months","-580085300":"11-39 transactions in the past 12 months","-654781670":"Primary","-1717373258":"Secondary","-996132458":"Construction","-915003867":"Health","-1430012453":"Information & Communications Technology","-987824916":"Science & Engineering","-146630682":"Social & Cultural","-761306973":"Manufacturing","-739367071":"Employed","-1156937070":"$500,001 - $1,000,000","-315534569":"Over $1,000,000","-2068544539":"Salaried Employee","-531314998":"Investments & Dividends","-1235114522":"Pension","-1298056749":"State Benefits","-449943381":"Savings & Inheritance","-1631552645":"Professionals","-474864470":"Personal Care, Sales and Service Workers","-1129355784":"Agricultural, Forestry and Fishery Workers","-1242914994":"Craft, Metal, Electrical and Electronics Workers","-1317824715":"Cleaners and Helpers","-1592729751":"Mining, Construction, Manufacturing and Transport Workers","-2137323480":"Company Ownership","-1590574533":"Divorce Settlement","-1667683002":"Inheritance","-1237843731":"Investment Income","-777506574":"Sale of Property","-1161338910":"First name is required.","-1161818065":"Last name should be between 2 and 50 characters.","-1281693513":"Date of birth is required.","-26599672":"Citizenship is required","-912174487":"Phone is required.","-673765468":"Letters, numbers, spaces, periods, hyphens and forward slashes only.","-1356204661":"This Tax Identification Number (TIN) is invalid. You may continue with account creation, but to facilitate future payment processes, valid tax information will be required.","-1823540512":"Personal details","-1227878799":"Speculative","-1174064217":"Mr","-855506127":"Ms","-621555159":"Identity information","-204765990":"Terms of use","-231863107":"No","-870902742":"How much knowledge and experience do you have in relation to online trading?","-1929477717":"I have an academic degree, professional certification, and/or work experience related to financial services.","-1540148863":"I have attended seminars, training, and/or workshops related to trading.","-922751756":"Less than a year","-542986255":"None","-1337206552":"In your understanding, CFD trading allows you to","-456863190":"Place a position on the price movement of an asset where the outcome is a fixed return or nothing at all.","-1314683258":"Make a long-term investment for a guaranteed profit.","-1546090184":"How does leverage affect CFD trading?","-1636427115":"Leverage helps to mitigate risk.","-800221491":"Leverage guarantees profits.","-811839563":"Leverage lets you open large positions for a fraction of trade value, which may result in increased profit or loss.","-1185193552":"Close your trade automatically when the loss is equal to or more than a specified amount, as long as there is adequate market liquidity.","-1046354":"Close your trade automatically when the profit is equal to or more than a specified amount, as long as there is adequate market liquidity.","-1842858448":"Make a guaranteed profit on your trade.","-659266366":"When opening a leveraged CFD trade","-1078152772":"When trading multipliers","-1507432523":"When buying shares of a company","-1847406474":"All of the above","-931052769":"Submit verification","-1004605898":"Tips","-1938142055":"Documents uploaded","-448090287":"The link only works on mobile devices","-1244287721":"Something's gone wrong","-241258681":"You'll need to restart your verification on your computer","-929254273":"Get secure link","-2021867851":"Check back here to finish the submission","-1547069149":"Open the link and complete the tasks","-1767652006":"Here's how to do it:","-277611959":"You can now return to your computer to continue","-724178625":"Make sure full document is visible","-1519380038":"Glare detected","-1895280620":"Make sure your card details are clear to read, with no blur or glare","-1464447919":"Make sure your permit details are clear to read, with no blur or glare","-1436160506":"Make sure details are clear to read, with no blur or glare","-759124288":"Close","-759118956":"Redo","-753375398":"Enlarge image","-1042933881":"Driver's license","-1503134764":"Face photo page","-1335343167":"Sorry, no mobile phone bills","-699045522":"Documents you can use to verify your identity","-543666102":"It must be an official photo ID","-903877217":"These are the documents most likely to show your current home address","-1356835948":"Choose document","-1364375936":"Select a %{country} document","-401586196":"or upload photo – no scans or photocopies","-3110517":"Take a photo with your phone","-2033894027":"Submit identity card (back)","-20684738":"Submit license (back)","-1359585500":"Submit license (front)","-106779602":"Submit residence permit (back)","-1287247476":"Submit residence permit (front)","-1954762444":"Restart the process on the latest version of Safari","-261174676":"Must be under 10MB.","-685885589":"An error occurred while loading the component","-502539866":"Your face is needed in the selfie","-1377968356":"Please try again","-1226547734":"Try using a JPG or PNG file","-849068301":"Loading...","-1730346712":"Loading","-1849371752":"Check that your number is correct","-309848900":"Copy","-1424436001":"Send link","-1093833557":"How to scan a QR code","-1408210605":"Point your phone’s camera at the QR code","-1773802163":"If it doesn’t work, download a QR code scanner from Google Play or the App Store","-109026565":"Scan QR code","-1644436882":"Get link via SMS","-1667839246":"Enter mobile number","-1533172567":"Enter your mobile number:","-1352094380":"Send this one-time link to your phone","-28974899":"Get your secure link","-359315319":"Continue","-1279080293":"2. Your desktop window stays open","-102776692":"Continue with the verification","-89152891":"Take a photo of the back of your card","-1646367396":"Take a photo of the front of your card","-1350855047":"Take a photo of the front of your license","-2119367889":"Take a photo using the basic camera mode instead","-342915396":"Take a photo","-419040068":"Passport photo page","-1354983065":"Refresh","-1925063334":"Recover camera access to continue face verification","-54784207":"Camera access is denied","-1392699864":"Allow camera access","-269477401":"Provide the whole document page for best results","-864639753":"Upload back of card from your computer","-1309771027":"Upload front of license from your computer","-1722060225":"Take photo","-565732905":"Selfie","-1703181240":"Check that it is connected and functional. You can also continue verification on your phone","-2043114239":"Camera not working?","-2029238500":"It may be disconnected. Try using your phone instead.","-468928206":"Make sure your device's camera works","-466246199":"Camera not working","-698978129":"Remember to press stop when you're done. Redo video actions","-538456609":"Looks like you took too long","-781816433":"Photo of your face","-1471336265":"Make sure your selfie clearly shows your face","-1375068556":"Check selfie","-1914530170":"Face forward and make sure your eyes are clearly visible","-776541617":"We'll compare it with your document","-478752991":"Your link will expire in one hour","-1859729380":"Keep this window open while using your mobile","-1283761937":"Resend link","-629011256":"Don't refresh this page","-1005231905":"Once you've finished we'll take you to the next step","-542134805":"Upload photo","-1462975230":"Document example","-1472844935":"The photo should clearly show your document","-189310067":"Account closed","-849320995":"Assessments","-773766766":"Email and passwords","-1466827732":"Self exclusion","-1498206510":"Account limits","-241588481":"Login history","-966136867":"Connected apps","-213009361":"Two-factor authentication","-1214803297":"Dashboard-only path","-526636259":"Error 404","-1030759620":"Government Officers","-1196936955":"Upload a screenshot of your name and email address from the personal information section.","-1286823855":"Upload your mobile bill statement showing your name and phone number.","-1309548471":"Upload your bank statement showing your name and account details.","-1410396115":"Upload a photo showing your name and the first six and last four digits of your card number. If the card does not display your name, upload the bank statement showing your name and card number in the transaction history.","-3805155":"Upload a screenshot of either of the following to process the transaction:","-1523487566":"- your account profile section on the website","-613062596":"- the Account Information page on the app","-1718304498":"User ID","-609424336":"Upload a screenshot of your name, account number, and email address from the personal details section of the app or profile section of your account on the website.","-1954436643":"Upload a screenshot of your username on the General Information page at <0>https://onlinenaira.com/members/index.htm","-79853954":"Upload a screenshot of your account number and phone number on the Bank Account/Mobile wallet page at <0>https://onlinenaira.com/members/bank.htm","-1192882870":"Upload a screenshot of your name and account number from the personal details section.","-612752984":"These are default limits that we apply to your accounts.","-1598263601":"To learn more about trading limits and how they apply, please go to the <0>Help Centre.","-1340125291":"Done","-1786659798":"Trading limits - Item","-1101543580":"Limit","-858297154":"Represents the maximum amount of cash that you may hold in your account. If the maximum is reached, you will be asked to withdraw funds.","-976258774":"Not set","-1182362640":"Represents the maximum aggregate payouts on outstanding contracts in your portfolio. If the maximum is attained, you may not purchase additional contracts without first closing out existing positions.","-1781293089":"Maximum aggregate payouts on open positions","-1412690135":"*Any limits in your Self-exclusion settings will override these default limits.","-1598751496":"Represents the maximum volume of contracts that you may purchase in any given trading day.","-1359847094":"Trading limits - Maximum daily turnover","-1502578110":"Your account is fully authenticated and your withdrawal limits have been lifted.","-138380129":"Total withdrawal allowed","-854023608":"To increase limit please verify your identity","-1500958859":"Verify","-1662154767":"a recent utility bill (e.g. electricity, water, gas, landline, or internet), bank statement, or government-issued letter with your name and this address.","-190838815":"We need this for verification. If the information you provide is fake or inaccurate, you won’t be able to deposit and withdraw.","-223216785":"Second line of address*","-594456225":"Second line of address","-1315410953":"State/Province","-1940457555":"Postal/ZIP Code*","-1964954030":"Postal/ZIP Code","-1541554430":"Next","-71696502":"Previous","-1437206131":"JPEG JPG PNG PDF GIF","-820458471":"1 - 6 months old","-155705811":"A clear colour photo or scanned image","-587941902":"Issued under your name with your current address","-438669274":"JPEG JPG PNG PDF GIF","-723198394":"File size should be 8MB or less","-1948369500":"File uploaded is not supported","-1040865880":"Drop files here..","-1437017790":"Financial information","-39038029":"Trading experience","-1416797980":"Please enter your {{ field_name }} as in your official identity documents.","-1466268810":"Please remember that it is your responsibility to keep your answers accurate and up to date. You can update your personal details at any time in your <0>account settings.","-32386760":"Name","-1120954663":"First name*","-1659980292":"First name","-766265812":"first name","-1857534296":"John","-1282749116":"last name","-1485480657":"Other details","-1784741577":"date of birth","-1315571766":"Place of birth","-2040322967":"Citizenship","-1692219415":"Tax residence","-1903720068":"The country in which you meet the criteria for paying taxes. Usually the country in which you physically reside.","-651516152":"Tax Identification Number","-1543016582":"I hereby confirm that the tax information I provided is true and complete. I will also inform {{legal_entity_name}} about any changes to this information.","-1387062433":"Account opening reason","-1088324715":"We’ll review your documents and notify you of its status within 1 - 3 working days.","-329713179":"Ok","-1176889260":"Please select a document type.","-1515286538":"Please enter your document number. ","-1785463422":"Verify your identity","-78467788":"Please select the document type and enter the ID number.","-1117345066":"Choose the document type","-651192353":"Sample:","-1263033978":"Please ensure all your personal details are the same as in your chosen document. If you wish to update your personal details, go to account settings.","-937707753":"Go Back","-1926456107":"The ID you submitted is expired.","-555047589":"It looks like your identity document has expired. Please try again with a valid document.","-841187054":"Try Again","-2097808873":"We were unable to verify your ID with the details you provided. ","-228284848":"We were unable to verify your ID with the details you provided.","-1391934478":"Your ID is verified. You will also need to submit proof of your address.","-118547687":"ID verification passed","-200989771":"Go to personal details","-1358357943":"Please check and update your postal code before submitting proof of identity.","-1401994581":"Your personal details are missing","-2004327866":"Please select a valid country of document issuance.","-1664159494":"Country","-1874113454":"Please check and resubmit or choose a different document type.","-1044962593":"Upload Document","-749870311":"Please contact us via <0>live chat.","-1084991359":"Proof of identity verification not required","-1981334109":"Your account does not need identity verification at this time. We will inform you if identity verification is required in the future.","-182918740":"Your proof of identity submission failed because:","-246893488":"JPEG, JPG, PNG, PDF, or GIF","-1454880310":"Must be valid for at least 6 months","-100534371":"Before uploading, please ensure that you’re facing forward in the selfie, your face is within the frame, and your eyes are clearly visible even if you’re wearing glasses.","-1529523673":"Confirm and upload","-705047643":"Sorry, an error occured. Please select another file.","-1664309884":"Tap here to upload","-1725454783":"Failed","-839094775":"Back","-856213726":"You must also submit a proof of address.","-987011273":"Your proof of ownership isn't required.","-808299796":"You are not required to submit proof of ownership at this time. We will inform you if proof of ownership is required in the future.","-179726573":"We’ve received your proof of ownership.","-813779897":"Proof of ownership verification passed.","-1389323399":"You should enter {{min_number}}-{{max_number}} characters.","-1313806160":"Please request a new password and check your email for the new token.","-1598167506":"Success","-1077809489":"You have a new {{platform}} password to log in to your {{platform}} accounts on the web and mobile apps.","-2068479232":"{{platform}} password","-1332137219":"Strong passwords contain at least 8 characters that include uppercase and lowercase letters, numbers, and symbols.","-2005211699":"Create","-1597186502":"Reset {{platform}} password","-638756912":"Black out digits 7 to 12 of the card number that’s shown on the front of your debit/credit card.⁤","-848721396":"These trading limits are optional, and you can strengthen them at any time. If you don’t wish to set a specific limit, leave the field blank. If you live in the United Kingdom, Customer Support can only remove or weaken your trading limits after 24 hours of receiving the request. If you live in the Isle of Man, Customer Support can only remove or weaken your trading limits after your trading limit period has expired.","-469096390":"These trading limits are optional, and you can strengthen them at any time. If you don’t wish to set a specific limit, leave the field blank. Customer Support can only remove or weaken your trading limits after 24 hours of receiving the request.","-42808954":"You can also exclude yourself entirely for a specified duration. This can only be removed once your self-exclusion has expired. If you wish to continue trading once your self-exclusion period expires, you must contact Customer Support by calling <0>+447723580049 to lift this self-exclusion. Requests by chat or email shall not be entertained. There will be a 24-hour cooling-off period before you can resume trading.","-1088698009":"These self-exclusion limits help you control the amount of money and time you spend trading on {{platform_name_trader}}, {{platform_name_dbot}}, {{platform_name_smarttrader}} and {{platform_name_bbot}} on Deriv. The limits you set here will help you exercise <0>responsible trading.","-1702324712":"These limits are optional, and you can adjust them at any time. You decide how much and how long you’d like to trade. If you don’t wish to set a specific limit, leave the field blank.","-1819875658":"You can also exclude yourself entirely for a specified duration. Once the self-exclusion period has ended, you can either extend it further or resume trading immediately. If you wish to reduce or remove the self-exclusion period, contact our <0>Customer Support.","-1031814119":"About trading limits and self-exclusion","-183468698":"Trading limits and self-exclusion","-933963283":"No, review my limits","-1759860126":"Yes, log me out immediately","-572347855":"{{value}} mins","-313333548":"You’ll be able to adjust these limits at any time. You can reduce your limits from the <0>self-exclusion page. To increase or remove your limits, please contact our <1>Customer Support team.","-1265833982":"Accept","-2123139671":"Your stake and loss limits","-1250802290":"24 hours","-2070080356":"Max. total stake","-1545823544":"7 days","-180147209":"You will be automatically logged out from each session after this time limit.","-374553538":"Your account will be excluded from the website until this date (at least 6 months, up to 5 years).","-2121421686":"To self-exclude from all online gambling companies licensed in Great Britain, go to <0>www.gamstop.co.uk.","-2105708790":"Your maximum account balance and open positions","-1960600163":"Once your account balance reaches this amount, you will not be able to deposit funds into your account.","-1073845224":"No. of open position(s)","-288196326":"Your maximum deposit limit","-568749373":"Max. deposit limit","-1884902844":"Max. deposit limit per day","-545085253":"Max. deposit limit over 7 days","-1031006762":"Max. deposit limit over 30 days","-1116871438":"Max. total loss over 30 days","-2134714205":"Time limit per session","-1884271702":"Time out until","-1265825026":"Timeout time must be greater than current time.","-1332882202":"Timeout time cannot be more than 6 weeks.","-1635977118":"Exclude time cannot be less than 6 months.","-2073934245":"The financial trading services offered on this site are only suitable for customers who accept the possibility of losing all the money they invest and who understand and have experience of the risk involved in the purchase of financial contracts. Transactions in financial contracts carry a high degree of risk. If the contracts you purchased expire as worthless, you will lose all your investment, which includes the contract premium.","-1166068675":"Your account will be opened with {{legal_entity_name}}, regulated by the UK Gaming Commission (UKGC), and will be subject to the laws of the Isle of Man.","-975118358":"Your account will be opened with {{legal_entity_name}}, regulated by the Malta Financial Services Authority (MFSA), and will be subject to the laws of Malta.","-680528873":"Your account will be opened with {{legal_entity_name}} and will be subject to the laws of Samoa.","-1125193491":"Add account","-2068229627":"I am not a PEP, and I have not been a PEP in the last 12 months.","-684271315":"OK","-1720468017":"In providing our services to you, we are required to obtain information from you in order to assess whether a given product or service is appropriate for you.","-186841084":"Change your login email","-907403572":"To change your email address, you'll first need to unlink your email address from your {{identifier_title}} account.","-1850792730":"Unlink from {{identifier_title}}","-2139303636":"You may have followed a broken link, or the page has moved to a new address.","-1448368765":"Error code: {{error_code}} page not found","-2145244263":"This field is required","-254792921":"You can only make deposits at the moment. To enable withdrawals, please complete your financial assessment.","-70342544":"We’re legally obliged to ask for your financial information.","-1100235269":"Industry of employment","-684388823":"Estimated net worth","-601903492":"Forex trading experience","-1012699451":"CFD trading experience","-1894668798":"Other trading instruments experience","-1026468600":"Other trading instruments frequency","-179005984":"Save","-307865807":"Risk Tolerance Warning","-690100729":"Yes, I understand the risk.","-2010628430":"CFDs and other financial instruments come with a high risk of losing money rapidly due to leverage. You should consider whether you understand how CFDs and other financial instruments work and whether you can afford to take the high risk of losing your money. <0/><0/> To continue, you must confirm that you understand your capital is at risk.","-863770104":"Please note that by clicking ‘OK’, you may be exposing yourself to risks. You may not have the knowledge or experience to properly assess or mitigate these risks, which may be significant, including the risk of losing the entire sum you have invested.","-1292808093":"Trading Experience","-789291456":"Tax residence*","-1651554702":"Only alphabet is allowed","-1458676679":"You should enter 2-50 characters.","-1166111912":"Use only the following special characters: {{ permitted_characters }}","-884768257":"You should enter 0-35 characters.","-2113555886":"Only letters, numbers, space, and hyphen are allowed.","-874280157":"This Tax Identification Number (TIN) is invalid. You may continue using it, but to facilitate future payment processes, valid tax information will be required.","-1037916704":"Miss","-1113902570":"Details","-634958629":"We use the information you give us only for verification purposes. All information is kept confidential.","-731992635":"Title*","-352888977":"Title","-136976514":"Country of residence*","-945104751":"We’re legally obliged to ask for your tax information.","-1702919018":"Second line of address (optional)","-1124948631":"Professional Client","-259515058":"By default, all {{brand_website_name}} clients are retail clients but anyone can request to be treated as a professional client.","-1463348492":"I would like to be treated as a professional client.","-1958764604":"Email preference","-2121071263":"Check this box to receive updates via email.","-2068064150":"Get updates about Deriv products, services and events.","-1558679249":"Please make sure your information is correct or it may affect your trading experience.","-1822545742":"Ether Classic","-1334641066":"Litecoin","-1214036543":"US Dollar","-1782590355":"No currency has been set for this account","-2116332353":"Please close your positions in the following Deriv account(s):","-2048005267":"{{number_of_positions}} position(s)","-1923892687":"Please withdraw your funds from the following Deriv X account(s):","-1629894615":"I have other financial priorities.","-844051272":"I want to stop myself from trading.","-1113965495":"I’m no longer interested in trading.","-1224285232":"Customer service was unsatisfactory.","-9323953":"Remaining characters: {{remaining_characters}}","-2061895474":"Closing your account will automatically log you out. We shall delete your personal information as soon as our legal obligations are met.","-203298452":"Close account","-1219849101":"Please select at least one reason","-484540402":"An error occurred","-1911549768":"Inaccessible MT5 account(s)","-1869355019":"Action required","-1030102424":"You can't trade on Deriv.","-448385353":"You can't make transactions.","-1058447223":"Before closing your account:","-912764166":"Withdraw your funds.","-60139953":"We shall delete your personal information as soon as our legal obligations are met, as mentioned in the section on Data Retention in our <0>Security and privacy policy","-536187647":"Confirm revoke access?","-1357606534":"Permission","-570222048":"Revoke access","-1076138910":"Trade","-488597603":"Trading information","-1666909852":"Payments","-506510414":"Date and time","-1708927037":"IP address","-80717068":"Apps you have linked to your <0>Deriv password:","-2143208677":"Click the <0>Change password button to change your Deriv MT5 password.","-9570380":"Use the {{platform_name_dxtrade}} password to log in to your {{platform_name_dxtrade}} accounts on the web and mobile apps.","-412891493":"Disable 2FA","-200487676":"Enable","-1840392236":"That's not the right code. Please try again.","-307075478":"6 digit code","-790444493":"Protect your account with 2FA. Each time you log in to your account, you will need to enter your password and an authentication code generated by a 2FA app on your smartphone.","-368010540":"You have enabled 2FA for your Deriv account.","-403552929":"To disable 2FA, please enter the six-digit authentication code generated by your 2FA app below:","-752939584":"How to set up 2FA for your Deriv account","-90649785":"Click here to copy key","-206376148":"Key copied!","-650175948":"A recent bank statement or government-issued letter with your name and address.","-2006895756":"1. Address","-716361389":"An accurate and complete address helps to speed up your verification process.","-890084320":"Save and submit","-902076926":"Before uploading your document, please ensure that your personal details are updated to match your proof of identity. This will help to avoid delays during the verification process.","-1592318047":"See example","-1376950117":"That file format isn't supported. Please upload .pdf, .png, .jpg, or .jpeg files only.","-1272489896":"Please complete this field.","-397487797":"Enter your full card number","-1411635770":"Learn more about account limits","-516397235":"Be careful who you share this token with. Anyone with this token can perform the following actions on your account behalf","-989216986":"Add accounts","-617480265":"Delete token","-316749685":"Are you sure you want to delete this token?","-786372363":"Learn more about API token","-55560916":"To access our mobile apps and other third-party apps, you'll first need to generate an API token.","-198329198":"API Token","-955038366":"Copy this token","-1668692965":"Hide this token","-1661284324":"Show this token","-605778668":"Never","-1628008897":"Token","-1238499897":"Last Used","-1171226355":"Length of token name must be between {{MIN_TOKEN}} and {{MAX_TOKEN}} characters.","-1803339710":"Maximum {{MAX_TOKEN}} characters.","-408613988":"Select scopes based on the access you need.","-5605257":"This scope will allow third-party apps to withdraw to payment agents and make inter-account transfers for you.","-1373485333":"This scope will allow third-party apps to view your trading history.","-758221415":"This scope will allow third-party apps to open accounts for you, manage your settings and token usage, and more. ","-1117963487":"Name your token and click on 'Create' to generate your token.","-2115275974":"CFDs","-1879666853":"Deriv MT5","-460645791":"You are limited to one fiat account. You won’t be able to change your account currency if you have already made your first deposit or created a real {{dmt5_label}} account.","-1146960797":"Fiat currencies","-1959484303":"Cryptocurrencies","-561724665":"You are limited to one fiat currency only","-2087317410":"Oops, something went wrong.","-509054266":"Anticipated annual turnover","-164448351":"Show less","-1361653502":"Show more","-337620257":"Switch to real account","-2120454054":"Add a real account","-38915613":"Unsaved changes","-2137450250":"You have unsaved changes. Are you sure you want to discard changes and leave this page?","-1067082004":"Leave Settings","-1982432743":"It appears that the address in your document doesn’t match the address\n in your Deriv profile. Please update your personal details now with the\n correct address.","-1451334536":"Continue trading","-1525879032":"Your documents for proof of address is expired. Please submit again.","-1425489838":"Proof of address verification not required","-1008641170":"Your account does not need address verification at this time. We will inform you if address verification is required in the future.","-60204971":"We could not verify your proof of address","-1944264183":"To continue trading, you must also submit a proof of identity.","-1617352279":"The email is in your spam folder (Sometimes things get lost there).","-547557964":"We can’t deliver the email to this address (Usually because of firewalls or filtering).","-142444667":"Please click on the link in the email to change your Deriv MT5 password.","-742748008":"Check your email and click the link in the email to proceed.","-84068414":"Still didn't get the email? Please contact us via <0>live chat.","-428335668":"You will need to set a password to complete the process.","-1517325716":"Deposit via the following payment methods:","-1547606079":"We accept the following cryptocurrencies:","-42592103":"Deposit cryptocurrencies","-639677539":"Buy cryptocurrencies","-1560098002":"Buy cryptocurrencies via fiat onramp","-541870313":"Deposit via payment agents","-58126117":"Your simple access to crypto. Fast and secure way to exchange and purchase cryptocurrencies. 24/7 live chat support.","-1705887186":"Your deposit is successful.","-142361708":"In process","-1582681840":"We’ve received your request and are waiting for more blockchain confirmations.","-1626218538":"You’ve cancelled your withdrawal request.","-1062841150":"Your withdrawal is unsuccessful due to an error on the blockchain. Please <0>contact us via live chat for more info.","-630780094":"We’re awaiting confirmation from the blockchain.","-1525882769":"Your withdrawal is unsuccessful. We've sent you an email with more information.","-298601922":"Your withdrawal is successful.","-2021135479":"This field is required.","-1975494965":"Cashier","-1870909526":"Our server cannot retrieve an address.","-582721696":"The current allowed withdraw amount is {{format_min_withdraw_amount}} to {{format_max_withdraw_amount}} {{currency}}","-1957498244":"more","-197251450":"Don't want to trade in {{currency_code}}? You can open another cryptocurrency account.","-1900848111":"This is your {{currency_code}} account.","-749765720":"Your fiat account currency is set to {{currency_code}}.","-803546115":"Manage your accounts ","-1463156905":"Learn more about payment methods","-1309258714":"From account number","-1247676678":"To account number","-816476007":"Account holder name","-1995606668":"Amount","-344403983":"Description","-922432739":"Please enter a valid client login ID.","-1024241603":"Insufficient balance.","-1979554765":"Please enter a valid description.","-1186807402":"Transfer","-1254233806":"You've transferred","-1491457729":"All payment methods","-142563298":"Contact your preferred payment agent for payment instructions and make your deposit.","-1023961762":"Commission on deposits","-552873274":"Commission on withdrawal","-880645086":"Withdrawal amount","-118683067":"Withdrawal limits: <0 />-<1 />","-1125090734":"Important notice to receive your funds","-1924707324":"View transaction","-1474202916":"Make a new withdrawal","-511423158":"Enter the payment agent account number","-2059278156":"Note: {{website_name}} does not charge any transfer fees.","-1201279468":"To withdraw your funds, please choose the same payment method you used to make your deposits.","-8892474":"Start assessment","-1787304306":"Deriv P2P","-60779216":"Withdrawals are temporarily unavailable due to system maintenance. You can make your withdrawals when the maintenance is complete.","-215186732":"You’ve not set your country of residence. To access Cashier, please update your country of residence in the Personal details section in your account settings.","-1392897508":"The identification documents you submitted have expired. Please submit valid identity documents to unlock Cashier. ","-1321645628":"Your cashier is currently locked. Please contact us via live chat to find out how to unlock it.","-1158467524":"Your account is temporarily disabled. Please contact us via live chat to enable deposits and withdrawals again.","-929148387":"Please set your account currency to enable deposits and withdrawals.","-541392118":"Your account has not been authenticated. Please submit your <0>proof of identity and <1>proof of address to authenticate your account and access your cashier.","-247122507":"Your cashier is locked. Please complete the <0>financial assessment to unlock it.","-1443721737":"Your cashier is locked. See <0>how we protect your funds before you proceed.","-901712457":"Your access to Cashier has been temporarily disabled as you have not set your 30-day turnover limit. Please go to <0>Self-exclusion and set your 30-day turnover limit.","-166472881":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable deposits and withdrawals.","-666905139":"Deposits are locked","-378858101":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable deposits.","-1037495888":"You have chosen to exclude yourself from trading on our website until {{exclude_until}}. If you are unable to place a trade or deposit after your self-exclusion period, please contact us via live chat.","-949074612":"Please contact us via live chat.","-1318742415":"Your account has not been authenticated. Please submit your <0>proof of identity and <1>proof of address to authenticate your account and request for withdrawals.","-127614820":"Unfortunately, you can only make deposits. Please contact us via live chat to enable withdrawals.","-172277021":"Cashier is locked for withdrawals","-1624999813":"It seems that you've no commissions to withdraw at the moment. You can make withdrawals once you receive your commissions.","-1077304626":"Amount ({{currency}})","-1559994981":"Approximate value","-190084602":"Transaction","-811190405":"Time","-1272778997":"We've sent you an email.","-89973258":"Resend email in {{seconds}}s","-1332236294":"Please verify your identity","-1675848843":"Error","-283017497":"Retry","-1196049878":"First line of home address","-1326406485":"Postal Code/ZIP","-939625805":"Telephone","-442575534":"Email verification failed","-1459042184":"Update your personal details","-1603543465":"We can't validate your personal details because there is some information missing.","-614516651":"Need help? <0>Contact us.","-203002433":"Deposit now","-720315013":"You have no funds in your {{currency}} account","-2052373215":"Please make a deposit to use this feature.","-379487596":"{{selected_percentage}}% of available balance ({{format_amount}} {{currency__display_code}})","-299033842":"Recent transactions","-348296830":"{{transaction_type}} {{currency}}","-1929538515":"{{amount}} {{currency}} on {{submit_date}}","-1534990259":"Transaction hash:","-1612346919":"View all","-1059419768":"Notes","-316545835":"Please ensure <0>all details are <0>correct before making your transfer.","-949073402":"I confirm that I have verified the client’s transfer information.","-1752211105":"Transfer now","-598073640":"About Tether (Ethereum)","-275902914":"Tether on Ethereum (eUSDT)","-1188009792":"Tether on Omni Layer (USDT)","-1239329687":"Tether was originally created to use the bitcoin network as its transport protocol ‒ specifically, the Omni Layer ‒ to allow transactions of tokenised traditional currency.","-2013448791":"Want to exchange between e-wallet currencies? Try <0>Ewallet.Exchange","-2061807537":"Something’s not right","-1068036170":"We do not charge a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts and between your Deriv fiat and {{platform_name_dxtrade}} accounts.","-2056016338":"You’ll not be charged a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts.","-599632330":"We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts and between your Deriv fiat and {{platform_name_dxtrade}} accounts.","-1196994774":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency accounts.","-1361372445":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts, your Deriv cryptocurrency and {{platform_name_derivez}} accounts, and your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.","-993556039":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts and between your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.","-1382702462":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts.","-1995859618":"You may transfer between your Deriv fiat, cryptocurrency, {{platform_name_mt5}}, {{platform_name_derivez}} and {{platform_name_dxtrade}} accounts.","-545616470":"Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts, up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts, up to {{ allowed_derivez }} transfers between your Deriv and {{platform_name_derivez}} accounts, and up to {{ allowed_dxtrade }} transfers between your Deriv and {{platform_name_dxtrade}} accounts.","-1151983985":"Transfer limits may vary depending on the exchange rates.","-1747571263":"Please bear in mind that some transfers may not be possible.","-757062699":"Transfers may be unavailable due to high volatility or technical issues and when the exchange markets are closed.","-1344870129":"Deriv accounts","-1156059326":"You have {{number}} transfer remaining for today.","-1109729546":"You will be able to transfer funds between MT5 accounts and other accounts once your address is verified.","-1593609508":"Transfer between your accounts in Deriv","-464965808":"Transfer limits: <0 /> - <1 />","-553249337":"Transfers are locked","-1638172550":"To enable this feature you must complete the following:","-1157701227":"You need at least two accounts","-417711545":"Create account","-1232852916":"We’re switching over to your {{currency}} account to view the transaction.","-993393818":"Binance Smart Chain","-561858764":"Polygon (Matic)","-410890127":"Ethereum (ERC20)","-1059526741":"Ethereum (ETH)","-1615615253":"We do not support Tron, to deposit please use only Ethereum ({{token}}).","-1831000957":"Please select the network from where your deposit will come from.","-314177745":"Unfortunately, we couldn't get the address since our server was down. Please click Refresh to reload the address or try again later.","-1345040662":"Looking for a way to buy cryptocurrency?","-759000391":"We were unable to verify your information automatically. To enable this function, you must complete the following:","-1632668764":"I accept","-544232635":"Please go to the Deposit page to generate an address. Then come back here to continue with your transaction.","-1161069724":"Please copy the crypto address you see below. You'll need it to deposit your cryptocurrency.","-1388977563":"Copied!","-1962894999":"This address can only be used ONCE. Please copy a new one for your next transaction.","-451858550":"By clicking 'Continue' you will be redirected to {{ service }}, a third-party payment service provider. Please note that {{ website_name }} is not responsible for the content or services provided by {{ service }}. If you encounter any issues related to {{ service }} services, you must contact {{ service }} directly.","-2005265642":"Fiat onramp is a cashier service that allows you to convert fiat currencies to crypto to top up your Deriv crypto accounts. Listed here are third-party crypto exchanges. You’ll need to create an account with them to use their services.","-1593063457":"Select payment channel","-953082600":"Some payment methods may not be listed here but payment agents may still offer them. If you can’t find your favourite method, contact the payment agents directly to check further.","-2004264970":"Your wallet address should have 25 to 64 characters.","-1707299138":"Your {{currency_symbol}} wallet address","-38063175":"{{account_text}} wallet","-705272444":"Upload a proof of identity to verify your identity","-2024958619":"This is to protect your account from unauthorised withdrawals.","-130833284":"Please note that your maximum and minimum withdrawal limits aren’t fixed. They change due to the high volatility of cryptocurrency.","-1531269493":"We'll send you an email once your transaction has been processed.","-113940416":"Current stake:","-1999539705":"Deal cancel. fee:","-447037544":"Buy price:","-1342699195":"Total profit/loss:","-1511825574":"Profit/Loss:","-726626679":"Potential profit/loss:","-338379841":"Indicative price:","-1525144993":"Payout limit:","-1167474366":"Tick ","-555886064":"Won","-529060972":"Lost","-571642000":"Day","-155989831":"Decrement value","-1192773792":"Don't show this again","-1769852749":"N/A","-1572746946":"Asian Up","-686840306":"Asian Down","-2141198770":"Higher","-816098265":"Lower","-1646655742":"Spread Up","-668987427":"Spread Down","-912577498":"Matches","-1862940531":"Differs","-808904691":"Odd","-556230215":"Ends Outside","-1268220904":"Ends Between","-703542574":"Up","-1127399675":"Down","-768425113":"No Touch","-1163058241":"Stays Between","-1354485738":"Reset Call","-376148198":"Only Ups","-1337379177":"High Tick","-328036042":"Please enter a stop loss amount that's higher than the current potential loss.","-2127699317":"Invalid stop loss. Stop loss cannot be more than stake.","-1150099396":"We’re working to have this available for you soon. If you have another account, switch to that account to continue trading. You may add a Deriv MT5 Financial.","-1940333322":"DBot is not available for this account","-1223145005":"Loss amount: {{profit}}","-1062922595":"Reference ID (buy)","-2068574600":"Reference ID (sell)","-994038153":"Start Time","-1979852400":"Entry Spot","-427802309":"Profit/Loss","-668558002":"Journal.csv","-746652890":"Notifications","-824109891":"System","-507620484":"Unsaved","-764102808":"Google Drive","-1109191651":"Must be a number higher than 0","-1917772100":"Invalid number format","-1553945114":"Value must be higher than 2","-689786738":"Minimum duration: {{ min }}","-184183432":"Maximum duration: {{ max }}","-749186458":"Account switching is disabled while your bot is running. Please stop your bot before switching accounts.","-662836330":"Would you like to keep your current contract or close it? If you decide to keep it running, you can check and close it later on the <0>Reports page.","-597939268":"Keep my contract","-1322453991":"You need to log in to run the bot.","-1483938124":"This strategy is currently not compatible with DBot.","-236548954":"Contract Update Error","-1428017300":"THE","-1450728048":"OF","-255051108":"YOU","-1845434627":"IS","-931434605":"THIS","-740712821":"A","-187634388":"This block is mandatory. Here is where you can decide if your bot should continue trading. Only one copy of this block is allowed.","-2105473795":"The only input parameter determines how block output is going to be formatted. In case if the input parameter is \"string\" then the account currency will be added.","-1800436138":"2. for \"number\": 1325.68","-2046396241":"This block is mandatory. Only one copy of this block is allowed. It is added to the canvas by default when you open DBot.","-530632460":"This block is used to determine if the market price moves in the selected direction or not. It gives you a value of \"True\" or \"False\".","-1875717842":"Examples:","-890079872":"1. If the selected direction is \"Rise\", and the previous tick value is less than the current tick value, the output will be \"True\". Otherwise, the output will be an empty string.","-489739641":"2. If the selected direction is \"Fall\", and the previous tick value is more than the current tick value, the output will be \"True\". Otherwise, the output will be an empty string.","-2116076360":"There are 4 message types:","-1421941045":"2. 'Warn' displays a message in yellow to highlight something that needs attention.","-277850921":"If \"Win\" is selected, it will return \"True\" if your last trade was successful. Otherwise, it will return an empty string.","-1918487001":"Example:","-2139916657":"1. In the below example the loop is terminated in case \"x\" is \"False\" even though only one iteration is complete","-1238900333":"2. In the below example the loop jumps to the next iteration without executing below block in case if \"x\" is \"False\"","-1729479576":"You can use \"i\" inside the loop, for example to access list items","-1474636594":"In this example, the loop will repeat three times, as that is the number of items in the given list. During each iteration, the variable \"i\" will be assigned a value from the list. ","-908772734":"This block evaluates a statement and will perform an action only when the statement is true.","-334040831":"2. In this example, the instructions are repeated as long as the value of x is greater than or equal to 10. Once the value of x drops below 10, the loop is terminated.","-444267958":"\"Seconds Since Epoch\" block returns the number of seconds since January 1st, 1970.","-447522129":"You might need it when you want to repeat an actions after certain amount of time.","-1488259879":"The term \"candle\" refers to each bar on the candlestick chart. Each candle represents four market prices for the selected time interval:","-2020693608":"Each candlestick on the chart represents 4 market prices for the selected time interval:","-62728852":"- Open price: the opening price","-1247744334":"- Low price: the lowest price","-1386365697":"- Close price: the closing price","-1498732382":"A black (or red) candle indicates that the open price is higher than the close price. This represents a downward movement of the market price.","-1871864755":"This block gives you the last digit of the latest tick value of the selected market. If the latest tick value is 1410.90, this block will return 0. It’s useful for digit-based contracts such as Even/Odd, Matches/Differs, or Higher/Lower.","-1029671512":"In case if the \"OR\" operation is selected, the block returns \"True\" in case if one or both given values are \"True\"","-210295176":"Available operations:","-1385862125":"- Addition","-983721613":"- Subtraction","-854750243":"- Multiplication","-1394815185":"In case if the given number is less than the lower boundary of the range, the block returns the lower boundary value. Similarly, if the given number is greater than the higher boundary, the block will return the higher boundary value. In case if the given value is between boundaries, the block will return the given value unchanged.","-1034564248":"In the below example the block returns the value of 10 as the given value (5) is less than the lower boundary (10)","-2009817572":"This block performs the following operations to a given number","-671300479":"Available operations are:","-514610724":"- Absolute","-1923861818":"- Euler’s number (2.71) to the power of a given number","-1556344549":"Here’s how:","-1061127827":"- Visit the following URL, make sure to replace with the Telegram API token you created in Step 1: https://api.telegram.org/bot/getUpdates","-70949308":"4. Come back to DBot and add the Notify Telegram block to the workspace. Paste the Telegram API token and chat ID into the block fields accordingly.","-311389920":"In this example, the open prices from a list of candles are assigned to a variable called \"cl\".","-1460794449":"This block gives you a list of candles within a selected time interval.","-1634242212":"Used within a function block, this block returns a value when a specific condition is true.","-2012970860":"This block gives you information about your last contract.","-1504783522":"You can choose to see one of the following:","-10612039":"- Profit: the profit you’ve earned","-555996976":"- Entry time: the starting time of the contract","-1391071125":"- Exit time: the contract expiration time","-1961642424":"- Exit value: the value of the last tick of the contract","-111312913":"- Barrier: the barrier value of the contract (applicable to barrier-based trade types such as stays in/out, touch/no touch, etc.)","-674283099":"- Result: the result of the last contract: \"win\" or \"loss\"","-704543890":"This block gives you the selected candle value such as open price, close price, high price, low price, and open time. It requires a candle as an input parameter.","-482281200":"In the example below, the open price is assigned to the variable \"op\".","-364621012":"This block gives you the specified candle value for a selected time interval. You can choose which value you want:","-232477769":"- Open: the opening price","-610736310":"Use this block to sell your contract at the market price. Selling your contract is optional. You may choose to sell if the market trend is unfavourable.","-1307657508":"This block gives you the potential profit or loss if you decide to sell your contract. It can only be used within the \"Sell conditions\" root block.","-1921072225":"In the example below, the contract will only be sold if the potential profit or loss is more than the stake.","-955397705":"SMA adds the market price in a list of ticks or candles for a number of time periods, and divides the sum by that number of time periods.","-1424923010":"where n is the number of periods.","-1835384051":"What SMA tells you","-749487251":"SMA serves as an indicator of the trend. If the SMA points up then the market price is increasing and vice versa. The larger the period number, the smoother SMA line is.","-1996062088":"In this example, each point of the SMA line is an arithmetic average of close prices for the last 10 days.","-1866751721":"Input list accepts a list of ticks or candles, while period is the specified time period.","-1097076512":"You may compare SMA values calculated on every bot run to identify the market trend direction. Alternatively, you may also use a variation of the SMA block, the Simple Moving Average Array block. ","-1254849504":"If a period of 10 is entered, the Simple Moving Average Array block will return a list of SMA values calculated based on period of 10.","-1190046167":"This block displays a dialog box with a customised message. When the dialog box is displayed, your strategy is paused and will only resume after you click \"OK\".","-859028989":"In this example, the date and time will be displayed in a green notification box.","-1452086215":"In this example, a Rise contract will be purchased at midnight on 1 August 2019.","-1765276625":"Click the multiplier drop-down menu and choose the multiplier value you want to trade with.","-1872233077":"Your potential profit will be multiplied by the multiplier value you’ve chosen.","-614454953":"To learn more about multipliers, please go to the <0>Multipliers page.","-2078588404":"Select your desired market and asset type. For example, Forex > Major pairs > AUD/JPY","-2037446013":"2. Trade Type","-533927844":"Select your desired trade type. For example, Up/Down > Rise/Fall","-1192411640":"4. Default Candle Interval","-485434772":"8. Trade Options","-1827646586":"This block assigns a given value to a variable, creating the variable if it doesn't already exist.","-254421190":"List: ({{message_length}})","-1616649196":"results","-90107030":"No results found","-984140537":"Add","-786915692":"You are connected to Google Drive","-1150107517":"Connect","-1759213415":"Find out how this app handles your data by reviewing Deriv's <0>Privacy policy, which is part of Deriv's <1>Terms and conditions.","-934909826":"Load strategy","-1121028020":"or, if you prefer...","-254025477":"Select an XML file from your device","-1131095838":"Please upload an XML file","-523928088":"Create one or upload one from your local drive or Google Drive.","-1684205190":"Why can't I see my recent bots?","-2050879370":"1. Logged in from a different device","-811857220":"3. Cleared your browser cache","-1016171176":"Asset","-621128676":"Trade type","-671128668":"The amount that you pay to enter a trade.","-447853970":"Loss threshold","-410856998":"The bot will stop trading if your total profit exceeds this amount.","-1823621139":"Quick Strategy","-625024929":"Leaving already?","-584289785":"No, I'll stay","-1435060006":"If you leave, your current contract will be completed, but your bot will stop running immediately.","-783058284":"Total stake","-2077494994":"Total payout","-1073955629":"No. of runs","-1729519074":"Contracts lost","-42436171":"Total profit/loss","-1856204727":"Reset","-224804428":"Transactions","-1137823888":"Total payout since you last cleared your stats.","-992662695":"The number of times your bot has run since you last cleared your stats. Each run includes the execution of all the root blocks.","-1382491190":"Your total profit/loss since you last cleared your stats. It is the difference between your total payout and your total stake.","-305283152":"Strategy name","-1003476709":"Save as collection","-636521735":"Save strategy","-1373954791":"Should be a valid number","-1278608332":"Please enter a number between 0 and {{api_max_losses}}.","-287597204":"Enter limits to stop your bot from trading when any of these conditions are met.","-1445989611":"Limits your potential losses for the day across all Deriv platforms.","-152878438":"Maximum number of trades your bot will execute for this run.","-1490942825":"Apply and run","-1696412885":"Import","-250192612":"Sort","-1566369363":"Zoom out","-2060170461":"Load","-1200116647":"Click here to start building your DBot.","-1040972299":"Purchase contract","-600546154":"Sell contract (optional)","-985351204":"Trade again","-112876186":"Analysis","-1769584466":"Stats","-1133736197":"Utility","-1682372359":"Text","-907562847":"Lists","-1646497683":"Loops","-251326965":"Miscellaneous","-1285759343":"Search","-1058262694":"Stopping the bot will prevent further trades. Any ongoing trades will be completed by our system.","-1473283434":"Please be aware that some completed transactions may not be displayed in the transaction table if the bot is stopped while placing trades.","-397015538":"You may refer to the statement page for details of all completed transactions.","-1442034178":"Contract bought","-2020280751":"Bot is stopping","-1436403979":"Contract closed","-1711732508":"Reference IDs","-386141434":"(Buy)","-482272687":"(Sell)","-1983189496":"ticks","-694277729":"(High)","-2028564707":"(Low)","-627895223":"Exit spot","-596238067":"Entry/Exit spot","-558594655":"The bot is not running","-478946875":"The stats are cleared","-9461328":"Security and privacy","-563774117":"Dashboard","-418247251":"Download your journal.","-870004399":"<0>Bought: {{longcode}} (ID: {{transaction_id}})","-1211474415":"Filters","-186972150":"There are no messages to display","-999254545":"All messages are filtered out","-686334932":"Build a bot from the start menu then hit the run button to run the bot.","-1717650468":"Online","-1825471709":"A whole new trading experience on a powerful yet easy to use platform.","-981017278":"Automated trading at your fingertips. No coding needed.","-1768586966":"Trade CFDs on a customizable, easy-to-use trading platform.","-1309011360":"Open positions","-883103549":"Account deactivated","-821418875":"Trader","-679102561":"Contract Details","-430118939":"Complaints policy","-744999940":"Deriv account","-568280383":"Deriv Gaming","-1308346982":"Derived","-1546927062":"Deriv Financial","-895331276":"Complete your proof of address","-782679300":"Complete your proof of identity","-1596515467":"Derived BVI","-328128497":"Financial","-533935232":"Financial BVI","-565431857":"Financial Labuan","-1290112064":"Deriv EZ","-1669418686":"AUD/CAD","-1548588249":"AUD/CHF","-1552890620":"AUD/JPY","-681231560":"AUD/PLN","-64938413":"AUD/USD","-1430522808":"EUR/AUD","-2020477069":"EUR/CAD","-1201853162":"EUR/CHF","-1318070255":"EUR/GBP","-1197505739":"EUR/JPY","-405907358":"EUR/USD","-1536293064":"NZD/JPY","-79700881":"NZD/USD","-642323838":"USD/CAD","-428199705":"USD/CHF","-424108348":"USD/JPY","-548255282":"USD/NOK","-1834131208":"USD/PLN","-524302516":"Silver/USD","-764731776":"Platinum/USD","-700966800":"Dutch Index","-1863229260":"Australian Index","-946336619":"Wall Street Index","-945048133":"French Index","-1093355162":"UK Index","-932734062":"Hong Kong Index","-2030624691":"Japanese Index","-354063409":"US Index","-232855849":"Euro 50 Index","-1925264914":"Volatility 25 Index","-708579504":"Volatility 50 Index","-975255670":"Volatility 75 Index","-1736314513":"Crash 300 Index","-342128411":"Crash 500 Index","-9704319":"Crash 1000 Index","-465860988":"Bull Market Index","-390528194":"Step Index","-280323742":"EUR Basket","-563812039":"Volatility 10 (1s) Index","-764111252":"Volatility 100 (1s) Index","-1374309449":"Volatility 200 (1s) Index","-1164978320":"Jump 10 Index","-575272887":"BCH/USD","-295406873":"BTC/ETH","-1713556301":"ZMR/USD","-2046638412":"XRP/USD","-1263203461":"BTC/USD","-1112522776":"DSH/USD","-460689370":"LTC/USD","-841561409":"Put Spread","-144803045":"Only numbers and these special characters are allowed: {{permitted_characters}}","-1450516268":"Only letters, numbers, space, hyphen, period, and apostrophe are allowed.","-1072358250":"Letters, spaces, periods, hyphens, apostrophes only","-1966032552":"The length of token should be 8.","-2128137611":"Should start with letter or number, and may contain hyphen and underscore.","-1590869353":"Up to {{decimal_count}} decimal places are allowed.","-2061307421":"Should be more than {{min_value}}","-1099941162":"Should be less than {{max_value}}","-1528188268":"Straight rows of keys are easy to guess","-1339903234":"Short keyboard patterns are easy to guess","-23980798":"Repeats like \"aaa\" are easy to guess","-235760680":"Avoid repeated words and characters","-1568933154":"Sequences like abc or 6543 are easy to guess","-725663701":"Avoid sequences","-1450768475":"Recent years are easy to guess","-1804838610":"Avoid years that are associated with you","-64849469":"Dates are often easy to guess","-2006915194":"Avoid dates and years that are associated with you","-2124205211":"A word by itself is easy to guess","-1095202689":"All-uppercase is almost as easy to guess as all-lowercase","-2137856661":"Reversed words aren't much harder to guess","-1885413063":"Predictable substitutions like '@' instead of 'a' don't help very much","-369258265":"This password is on the blacklist","-681468758":"Your web browser is out of date and may affect your trading experience. Please <0>update your browser.","-577777971":"You have reached the rate limit of requests per second. Please try later.","-206321775":"Fiat","-522767852":"DEMO","-433761292":"Switching to default account.","-405439829":"Sorry, you can't view this contract because it doesn't belong to this account.","-1590712279":"Gaming","-16448469":"Virtual","-540474806":"Your Options account is scheduled to be closed","-618539786":"Your account is scheduled to be closed","-945275490":"Withdraw all funds from your Options account.","-2093768906":"{{name}} has released your funds.
Would you like to give your feedback?","-705744796":"Your demo account balance has reached the maximum limit, and you will not be able to place new trades. Reset your balance to continue trading from your demo account.","-800774345":"Power up your Financial trades with intuitive tools from Acuity.","-279582236":"Learn More","-1211460378":"Power up your trades with Acuity","-703292251":"Download intuitive trading tools to keep track of market events. The Acuity suite is only available for Windows, and is most recommended for financial assets.","-1585069798":"Please click the following link to complete your Appropriateness Test.","-1287141934":"Find out more","-367759751":"Your account has not been verified","-596690079":"Enjoy using Deriv?","-265932467":"We’d love to hear your thoughts","-1815573792":"Drop your review on Trustpilot.","-823349637":"Go to Trustpilot","-1204063440":"Set my account currency","-1751632759":"Get a faster mobile trading experience with the <0>{{platform_name_go}} app!","-1164554246":"You submitted expired identification documents","-219846634":"Let’s verify your ID","-529038107":"Install","-1738575826":"Please switch to your real account or create one to access the cashier.","-1329329028":"You’ve not set your 30-day turnover limit","-132893998":"Your access to the cashier has been temporarily disabled as you have not set your 30-day turnover limit. Please go to Self-exclusion and set the limit.","-1852207910":"MT5 withdrawal disabled","-764323310":"MT5 withdrawals have been disabled on your account. Please check your email for more details.","-1902997828":"Refresh now","-753791937":"A new version of Deriv is available","-1775108444":"This page will automatically refresh in 5 minutes to load the latest version.","-1175685940":"Please contact us via live chat to enable withdrawals.","-1125797291":"Password updated.","-157145612":"Please log in with your updated password.","-1728185398":"Resubmit proof of address","-612396514":"Please resubmit your proof of address.","-1519764694":"Your proof of address is verified.","-1961967032":"Resubmit proof of identity","-117048458":"Please submit your proof of identity.","-1196422502":"Your proof of identity is verified.","-136292383":"Your proof of address verification is pending","-386909054":"Your proof of address verification has failed","-430041639":"Your proof of address did not pass our verification checks, and we’ve placed some restrictions on your account. Please resubmit your proof of address.","-87177461":"Please go to your account settings and complete your personal details to enable deposits.","-904632610":"Reset your balance","-470018967":"Reset balance","-156611181":"Please complete the financial assessment in your account settings to unlock it.","-1925176811":"Unable to process withdrawals in the moment","-980696193":"Withdrawals are temporarily unavailable due to system maintenance. You can make withdrawals when the maintenance is complete.","-1647226944":"Unable to process deposit in the moment","-488032975":"Deposits are temporarily unavailable due to system maintenance. You can make deposits when the maintenance is complete.","-67021419":"Our cashier is temporarily down due to system maintenance. You can access the cashier in a few minutes when the maintenance is complete.","-849587074":"You have not provided your tax identification number","-47462430":"This information is necessary for legal and regulatory requirements. Please go to your account settings, and fill in your latest tax identification number.","-2067423661":"Stronger security for your Deriv account","-1719731099":"With two-factor authentication, you’ll protect your account with both your password and your phone - so only you can access your account, even if someone knows your password.","-2087822170":"You are offline","-1669693571":"Check your connection.","-1706642239":"<0>Proof of ownership <1>required","-553262593":"<0><1>Your account is currently locked <2><3>Please upload your proof of <4>ownership to unlock your account. <5>","-1834929362":"Upload my document","-1043638404":"<0>Proof of ownership <1>verification failed","-1766760306":"<0><1>Please upload your document <2>with the correct details. <3>","-2142540205":"It appears that the address in your document doesn’t match the address in your Deriv profile. Please update your personal details now with the correct address.","-482715448":"Go to Personal details","-2072411961":"Your proof of address has been verified","-384887227":"Update the address in your profile.","-1998049070":"If you agree to our use of cookies, click on Accept. For more information, <0>see our policy.","-402093392":"Add Deriv Account","-277547429":"A Deriv account will allow you to fund (and withdraw from) your MT5 account(s).","-1721181859":"You’ll need a {{deriv_account}} account","-1989074395":"Please add a {{deriv_account}} account first before adding a {{dmt5_account}} account. Deposits and withdrawals for your {{dmt5_label}} account are done by transferring funds to and from your {{deriv_label}} account.","-689237734":"Proceed","-1642457320":"Help centre","-1966944392":"Network status: {{status}}","-594209315":"Synthetic indices in the EU are offered by {{legal_entity_name}}, W Business Centre, Level 3, Triq Dun Karm, Birkirkara BKR 9033, Malta, licensed and regulated by the Malta Gaming Authority (<0>licence no. MGA/B2C/102/2000) and by the Revenue Commissioners for clients in Ireland (<2>licence no. 1010285).","-181484419":"Responsible trading","-650505513":"Full screen","-1823504435":"View notifications","-1954045170":"No currency assigned","-583559763":"Menu","-1922462747":"Trader's hub","-1591792668":"Account Limits","-34495732":"Regulatory information","-1496158755":"Go to Deriv.com","-2094580348":"Thanks for verifying your email","-1396326507":"Unfortunately, {{website_name}} is not available in your country.","-1019903756":"Synthetic","-288996254":"Unavailable","-122970184":"Total assets in your Deriv and {{platform_name_dxtrade}} demo accounts.","-97270814":"Total assets in your Deriv and {{platform_name_dxtrade}} real accounts.","-1607445331":"Deriv MT5 Accounts","-1844355483":"{{platform_name_dxtrade}} Accounts","-1740162250":"Manage account","-1277942366":"Total assets","-1556699568":"Choose your citizenship","-1310654342":"As part of the changes in our product line-up, we will be closing Gaming accounts belonging to our UK clients.","-626152766":"As part of the changes in our product line-up, we are closing Options accounts belonging to our clients in Europe.","-490100162":"As part of the changes in our product line-up, we will be closing accounts belonging to our Isle of Man clients.","-1208958060":"You can no longer trade digital options on any of our platforms. You also can’t deposit funds into your account.<0/><1/>Any open positions on digital options have been closed with full payout.","-2050417883":"You’ll lose access to your Gaming account when it gets closed, so make sure to withdraw your funds as soon as possible.","-1950045402":"Withdraw all your funds","-168971942":"What this means for you","-905560792":"OK, I understand","-1308593541":"You will lose access to your account when it gets closed, so be sure to withdraw all your funds.","-2024365882":"Explore","-1197864059":"Create free demo account","-1602122812":"24-hour Cool Down Warning","-740157281":"Trading Experience Assessment","-399816343":"Trading Experience Assessment<0/>","-1822498621":"As per our regulatory obligations, we are required to assess your trading knowledge and experience.<0/><0/>Please click ‘OK’ to continue","-71049153":"Keep your account secure with a password","-1861974537":"Strong passwords contain at least 8 characters, combine uppercase and lowercase letters, numbers, and symbols.","-1965920446":"Start trading","-1485242688":"Step {{step}}: {{step_title}} ({{step}} of {{steps}})","-1829842622":"You can open an account for each cryptocurrency.","-987221110":"Choose a currency you would like to trade with.","-1066574182":"Choose a currency","-1914534236":"Choose your currency","-200560194":"Please switch to your {{fiat_currency}} account to change currencies.","-1829493739":"Choose the currency you would like to trade with.","-1814647553":"Add a new","-1269362917":"Add new","-650480777":"crypto account","-175638343":"Choose an account or add a new one","-1768223277":"Your account is ready","-1215717784":"<0>You have successfully changed your currency to {{currency}}.<0>Make a deposit now to start trading.","-786091297":"Trade on demo","-228099749":"Please verify your identity and address","-1041852744":"We're processing your personal information","-1775006840":"Make a deposit now to start trading.","-983734304":"We need proof of your identity and address before you can start trading.","-917733293":"To get trading, please confirm where you live.","-1282628163":"You'll be able to get trading as soon as verification is complete.","-952649119":"Log In","-3815578":"Sign Up","-1456176427":"Set a currency for your real account","-1557011219":"Add a real Deriv Options account","-241733171":"Add a Deriv Financial account","-1329687645":"Create a cryptocurrency account","-1429178373":"Create a new account","-1016775979":"Choose an account","-1519791480":"CFDs and other financial instruments come with a high risk of losing money rapidly due to leverage. You should consider whether you understand how CFDs and other financial instruments work and whether you can afford to take the risk of losing your money. <0/><0/>\n As you have declined our previous warning, you would need to wait 24 hours before you can proceed further.","-1010875436":"CFDs and other financial instruments come with a high risk of losing money rapidly due to leverage. You should consider whether you understand how CFDs and other financial instruments work and whether you can afford to take the high risk of losing your money. <0/><0/> To continue, kindly note that you would need to wait 24 hours before you can proceed further.","-1725418054":"By clicking ‘Accept’ and proceeding with the account opening, you should note that you may be exposing yourself to risks. These risks, which may be significant, include the risk of losing the entire sum invested, and you may not have the knowledge and experience to properly assess or mitigate them.","-1369294608":"Already signed up?","-617844567":"An account with your details already exists.","-292363402":"Trading statistics report","-1656860130":"Options trading can become a real addiction, as can any other activity pushed to its limits. To avoid the danger of such an addiction, we provide a reality-check that gives you a summary of your trades and accounts on a regular basis.","-28080461":"Would like to check your statement first? <0>Check Statement","-611059051":"Please specify your preferred interval reality check in minutes:","-1876891031":"Currency","-11615110":"Turnover","-1370419052":"Profit / Loss","-437320982":"Session duration:","-3959715":"Current time:","-1534648620":"Your password has been changed","-596199727":"We will now redirect you to the login page.","-310434518":"The email input should not be empty.","-437918412":"No currency assigned to your account","-707550055":"We need this to make sure our service complies with laws and regulations in your country.","-280139767":"Set residence","-601615681":"Select theme","-1152511291":"Dark","-1428458509":"Light","-1976089791":"Your Deriv account has been unlinked from your {{social_identity_provider}} account. You can now log in to Deriv using your new email address and password.","-505449293":"Enter a new password for your Deriv account.","-703818088":"Only log in to your account at this secure link, never elsewhere.","-1235799308":"Fake links often contain the word that looks like \"Deriv\" but look out for these differences.","-2102997229":"Examples","-82488190":"I've read the above carefully.","-97775019":"Do not trust and give away your credentials on fake websites, ads or emails.","-2142491494":"OK, got it","-611136817":"Beware of fake links.","-1787820992":"Platforms","-1793883644":"Trade FX and CFDs on a customisable, easy-to-use trading platform.","-184713104":"Earn fixed payouts with options, or trade multipliers to amplify your gains with limited risk.","-1571775875":"Our flagship options and multipliers trading platform.","-1107320163":"Automate your trading, no coding needed.","-820028470":"Options & Multipliers","-895091803":"If you're looking for CFDs","-1447215751":"Not sure? Try this","-2338797":"<0>Maximise returns by <0>risking more than you put in.","-1682067341":"Earn <0>fixed returns by <0>risking only what you put in.","-1744351732":"Not sure where to start?","-943710774":"This complaints policy, which may change from time to time, applies to your account registered with {{legal_entity_name}}, having its registered office address at First Floor, Millennium House, Victoria Road, Douglas, Isle of Man, IM2 4RW, licensed and regulated respectively by (1) the Gambling Supervision Commission in the Isle of Man (current <0>licence issued on 31 August 2017) and (2) the Gambling Commission in the UK (<1>licence no. 39172).","-255056078":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name}}, having its registered office address at W Business Centre, Level 3, Triq Dun Karm, Birkirkara, BKR 9033, Malta, licensed and regulated by the Malta Gaming Authority in Malta for gambling products only, <0>licence no. MGA/B2C/102/2000, and for clients residing in the UK by the UK Gambling Commission (account number 39495).","-1941013000":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}}, {{legal_entity_name_fx}}, and {{legal_entity_name_v}}.","-594812204":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}}.","-1639808836":"If you are not satisfied with the outcome, you can escalate your complaint to the <0>Independent Betting Adjudication Service (IBAS) by filling the IBAS adjudication form. Please note that IBAS only deals with disputes that result from transactions.","-1505742956":"<0/><1/>You can also refer your dispute to the Malta Gaming Authority via the <2>Player Support Unit.","-1406192787":"If you are not satisfied with the outcome, you can escalate your complaint to the <0>Financial Commission.","-1776547326":"<0/><1/>If you reside in the UK and you are unhappy with our response you may escalate your complaint to the <2>Financial Ombudsman Service.","-2115348800":"1. Introduction","-744009523":"2. Fair treatment","-866831420":"3.1. Submission of a complaint","-1102904026":"3.2. Handling your complaint","-603378979":"3.3. Resolving your complaint","-697569974":"3.4. Your decision","-993572476":"<0>b.The Financial Commission has 5 days to acknowledge that your complaint was received and 14 days to answer the complaint through our Internal Dispute Resolution (IDR) procedure.","-1769159081":"<0>c.You will be able to file a complaint with the Financial Commission only if you are not satisfied with our decision or the decision wasn’t made within 14 days.","-58307244":"3. Determination phase","-356618087":"<0>b.The DRC may request additional information from you or us, who must then provide the requested information within 7 days.","-945718602":"<0>b.If you agree with a DRC decision, you will need to accept it within 14 days. If you do not respond to the DRC decision within 14 days, the complaint is considered closed.","-1500907666":"<0>d.If the decision is made in our favour, you must provide a release for us within 7 days of when the decision is made, and the complaint will be considered closed.","-429248139":"5. Disclaimer","-818926350":"The Financial Commission accepts appeals for 45 days following the date of the incident and only after the trader has tried to resolve the issue with the company directly.","-358055541":"Power up your trades with cool new tools","-29496115":"We've partnered with Acuity to give you a suite of intuitive trading tools for MT5 so you can keep track of market events and trends, free of charge!<0/><0/>","-648669944":"Download the Acuity suite and take advantage of the <1>Macroeconomic Calendar, Market Alerts, Research Terminal, and <1>Signal Centre Trade Ideas without leaving your MT5 terminal.<0/><0/>","-794294380":"This suite is only available for Windows, and is most recommended for financial assets.","-922510206":"Need help using Acuity?","-815070480":"Disclaimer: The trading services and information provided by Acuity should not be construed as a solicitation to invest and/or trade. Deriv does not offer investment advice. The past is not a guide to future performance, and strategies that have worked in the past may not work in the future.","-2111521813":"Download Acuity","-175369516":"Welcome to Deriv X","-939154994":"Welcome to Deriv MT5 dashboard","-1667427537":"Run Deriv X on your browser or download the mobile app","-305915794":"Run MT5 from your browser or download the MT5 app for your devices","-404375367":"Trade forex, basket indices, commodities, and cryptocurrencies with high leverage.","-243985555":"Trade CFDs on forex, stocks, stock indices, synthetic indices, cryptocurrencies, and commodities with leverage.","-2030107144":"Trade CFDs on forex, stocks & stock indices, commodities, and crypto.","-781132577":"Leverage","-1264604378":"Up to 1:1000","-637908996":"100%","-1420548257":"20+","-1373949478":"50+","-1686150678":"Up to 1:100","-1382029900":"70+","-1493055298":"90+","-1056874273":"25+ assets: synthetics","-223956356":"Leverage up to 1:1000","-1340877988":"Registered with the Financial Commission","-879901180":"170+ assets: forex (standard/micro), stocks, stock indices, commodities, basket indices, and cryptocurrencies","-1020615994":"Better spreads","-1789823174":"Regulated by the Vanuatu Financial Services Commission","-1040269115":"30+ assets: forex and commodities","-1372141447":"Straight-through processing","-318390366":"Regulated by the Labuan Financial Services Authority (Licence no. MB/18/0024)","-1556783479":"80+ assets: forex and cryptocurrencies","-875019707":"Leverage up to 1:100","-1752249490":"Malta Financial","-2068980956":"Leverage up to 1:30","-2098459063":"British Virgin Islands","-1434036215":"Demo Financial","-1416247163":"Financial STP","-1882063886":"Demo CFDs","-1347908717":"Demo Financial SVG","-1780324582":"SVG","-785625598":"Use these credentials to log in to your {{platform}} account on the website and mobile apps.","-997127433":"Change Password","-162753510":"Add real account","-1300381594":"Get Acuity trading tools","-860609405":"Password","-742647506":"Fund transfer","-1972393174":"Trade CFDs on our synthetics, baskets, and derived FX.","-1357917360":"Web terminal","-1454896285":"The MT5 desktop app is not supported by Windows XP, Windows 2003, and Windows Vista.","-810388996":"Download the Deriv X mobile app","-1727991510":"Scan the QR code to download the Deriv X Mobile App","-1302404116":"Maximum leverage","-511301450":"Indicates the availability of cryptocurrency trading on a particular account.","-2102641225":"At bank rollover, liquidity in the forex markets is reduced and may increase the spread and processing time for client orders. This happens around 21:00 GMT during daylight saving time, and 22:00 GMT non-daylight saving time.","-495364248":"Margin call and stop out level will change from time to time based on market condition.","-536189739":"To protect your portfolio from adverse market movements due to the market opening gap, we reserve the right to decrease leverage on all offered symbols for financial accounts before market close and increase it again after market open. Please make sure that you have enough funds available in your {{platform}} account to support your positions at all times.","-712681566":"Peer-to-peer exchange","-1267880283":"{{field_name}} is required","-2084509650":"{{field_name}} is not properly formatted.","-222283483":"Account opening reason*","-1779241732":"First line of address is not in a proper format.","-188222339":"This should not exceed {{max_number}} characters.","-1673422138":"State/Province is not in a proper format.","-1580554423":"Trade CFDs on our synthetic indices that simulate real-world market movements.","-1385484963":"Confirm to change your {{platform}} password","-1990902270":"This will change the password to all of your {{platform}} accounts.","-673424733":"Demo account","-1986258847":"Server maintenance starts at 01:00 GMT every Sunday, and this process may take up to 2 hours to complete. Service may be disrupted during this time.","-1199152768":"Please explore our other platforms.","-205020823":"Explore {{platform_name_trader}}","-1982499699":"Explore {{platform_name_dbot}}","-1567989247":"Submit your proof of identity and address","-184453418":"Enter your {{platform}} password","-393388362":"We’re reviewing your documents. This should take about 1 to 3 days.","-790488576":"Forgot password?","-926547017":"Enter your {{platform}} password to add a {{platform}} {{account}} {{jurisdiction_shortcode}} account.","-1190393389":"Enter your {{platform}} password to add a {{platform}} {{account}} account.","-2057918502":"Hint: You may have entered your Deriv password, which is different from your {{platform}} password.","-1769158315":"real","-700260448":"demo","-1936102840":"Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} account. ","-1570793523":"Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} account.","-1928229820":"Reset Deriv X investor password","-1087845020":"main","-1950683866":"investor","-1874242353":"Fund top up","-89838213":"You can top up your demo account with an additional <0> if your balance is <1> or less.","-1211122723":"{{ platform }} {{ account_title }} account","-78895143":"Current balance","-149993085":"New current balance","-490244964":"Forex, stocks, stock indices, cryptocurrencies","-1368041210":", synthetic indices","-877064208":"EUR","-1284221303":"You’ll get a warning, known as margin call, if your account balance drops down close to the stop out level.","-1848799829":"To understand stop out, first you need to learn about margin level, which is the ratio of your equity (the total balance you would have if you close all your positions at that point) to the margin you're using at the moment. If your margin level drops below our stop out level, your positions may be closed automatically to protect you from further losses.","-224051432":"24/7","-1591882610":"Synthetics","-70716111":"FX-majors (standard/micro lots), FX-minors, basket indices, commodities, cryptocurrencies, and stocks and stock indices","-1041629137":"FX-majors, FX-minors, FX-exotics, and cryptocurrencies","-287097947":"FX-majors (standard/micro lots), FX-minors, Commodities, Cryptocurrencies (except UK)","-1225160479":"Compare available accounts","-2042845290":"Your investor password has been changed.","-1882295407":"Your password has been changed.","-254497873":"Use this password to grant viewing access to another user. While they may view your trading account, they will not be able to trade or take any other actions.","-161656683":"Current investor password","-374736923":"New investor password","-1793894323":"Create or reset investor password","-1271218821":"Account added","-1576792859":"Proof of identity and address are required","-1931257307":"You will need to submit proof of identity","-2026018074":"Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (SVG) LLC (company no. 273 LLC 2020).","-162320753":"Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (BVI) Ltd, regulated by the British Virgin Islands Financial Services Commission (License no. SIBA/L/18/1114).","-1731304187":"Add your Deriv MT5 CFDs account under Deriv Investments (Europe) Limited regulated by the Malta Financial Services Authority (MFSA) (licence no. IS/70156).","-724308541":"Jurisdiction for your Deriv MT5 CFDs account","-479119833":"Choose a jurisdiction for your Deriv MT5 {{account_type}} account","-450424792":"You need a real account (fiat currency or cryptocurrency) in Deriv to create a real Deriv MT5 account.","-1760596315":"Create a Deriv account","-705682181":"Malta","-194969520":"Counterparty company","-1131400885":"Deriv Investments (Europe) Limited","-409563066":"Regulator","-2073451889":"Malta Financial Services Authority (MFSA) (Licence no. IS/70156)","-362324454":"Commodities","-543177967":"Stock indices","-1089385344":"Deriv (SVG) LLC","-2019617323":"Deriv (BVI) Ltd","-112814932":"Deriv (FX) Ltd","-1747078152":"-","-1510474851":"British Virgin Islands Financial Services Commission (licence no. SIBA/L/18/1114)","-199154602":"Vanuatu Financial Services Commission","-761250329":"Labuan Financial Services Authority (Licence no. MB/18/0024)","-251202291":"Broker","-81650212":"MetaTrader 5 web","-2123571162":"Download","-941636117":"MetaTrader 5 Linux app","-2019704014":"Scan the QR code to download Deriv MT5.","-648956272":"Use this password to log in to your Deriv X accounts on the web and mobile apps.","-1814308691":"Please click on the link in the email to change your {{platform}} password.","-1282933308":"Not {{barrier}}","-968190634":"Equals {{barrier}}","-1747377543":"Under {{barrier}}","-337314714":"days","-442488432":"day","-1572548510":"Ups & Downs","-71301554":"Ins & Outs","-952298801":"Look Backs","-763273340":"Digits","-1790089996":"NEW!","-1386326276":"Barrier is a required field.","-1418742026":"Higher barrier must be higher than lower barrier.","-92007689":"Lower barrier must be lower than higher barrier.","-1095538960":"Please enter the start time in the format \"HH:MM\".","-1975910372":"Minute must be between 0 and 59.","-866277689":"Expiry time cannot be in the past.","-1455298001":"Now","-256210543":"Trading is unavailable at this time.","-28115241":"{{platform_name_trader}} is not available for this account","-453920758":"Go to {{platform_name_mt5}} dashboard","-402175529":"History","-902712434":"Deal cancellation","-988484646":"Deal cancellation (executed)","-444882676":"Deal cancellation (active)","-13423018":"Reference ID","-1551639437":"No history","-1214703885":"You have yet to update either take profit or stop loss","-880722426":"Market is closed","-504849554":"It will reopen at","-59803288":"In the meantime, try our synthetic indices. They simulate real-market volatility and are open 24/7.","-1278109940":"See open markets","-694105443":"This market is closed","-439389714":"We’re working on it","-770929448":"Go to {{platform_name_smarttrader}}","-138538812":"Log in or create a free account to place a trade.","-2036388794":"Create free account","-1813736037":"No further trading is allowed on this contract type for the current trading session. For more info, refer to our <0>terms and conditions.","-590131162":"Stay on {{website_domain}}","-1444663817":"Go to Binary.com","-1526466612":"You’ve selected a trade type that is currently unsupported, but we’re working on it.","-1043795232":"Recent positions","-1572796316":"Purchase price:","-153220091":"{{display_value}} Tick","-802374032":"Hour","-2039780875":"Purchase confirmation","-1672470173":"Require confirmation before purchasing a contract","-1342661765":"Lock contract purchase buttons","-939764287":"Charts","-1738427539":"Purchase","-1392065699":"If you select \"Rise\", you win the payout if the exit spot is strictly higher than the entry spot.","-1762566006":"If you select \"Fall\", you win the payout if the exit spot is strictly lower than the entry spot.","-1435306976":"If you select \"Allow equals\", you win the payout if exit spot is higher than or equal to entry spot for \"Rise\". Similarly, you win the payout if exit spot is lower than or equal to entry spot for \"Fall\".","-1959473569":"If you select \"Lower\", you win the payout if the exit spot is strictly lower than the barrier.","-1350745673":"If the exit spot is equal to the barrier, you don't win the payout.","-2089488446":"If you select \"Ends Between\", you win the payout if the exit spot is strictly higher than the Low barrier AND strictly lower than the High barrier.","-1876950330":"If you select \"Ends Outside\", you win the payout if the exit spot is EITHER strictly higher than the High barrier, OR strictly lower than the Low barrier.","-546460677":"If the exit spot is equal to either the Low barrier or the High barrier, you don't win the payout.","-1812957362":"If you select \"Stays Between\", you win the payout if the market stays between (does not touch) either the High barrier or the Low barrier at any time during the contract period","-220379757":"If you select \"Goes Outside\", you win the payout if the market touches either the High barrier or the Low barrier at any time during the contract period.","-1281286610":"If you select \"Matches\", you will win the payout if the last digit of the last tick is the same as your prediction.","-1929209278":"If you select \"Even\", you will win the payout if the last digit of the last tick is an even number (i.e., 2, 4, 6, 8, or 0).","-2038865615":"If you select \"Odd\", you will win the payout if the last digit of the last tick is an odd number (i.e., 1, 3, 5, 7, or 9).","-1416078023":"If you select \"Touch\", you win the payout if the market touches the barrier at any time during the contract period.","-1272255095":"If the exit spot is equal to the barrier or the new barrier (if a reset occurs), you don't win the payout.","-231957809":"Win maximum payout if the exit spot is higher than or equal to the upper barrier.","-464144986":"Win maximum payout if the exit spot is lower than or equal to the lower barrier.","-1031456093":"Win up to maximum payout if exit spot is between lower and upper barrier, in proportion to the difference between upper barrier and exit spot.","-968162707":"No payout if exit spot is above or equal to the upper barrier.","-299450697":"If you select \"High Tick\", you win the payout if the selected tick is the highest among the next five ticks.","-705681870":"By purchasing the \"High-to-Low\" contract, you'll win the multiplier times the difference between the high and low over the duration of the contract.","-420387848":"The high is the highest point ever reached by the market during the contract period.","-1666375348":"By purchasing the \"High-to-Close\" contract, you'll win the multiplier times the difference between the high and close over the duration of the contract.","-2024955268":"If you select “Up”, you will earn a profit by closing your position when the market price is higher than the entry spot.","-1598433845":"If you select “Down”, you will earn a profit by closing your position when the market price is lower than the entry spot.","-1092777202":"The Stop-out level on the chart indicates the price at which your potential loss equals your entire stake. When the market price reaches this level, your position will be closed automatically. This ensures that your loss does not exceed the amount you paid to purchase the contract.","-885323297":"These are optional parameters for each position that you open:","-584696680":"If you select “Take profit” and specify an amount that you’d like to earn, your position will be closed automatically when your profit is more than or equals to this amount. Your profit may be more than the amount you entered depending on the market price at closing.","-178096090":"“Take profit” cannot be updated. You may update it only when “Deal cancellation” expires.","-206909651":"The entry spot is the market price when your contract is processed by our servers.","-149836494":"Your transaction reference number is {{transaction_id}}","-1382749084":"Go back to trading","-1231210510":"Tick","-1239477911":"second","-1585766960":"min","-1652791614":"mins","-1977959027":"hours","-8998663":"Digit: {{last_digit}} ","-1435392215":"About deal cancellation","-2017825013":"Got it","-1280319153":"Cancel your trade anytime within a chosen time-frame. Triggered automatically if your trade reaches the stop out level within the chosen time-frame.","-471757681":"Risk management","-843831637":"Stop loss","-771725194":"Deal Cancellation","-45873457":"NEW","-127118348":"Choose {{contract_type}}","-543478618":"Try checking your spelling or use a different term","-338707425":"Minimum duration is 1 day","-1003473648":"Duration: {{duration}} day","-700280380":"Deal cancel. fee","-741395299":"{{value}}","-1527492178":"Purchase Locked","-725375562":"You can lock/unlock the purchase button from the Settings menu","-1358367903":"Stake","-1513281069":"Barrier 2","-390994177":"Should be between {{min}} and {{max}}","-2055106024":"Toggle between advanced and simple duration settings","-1012793015":"End time","-2037881712":"Your contract will be closed automatically at the next available asset price on <0>.","-629549519":"Commission <0/>","-2131859340":"Stop out <0/>","-1686280757":"<0>{{commission_percentage}}% of (<1/> * {{multiplier}})","-1043117679":"When your current loss equals or exceeds {{stop_out_percentage}}% of your stake, your contract will be closed at the nearest available asset price.","-477998532":"Your contract is closed automatically when your loss is more than or equals to this amount.","-243332856":"Last digit stats for latest 1000 ticks for {{ underlying_name }}","-339236213":"Multiplier","-461955353":"purchase price","-172348735":"profit","-1624674721":"contract type","-1644154369":"entry spot time","-510792478":"entry spot price","-1974651308":"exit spot time","-1600267387":"exit spot price","-514917720":"barrier","-2004386410":"Win","-1072292603":"No Change","-1631669591":"string","-1768939692":"number","-795152863":"green","-1640576332":"blue","-804983649":"yellow","-94281841":"red","-1242470654":"Earned money","-1429914047":"Low","-1893628957":"Open Time","-1896106455":"10 minutes","-999492762":"15 minutes","-1978767852":"30 minutes","-293628675":"1 hour","-385604445":"2 hours","-1965813351":"4 hours","-525321833":"1 day","-1691868913":"Touch/No Touch","-151151292":"Asians","-1048378719":"Reset Call/Reset Put","-1282312809":"High/Low Ticks","-1237186896":"Only Ups/Only Downs","-529846150":"Seconds","-2035315547":"Low barrier","-1635771697":"middle","-1529389221":"Histogram","-1819860668":"MACD","-1750896349":"D'Alembert","-102980621":"The Oscar's Grind Strategy is a low-risk positive progression strategy that first appeared in 1965. By using this strategy, the size of your contract will increase after successful trades, but remains unchanged after unsuccessful trades.","-462715374":"Untitled Bot","-2002533437":"Custom function","-215053350":"with:","-1257232389":"Specify a parameter name:","-1885742588":"with: ","-188442606":"function {{ function_name }} {{ function_params }} {{ dummy }}","-313112159":"This block is similar to the one above, except that this returns a value. The returned value can be assigned to a variable of your choice.","-1783320173":"Prematurely returns a value within a function","-1485521724":"Conditional return","-1482801393":"return","-46453136":"get","-1838027177":"first","-1182568049":"Get list item","-1675454867":"This block gives you the value of a specific item in a list, given the position of the item. It can also remove the item from the list.","-381501912":"This block creates a list of items from an existing list, using specific item positions.","-426766796":"Get sub-list","-1679267387":"in list {{ input_list }} find {{ first_or_last }} occurence of item {{ input_value }}","-2087996855":"This block gives you the position of an item in a given list.","-422008824":"Checks if a given list is empty","-1343887675":"This block checks if a given list is empty. It returns “True” if the list is empty, “False” if otherwise.","-1548407578":"length of {{ input_list }}","-1786976254":"This block gives you the total number of items in a given list.","-2113424060":"create list with item {{ input_item }} repeated {{ number }} times","-1955149944":"Repeat an item","-434887204":"set","-197957473":"as","-851591741":"Set list item","-1874774866":"ascending","-1457178757":"Sorts the items in a given list","-350986785":"Sort list","-324118987":"make text from list","-155065324":"This block creates a list from a given string of text, splitting it with the given delimiter. It can also join items in a list into a string of text.","-459051222":"Create list from text","-977241741":"List Statement","-451425933":"{{ break_or_continue }} of loop","-323735484":"continue with next iteration","-1592513697":"Break out/continue","-713658317":"for each item {{ variable }} in list {{ input_list }}","-1825658540":"Iterates through a given list","-952264826":"repeat {{ number }} times","-887757135":"Repeat (2)","-1608672233":"This block is similar to the block above, except that the number of times it repeats is determined by a given variable.","-533154446":"Repeat (1)","-1059826179":"while","-1893063293":"until","-279445533":"Repeat While/Until","-1003706492":"User-defined variable","-359097473":"set {{ variable }} to {{ value }}","-1588521055":"Sets variable value","-980448436":"Set variable","-1538570345":"Get the last trade information and result, then trade again.","-222725327":"Here is where you can decide if your bot should continue trading.","-1638446329":"Result is {{ win_or_loss }}","-1968029988":"Last trade result","-1588406981":"You can check the result of the last trade with this block.","-1459154781":"Contract Details: {{ contract_detail }}","-1652241017":"Reads a selected property from contract details list","-2082345383":"These blocks transfer control to the Purchase conditions block.","-172574065":"This block will transfer the control back to the Purchase conditions block, enabling you to purchase another contract.","-403103225":"restart","-837044282":"Ask Price {{ contract_type }}","-1033917049":"This block returns the purchase price for the selected trade type.","-1863737684":"2. Purchase conditions","-228133740":"Specify contract type and purchase conditions.","-1291088318":"Purchase conditions","-1098726473":"This block is mandatory. Only one copy of this block is allowed. You can place the Purchase block (see below) here as well as conditional blocks to define your purchase conditions.","-1777988407":"Payout {{ contract_type }}","-511116341":"This block returns the potential payout for the selected trade type","-1943211857":"Potential payout","-813464969":"buy","-53668380":"True if active contract can be sold before expiration at current market price","-43337012":"Sell profit/loss","-2112866691":"Returns the profit/loss from selling at market price","-2132417588":"This block gives you the potential profit or loss if you decide to sell your contract.","-1360483055":"set {{ variable }} to Bollinger Bands {{ band_type }} {{ dummy }}","-20542296":"Calculates Bollinger Bands (BB) from a list with a period","-1951109427":"Bollinger Bands (BB)","-857226052":"BB is a technical analysis indicator that’s commonly used by traders. The idea behind BB is that the market price stays within the upper and lower bands for 95% of the time. The bands are the standard deviations of the market price, while the line in the middle is a simple moving average line. If the price reaches either the upper or lower band, there’s a possibility of a trend reversal.","-325196350":"set {{ variable }} to Bollinger Bands Array {{ band_type }} {{ dummy }}","-199689794":"Similar to BB. This block gives you a choice of returning the values of either the lower band, higher band, or the SMA line in the middle.","-920690791":"Calculates Exponential Moving Average (EMA) from a list with a period","-960641587":"EMA is a type of moving average that places more significance on the most recent data points. It’s also known as the exponentially weighted moving average. EMA is different from SMA in that it reacts more significantly to recent price changes.","-1557584784":"set {{ variable }} to Exponential Moving Average Array {{ dummy }}","-32333344":"Calculates Moving Average Convergence Divergence (MACD) from a list","-628573413":"MACD is calculated by subtracting the long-term EMA (26 periods) from the short-term EMA (12 periods). If the short-term EMA is greater or lower than the long-term EMA than there’s a possibility of a trend reversal.","-1133676960":"Fast EMA Period {{ input_number }}","-883166598":"Period {{ input_period }}","-450311772":"set {{ variable }} to Relative Strength Index {{ dummy }}","-1861493523":"Calculates Relative Strength Index (RSI) list from a list of values with a period","-880048629":"Calculates Simple Moving Average (SMA) from a list with a period","-1150972084":"Market direction","-276935417":"This block is used to determine if the market price moves in the selected direction or not. It gives you a value of “True” or “False”.","-764931948":"in candle list get # from end {{ input_number }}","-924607337":"Returns the last digit of the latest tick","-560033550":"Returns the list of last digits of 1000 recent tick values","-74062476":"Make a List of {{ candle_property }} values in candles list with interval: {{ candle_interval_type }}","-1556495906":"Returns a list of specific values from a candle list according to selected time interval","-166816850":"Create a list of candle values (1)","-1261436901":"Candles List","-1174859923":"Read the selected candle value","-1972165119":"Read candle value (1)","-1956100732":"You can use this block to analyze the ticks, regardless of your trades","-443243232":"The content of this block is called on every tick. Place this block outside of any root block.","-641399277":"Last Tick","-1628954567":"Returns the value of the last tick","-1332756793":"This block gives you the value of the last tick.","-2134440920":"Last Tick String","-1466340125":"Tick value","-467913286":"Tick value Description","-785831237":"This block gives you a list of the last 1000 tick values.","-1546430304":"Tick List String Description","-1788626968":"Returns \"True\" if the given candle is black","-436010611":"Make a list of {{ candle_property }} values from candles list {{ candle_list }}","-1384340453":"Returns a list of specific values from a given candle list","-584859539":"Create a list of candle values (2)","-2010558323":"Read {{ candle_property }} value in candle {{ input_candle }}","-2846417":"This block gives you the selected candle value.","-1587644990":"Read candle value (2)","-1202212732":"This block returns account balance","-1737837036":"Account balance","-1963883840":"Put your blocks in here to prevent them from being removed","-1284013334":"Use this block if you want some instructions to be ignored when your bot runs. Instructions within this block won’t be executed.","-1217253851":"Log","-1987568069":"Warn","-104925654":"Console","-1956819233":"This block displays messages in the developer's console with an input that can be either a string of text, a number, boolean, or an array of data.","-1450461842":"Load block from URL: {{ input_url }}","-1088614441":"Loads blocks from URL","-1747943728":"Loads from URL","-2105753391":"Notify Telegram {{ dummy }} Access Token: {{ input_access_token }} Chat ID: {{ input_chat_id }} Message: {{ input_message }}","-1008209188":"Sends a message to Telegram","-1218671372":"Displays a notification and optionally play selected sound","-2099284639":"This block gives you the total profit/loss of your trading strategy since your bot started running. You can reset this by clicking “Clear stats” on the Transaction Stats window, or by refreshing this page in your browser.","-683825404":"Total Profit String","-718220730":"Total Profit String Description","-1861858493":"Number of runs","-264195345":"Returns the number of runs","-303451917":"This block gives you the total number of times your bot has run. You can reset this by clicking “Clear stats” on the Transaction Stats window, or by refreshing this page in your browser.","-2132861129":"Conversion Helper Block","-74095551":"Seconds Since Epoch","-15528039":"Returns the number of seconds since January 1st, 1970","-729807788":"This block returns the number of seconds since January 1st, 1970.","-1370107306":"{{ dummy }} {{ stack_input }} Run after {{ number }} second(s)","-558838192":"Delayed run","-1975250999":"This block converts the number of seconds since the Unix Epoch (1 January 1970) into a string of text representing the date and time.","-702370957":"Convert to date/time","-982729677":"Convert to timestamp","-311268215":"This block converts a string of text that represents the date and time into seconds since the Unix Epoch (1 January 1970). The time and time zone offset are optional. Example: 2019-01-01 21:03:45 GMT+0800 will be converted to 1546347825.","-1797602591":"Stop Loss: {{ currency }} {{ stop_loss }}","-1214929127":"Stop loss must be a positive number.","-780745489":"If the contract type is “Both”, then the Purchase Conditions should include both Rise and Fall using the “Conditional Block\"","-2142851225":"Multiplier trade options","-625636913":"Amount must be a positive number.","-1466383897":"Duration: {{ duration_unit }} {{ duration_value }}","-440702280":"Trade options","-1193894978":"Define your trade options such as duration and stake. Some options are only applicable for certain trade types.","-46523443":"Duration value is not allowed. To run the bot, please enter a value between {{min}} to {{max}}.","-1483427522":"Trade Type: {{ trade_type_category }} > {{ trade_type }}","-323348124":"1. Trade parameters","-1671903503":"Run once at start:","-783173909":"Trade options:","-376956832":"Here is where you define the parameters of your contract.","-1244007240":"if {{ condition }} then","-1577206704":"else if","-33796979":"true","-1434883449":"This is a single block that returns a boolean value, either true or false.","-1946404450":"Compares two values","-979918560":"This block converts the boolean value (true or false) to its opposite.","-2047257743":"Null","-1274387519":"Performs selected logic operation","-766386234":"This block performs the \"AND\" or the \"OR\" logic operation.","-790995537":"test {{ condition }}","-1860211657":"if false {{ return_value }}","-1643760249":"This block tests if a given value is true or false and returns “True” or “False” accordingly.","-1551875333":"Test value","-52486882":"Arithmetical operations","-1010436425":"This block adds the given number to the selected variable","-999773703":"Change variable","-1272091683":"Mathematical constants","-1396629894":"constrain {{ number }} low {{ low_number }} high {{ high_number }}","-425224412":"This block constrains a given number so that it is within a set range.","-2072551067":"Constrain within a range","-43523220":"remainder of {{ number1 }} ÷ {{ number2 }}","-1291857083":"Returns the remainder after a division","-592154850":"Remainder after division","-736665095":"Returns the remainder after the division of the given numbers.","-1266992960":"Math Number Description","-77191651":"{{ number }} is {{ type }}","-817881230":"even","-142319891":"odd","-1000789681":"whole","-1735674752":"Test a number","-1017805068":"This block tests a given number according to the selection and it returns a value of “True” or “False”. Available options: Even, Odd, Prime, Whole, Positive, Negative, Divisible","-1858332062":"Number","-1053492479":"Enter an integer or fractional number into this block. Please use `.` as a decimal separator for fractional numbers.","-927097011":"sum","-1653202295":"max","-1555878023":"average","-1748351061":"mode","-992067330":"Aggregate operations","-1691561447":"This block gives you a random fraction between 0.0 to 1.0","-523625686":"Random fraction number","-933024508":"Rounds a given number to an integer","-1656927862":"This block rounds a given number according to the selection: round, round up, round down.","-1495304618":"absolute","-61210477":"Operations on a given number","-181644914":"This block performs the selected operations to a given number.","-840732999":"to {{ variable }} append text {{ input_text }}","-1469497908":"Appends a given text to a variable","-1851366276":"Text Append","-1666316828":"Appends a given text to a variable.","-1902332770":"Transform {{ input_text }} to {{ transform_type }}","-1489004405":"Title Case","-904432685":"Changes text case accordingly","-882381096":"letter #","-1027605069":"letter # from end","-2066990284":"random letter","-337089610":"in text {{ input_text1 }} find {{ first_or_last }} occurence of text {{ input_text2 }}","-1966694141":"Searches through a string of text for a specific occurrence of a given character or word, and returns the position.","-697543841":"Text join","-141160667":"length of {{ input_text }}","-1133072029":"Text String Length","-1109723338":"print {{ input_text }}","-736668830":"Print","-1821552998":"trim spaces from {{ side }} of {{ input_text }}","-801766026":"right side","-474779821":"Trims spaces","-1219239717":"One or more mandatory blocks are missing from your workspace. Please add the required block(s) and then try again.","-250761331":"One or more mandatory blocks are disabled in your workspace. Please enable the required block(s) and then try again.","-1687036846":"Download block","-1266781295":"Expand","-894560707":"function","-1867119688":"Duplicate","-610728049":"Rearrange Vertically","-2033146714":"Collapse All Blocks","-958601558":"Delete Block","-1193267384":"Detach Block","-1750478127":"New variable name","-1061878051":"Y","-2047029150":"Unable to load the block file.","-1410769167":"Target must be an XML file","-609157479":"This URL is already loaded","-241945454":"Proposals are not ready","-1087890592":"Maximum loss amount reached","-1030545878":"You are rate limited for: {{ message_type }}, retrying in {{ delay }}s (ID: {{ request }})","-490766438":"You are disconnected, retrying in {{ delay }}s","-1389975609":"unknown","-1900515692":"Duration must be a positive integer","-245297595":"Please login","-1445046468":"Given candle is not valid","-1891622945":"{{hourPast}}h ago","-1723202824":"Please grant permission to view and manage Google Drive folders created with Binary Bot","-210953314":"There was an error retrieving data from Google Drive","-1521930919":"Select a Binary Bot strategy","-845301264":"There was an error listing files from Google Drive","-1452908801":"There was an error retrieving files from Google Drive","-232617824":"There was an error processing your request","-1800672151":"GBP Index","-1904030160":"Transaction performed by (App ID: {{app_id}})","-513103225":"Transaction time","-2066666313":"Credit/Debit","-2140412463":"Buy price","-1981004241":"Sell time","-600828210":"Indicative profit/loss","-706219815":"Indicative price","-3423966":"Take profit<0 />Stop loss","-2082644096":"Current stake","-538215347":"Net deposits","-280147477":"All transactions","-137444201":"Buy","-130601012":"Please select duration","-232254547":"Custom","-1577570698":"Start date","-1251526905":"Last 7 days","-360975483":"You've made no transactions of this type during this period.","-2092611555":"Sorry, this app is unavailable in your current location.","-1488537825":"If you have an account, log in to continue.","-555592125":"Unfortunately, trading options isn't possible in your country","-1571816573":"Sorry, trading is unavailable in your current location.","-1603581277":"minutes","-922253974":"Rise/Fall","-1361254291":"Higher/Lower","-335816381":"Ends In/Ends Out","-1789807039":"Asian Up/Asian Down","-330437517":"Matches/Differs","-657360193":"Over/Under","-558031309":"High Tick/Low Tick","-1714959941":"This chart display is not ideal for tick contracts","-1254554534":"Please change the chart duration to tick for a better trading experience.","-1658230823":"Contract was sold for <0 />.","-1905867404":"Contract cancelled"} \ No newline at end of file diff --git a/packages/translations/src/translations/ach.json b/packages/translations/src/translations/ach.json index 9856807086e6..2fe43392b864 100644 --- a/packages/translations/src/translations/ach.json +++ b/packages/translations/src/translations/ach.json @@ -70,10 +70,8 @@ "98972777": "crwdns1259075:0crwdne1259075:0", "100239694": "crwdns1259077:0crwdne1259077:0", "102226908": "crwdns1259079:0crwdne1259079:0", - "107206831": "crwdns1259081:0crwdne1259081:0", "108916570": "crwdns1259083:0{{duration}}crwdne1259083:0", "109073671": "crwdns1259085:0crwdne1259085:0", - "110261653": "crwdns1259087:0{{category}}crwdnd1259087:0{{platform}}crwdnd1259087:0{{type}}crwdnd1259087:0{{jurisdiction_selected_shortcode}}crwdne1259087:0", "111215238": "crwdns1259089:0crwdne1259089:0", "111718006": "crwdns1259091:0crwdne1259091:0", "111931529": "crwdns1259093:0crwdne1259093:0", @@ -182,6 +180,7 @@ "248909149": "crwdns1259293:0crwdne1259293:0", "249908265": "crwdns1259295:0{{- residence}}crwdne1259295:0", "251134918": "crwdns1259297:0crwdne1259297:0", + "251322536": "crwdns1490885:0crwdne1490885:0", "251445658": "crwdns1259299:0crwdne1259299:0", "251882697": "crwdns1335101:0crwdne1335101:0", "254912581": "crwdns1259301:0crwdne1259301:0", @@ -197,6 +196,7 @@ "265644304": "crwdns1259319:0crwdne1259319:0", "267992618": "crwdns1259321:0crwdne1259321:0", "268940240": "crwdns1259323:0{{format_balance}}crwdnd1259323:0{{currency}}crwdnd1259323:0{{format_min_withdraw_amount}}crwdnd1259323:0{{currency}}crwdne1259323:0", + "269322978": "crwdns1490887:0crwdne1490887:0", "269607721": "crwdns1259325:0crwdne1259325:0", "270339490": "crwdns1259327:0crwdne1259327:0", "270610771": "crwdns1259329:0crwdne1259329:0", @@ -212,6 +212,7 @@ "278684544": "crwdns1259349:0crwdne1259349:0", "282319001": "crwdns1259351:0crwdne1259351:0", "282564053": "crwdns1259353:0crwdne1259353:0", + "283830551": "crwdns1490889:0crwdne1490889:0", "283986166": "crwdns1259355:0{{brand_website_name}}crwdne1259355:0", "284527272": "crwdns1259357:0crwdne1259357:0", "284772879": "crwdns1259359:0crwdne1259359:0", @@ -245,7 +246,6 @@ "327534692": "crwdns1259413:0{{min}}crwdne1259413:0", "328539132": "crwdns1259415:0crwdne1259415:0", "329404045": "crwdns1259417:0{{platform}}crwdnd1259417:0{{account_title}}crwdne1259417:0", - "332886946": "crwdns1419927:0crwdne1419927:0", "333456603": "crwdns1259419:0crwdne1259419:0", "334680754": "crwdns1259421:0crwdne1259421:0", "334942497": "crwdns1259423:0crwdne1259423:0", @@ -368,7 +368,6 @@ "478280278": "crwdns1259647:0crwdne1259647:0", "479420576": "crwdns1259649:0crwdne1259649:0", "481276888": "crwdns1259651:0crwdne1259651:0", - "483246914": "crwdns1361653:0{{account_type}}crwdne1361653:0", "483279638": "crwdns1335111:0crwdne1335111:0", "483591040": "crwdns1259653:0{{ delete_count }}crwdne1259653:0", "485379166": "crwdns1259655:0crwdne1259655:0", @@ -419,7 +418,6 @@ "551569133": "crwdns1259745:0crwdne1259745:0", "554410233": "crwdns1259747:0crwdne1259747:0", "555351771": "crwdns1259749:0crwdne1259749:0", - "556095366": "crwdns1259751:0crwdne1259751:0", "556264438": "crwdns1259753:0crwdne1259753:0", "559224320": "crwdns1259755:0crwdne1259755:0", "561982839": "crwdns1259757:0crwdne1259757:0", @@ -576,6 +574,7 @@ "745656178": "crwdns1260043:0crwdne1260043:0", "745674059": "crwdns1260045:0crwdne1260045:0", "746112978": "crwdns1260047:0crwdne1260047:0", + "750886728": "crwdns1503655:0crwdne1503655:0", "751692023": "crwdns1260049:0crwdne1260049:0", "752024971": "crwdns1260051:0crwdne1260051:0", "752633544": "crwdns1260053:0crwdne1260053:0", @@ -790,7 +789,6 @@ "1023643811": "crwdns1260457:0crwdne1260457:0", "1023795011": "crwdns1260459:0crwdne1260459:0", "1024205076": "crwdns1260461:0crwdne1260461:0", - "1024760087": "crwdns1260463:0crwdne1260463:0", "1025887996": "crwdns1260465:0crwdne1260465:0", "1026046972": "crwdns1260467:0{{max_payout}}crwdne1260467:0", "1027098103": "crwdns1260469:0crwdne1260469:0", @@ -874,6 +872,7 @@ "1112582372": "crwdns1260611:0crwdne1260611:0", "1113119682": "crwdns1260613:0crwdne1260613:0", "1113292761": "crwdns1260615:0crwdne1260615:0", + "1113433728": "crwdns1503657:0crwdne1503657:0", "1117863275": "crwdns1260617:0crwdne1260617:0", "1118294625": "crwdns1260619:0{{exclusion_end}}crwdne1260619:0", "1119887091": "crwdns1260621:0crwdne1260621:0", @@ -935,7 +934,6 @@ "1189886490": "crwdns1260731:0{{platform_name_mt5}}crwdnd1260731:0{{platform_name_dxtrade}}crwdne1260731:0", "1191429031": "crwdns1260733:0{{platform_name_dxtrade}}crwdne1260733:0", "1191644656": "crwdns1260735:0crwdne1260735:0", - "1191778951": "crwdns1361657:0crwdne1361657:0", "1192708099": "crwdns1260737:0crwdne1260737:0", "1195393249": "crwdns1260739:0{{ notification_type }}crwdnd1260739:0{{ notification_sound }}crwdnd1260739:0{{ input_message }}crwdne1260739:0", "1196006480": "crwdns1260741:0crwdne1260741:0", @@ -1009,7 +1007,6 @@ "1281290230": "crwdns1260865:0crwdne1260865:0", "1282951921": "crwdns1260867:0crwdne1260867:0", "1284522768": "crwdns1260869:0crwdne1260869:0", - "1285686014": "crwdns1260871:0crwdne1260871:0", "1286094280": "crwdns1260873:0crwdne1260873:0", "1286507651": "crwdns1260875:0crwdne1260875:0", "1288965214": "crwdns1260877:0crwdne1260877:0", @@ -1105,7 +1102,6 @@ "1384222389": "crwdns1261053:0crwdne1261053:0", "1385418910": "crwdns1261055:0crwdne1261055:0", "1387503299": "crwdns1261057:0crwdne1261057:0", - "1388770399": "crwdns1361661:0crwdne1361661:0", "1389197139": "crwdns1261059:0crwdne1261059:0", "1390792283": "crwdns1261061:0crwdne1261061:0", "1391174838": "crwdns1261063:0crwdne1261063:0", @@ -1118,6 +1114,7 @@ "1396417530": "crwdns1261077:0crwdne1261077:0", "1397628594": "crwdns1261079:0crwdne1261079:0", "1399620764": "crwdns1261081:0crwdne1261081:0", + "1400341216": "crwdns1503659:0crwdne1503659:0", "1400637999": "crwdns1261083:0crwdne1261083:0", "1400732866": "crwdns1261085:0crwdne1261085:0", "1400962248": "crwdns1261087:0crwdne1261087:0", @@ -1263,9 +1260,11 @@ "1584109614": "crwdns1261355:0crwdne1261355:0", "1584578483": "crwdns1261357:0crwdne1261357:0", "1584936297": "crwdns1261359:0crwdne1261359:0", + "1585859194": "crwdns1490891:0{{platform_name_mt5}}crwdnd1490891:0{{platform_name_derivez}}crwdnd1490891:0{{platform_name_dxtrade}}crwdne1490891:0", "1587046102": "crwdns1261361:0crwdne1261361:0", "1589640950": "crwdns1261363:0crwdne1261363:0", "1589702653": "crwdns1261365:0crwdne1261365:0", + "1591933071": "crwdns1503661:0crwdne1503661:0", "1593010588": "crwdns1261367:0crwdne1261367:0", "1594147169": "crwdns1261369:0crwdne1261369:0", "1594322503": "crwdns1261371:0crwdne1261371:0", @@ -1280,7 +1279,6 @@ "1605222432": "crwdns1335141:0crwdne1335141:0", "1605292429": "crwdns1261389:0crwdne1261389:0", "1612105450": "crwdns1261391:0crwdne1261391:0", - "1613273139": "crwdns1261393:0crwdne1261393:0", "1613633732": "crwdns1261395:0crwdne1261395:0", "1615897837": "crwdns1261397:0{{ input_number }}crwdne1261397:0", "1618809782": "crwdns1261399:0crwdne1261399:0", @@ -1324,7 +1322,6 @@ "1665272539": "crwdns1261475:0crwdne1261475:0", "1665738338": "crwdns1261477:0crwdne1261477:0", "1665756261": "crwdns1261479:0crwdne1261479:0", - "1667395210": "crwdns1261481:0crwdne1261481:0", "1668138872": "crwdns1261483:0crwdne1261483:0", "1670016002": "crwdns1261485:0{{ multiplier }}crwdne1261485:0", "1670426231": "crwdns1261487:0crwdne1261487:0", @@ -1349,6 +1346,7 @@ "1694517345": "crwdns1261523:0crwdne1261523:0", "1695807119": "crwdns1261525:0crwdne1261525:0", "1700233813": "crwdns1261527:0{{selected_value}}crwdne1261527:0", + "1701447705": "crwdns1490893:0crwdne1490893:0", "1704656659": "crwdns1335145:0crwdne1335145:0", "1708413635": "crwdns1261529:0{{currency_name}}crwdnd1261529:0{{currency}}crwdne1261529:0", "1709859601": "crwdns1261531:0crwdne1261531:0", @@ -1419,6 +1417,7 @@ "1778893716": "crwdns1261657:0crwdne1261657:0", "1779519903": "crwdns1261659:0crwdne1261659:0", "1780770384": "crwdns1261661:0crwdne1261661:0", + "1781393492": "crwdns1490895:0{{platform_name_mt5}}crwdnd1490895:0{{platform_name_derivez}}crwdnd1490895:0{{platform_name_dxtrade}}crwdne1490895:0", "1782308283": "crwdns1261663:0crwdne1261663:0", "1782395995": "crwdns1261665:0crwdne1261665:0", "1782690282": "crwdns1261667:0crwdne1261667:0", @@ -1429,6 +1428,7 @@ "1788966083": "crwdns1261677:0crwdne1261677:0", "1789497185": "crwdns1261679:0crwdne1261679:0", "1790770969": "crwdns1261681:0crwdne1261681:0", + "1791017883": "crwdns1490897:0crwdne1490897:0", "1791432284": "crwdns1261683:0crwdne1261683:0", "1791971912": "crwdns1261685:0crwdne1261685:0", "1793913365": "crwdns1261687:0{{currency_symbol}}crwdne1261687:0", @@ -1549,6 +1549,7 @@ "1918832194": "crwdns1335153:0crwdne1335153:0", "1919030163": "crwdns1261909:0crwdne1261909:0", "1919594496": "crwdns1261911:0{{website_name}}crwdnd1261911:0{{website_name}}crwdne1261911:0", + "1919694313": "crwdns1503663:0crwdne1503663:0", "1920217537": "crwdns1261913:0crwdne1261913:0", "1920468180": "crwdns1261915:0crwdne1261915:0", "1921634159": "crwdns1261917:0crwdne1261917:0", @@ -1655,6 +1656,7 @@ "2037481040": "crwdns161262:0crwdne161262:0", "2037665157": "crwdns89394:0crwdne89394:0", "2037906477": "crwdns69618:0crwdne69618:0", + "2042023623": "crwdns1503665:0crwdne1503665:0", "2042050260": "crwdns84997:0crwdne84997:0", "2042115724": "crwdns1445521:0crwdne1445521:0", "2042778835": "crwdns496892:0{{legal_entity_name}}crwdne496892:0", @@ -2002,7 +2004,7 @@ "-1543016582": "crwdns496896:0{{legal_entity_name}}crwdne496896:0", "-1387062433": "crwdns81215:0crwdne81215:0", "-1088324715": "crwdns1092150:0crwdne1092150:0", - "-684271315": "crwdns81133:0crwdne81133:0", + "-329713179": "crwdns70290:0crwdne70290:0", "-1176889260": "crwdns167285:0crwdne167285:0", "-1515286538": "crwdns167287:0crwdne167287:0", "-1785463422": "crwdns81305:0crwdne81305:0", @@ -2016,7 +2018,6 @@ "-841187054": "crwdns167303:0crwdne167303:0", "-2097808873": "crwdns167305:0crwdne167305:0", "-228284848": "crwdns167307:0crwdne167307:0", - "-1443800801": "crwdns167311:0crwdne167311:0", "-1391934478": "crwdns167313:0crwdne167313:0", "-118547687": "crwdns167315:0crwdne167315:0", "-200989771": "crwdns81301:0crwdne81301:0", @@ -2045,7 +2046,6 @@ "-813779897": "crwdns1445557:0crwdne1445557:0", "-1389323399": "crwdns120676:0{{min_number}}crwdnd120676:0{{max_number}}crwdne120676:0", "-1313806160": "crwdns120998:0crwdne120998:0", - "-329713179": "crwdns70290:0crwdne70290:0", "-1598167506": "crwdns162102:0crwdne162102:0", "-1077809489": "crwdns165247:0{{platform}}crwdnd165247:0{{platform}}crwdne165247:0", "-2068479232": "crwdns165249:0{{platform}}crwdne165249:0", @@ -2093,6 +2093,7 @@ "-680528873": "crwdns496904:0{{legal_entity_name}}crwdne496904:0", "-1125193491": "crwdns81393:0crwdne81393:0", "-2068229627": "crwdns81631:0crwdne81631:0", + "-684271315": "crwdns81133:0crwdne81133:0", "-1720468017": "crwdns1335195:0crwdne1335195:0", "-186841084": "crwdns1220177:0crwdne1220177:0", "-907403572": "crwdns1220179:0{{identifier_title}}crwdne1220179:0", @@ -2225,6 +2226,7 @@ "-38915613": "crwdns117252:0crwdne117252:0", "-2137450250": "crwdns117254:0crwdne117254:0", "-1067082004": "crwdns117256:0crwdne117256:0", + "-1982432743": "crwdns1490899:0crwdne1490899:0", "-1451334536": "crwdns81293:0crwdne81293:0", "-1525879032": "crwdns81295:0crwdne81295:0", "-1425489838": "crwdns157732:0crwdne157732:0", @@ -2243,7 +2245,6 @@ "-639677539": "crwdns167707:0crwdne167707:0", "-1560098002": "crwdns167709:0crwdne167709:0", "-541870313": "crwdns167711:0crwdne167711:0", - "-72314872": "crwdns161276:0crwdne161276:0", "-58126117": "crwdns160418:0crwdne160418:0", "-1705887186": "crwdns165845:0crwdne165845:0", "-142361708": "crwdns165847:0crwdne165847:0", @@ -2345,8 +2346,11 @@ "-2056016338": "crwdns496912:0{{platform_name_mt5}}crwdne496912:0", "-599632330": "crwdns496914:0{{platform_name_mt5}}crwdnd496914:0{{platform_name_dxtrade}}crwdne496914:0", "-1196994774": "crwdns168701:0{{minimum_fee}}crwdnd168701:0{{currency}}crwdne168701:0", + "-1361372445": "crwdns1490901:0{{minimum_fee}}crwdnd1490901:0{{currency}}crwdnd1490901:0{{platform_name_derivez}}crwdnd1490901:0{{platform_name_dxtrade}}crwdne1490901:0", "-993556039": "crwdns1130196:0{{minimum_fee}}crwdnd1130196:0{{currency}}crwdnd1130196:0{{platform_name_dxtrade}}crwdne1130196:0", "-1382702462": "crwdns1130198:0{{minimum_fee}}crwdnd1130198:0{{currency}}crwdne1130198:0", + "-1995859618": "crwdns1490903:0{{platform_name_mt5}}crwdnd1490903:0{{platform_name_derivez}}crwdnd1490903:0{{platform_name_dxtrade}}crwdne1490903:0", + "-545616470": "crwdns1490905:0{{ allowed_internal }}crwdnd1490905:0{{ allowed_mt5 }}crwdnd1490905:0{{platform_name_mt5}}crwdnd1490905:0{{ allowed_derivez }}crwdnd1490905:0{{platform_name_derivez}}crwdnd1490905:0{{ allowed_dxtrade }}crwdnd1490905:0{{platform_name_dxtrade}}crwdne1490905:0", "-1151983985": "crwdns168711:0crwdne168711:0", "-1747571263": "crwdns168713:0crwdne168713:0", "-757062699": "crwdns168715:0crwdne168715:0", @@ -2631,6 +2635,7 @@ "-328128497": "crwdns118044:0crwdne118044:0", "-533935232": "crwdns838638:0crwdne838638:0", "-565431857": "crwdns838640:0crwdne838640:0", + "-1290112064": "crwdns1490907:0crwdne1490907:0", "-1669418686": "crwdns80837:0crwdne80837:0", "-1548588249": "crwdns80839:0crwdne80839:0", "-1552890620": "crwdns80841:0crwdne80841:0", @@ -2745,6 +2750,7 @@ "-1125797291": "crwdns81471:0crwdne81471:0", "-157145612": "crwdns81473:0crwdne81473:0", "-1728185398": "crwdns838710:0crwdne838710:0", + "-612396514": "crwdns1503667:0crwdne1503667:0", "-1519764694": "crwdns1092154:0crwdne1092154:0", "-1961967032": "crwdns838712:0crwdne838712:0", "-117048458": "crwdns1092156:0crwdne1092156:0", @@ -2772,6 +2778,10 @@ "-1834929362": "crwdns1445573:0crwdne1445573:0", "-1043638404": "crwdns1445575:0crwdne1445575:0", "-1766760306": "crwdns1445577:0crwdne1445577:0", + "-2142540205": "crwdns1490909:0crwdne1490909:0", + "-482715448": "crwdns1490911:0crwdne1490911:0", + "-2072411961": "crwdns1490913:0crwdne1490913:0", + "-384887227": "crwdns1490915:0crwdne1490915:0", "-1998049070": "crwdns123964:0crwdne123964:0", "-402093392": "crwdns838642:0crwdne838642:0", "-277547429": "crwdns838644:0crwdne838644:0", @@ -2913,6 +2923,10 @@ "-429248139": "crwdns124114:0crwdne124114:0", "-818926350": "crwdns124116:0crwdne124116:0", "-358055541": "crwdns1233593:0crwdne1233593:0", + "-29496115": "crwdns1490917:0crwdne1490917:0", + "-648669944": "crwdns1490919:0crwdne1490919:0", + "-794294380": "crwdns1490921:0crwdne1490921:0", + "-922510206": "crwdns1490923:0crwdne1490923:0", "-815070480": "crwdns1233597:0crwdne1233597:0", "-2111521813": "crwdns1233599:0crwdne1233599:0", "-175369516": "crwdns163356:0crwdne163356:0", @@ -2968,6 +2982,7 @@ "-712681566": "crwdns170814:0crwdne170814:0", "-1267880283": "crwdns170816:0{{field_name}}crwdne170816:0", "-2084509650": "crwdns170818:0{{field_name}}crwdne170818:0", + "-222283483": "crwdns1503669:0crwdne1503669:0", "-1779241732": "crwdns170820:0crwdne170820:0", "-188222339": "crwdns170822:0{{max_number}}crwdne170822:0", "-1673422138": "crwdns170824:0crwdne170824:0", @@ -2981,13 +2996,15 @@ "-1982499699": "crwdns496940:0{{platform_name_dbot}}crwdne496940:0", "-1567989247": "crwdns838680:0crwdne838680:0", "-184453418": "crwdns170846:0{{platform}}crwdne170846:0", - "-1769158315": "crwdns170850:0crwdne170850:0", - "-700260448": "crwdns170852:0crwdne170852:0", - "-1980366110": "crwdns1060512:0{{category}}crwdnd1060512:0{{platform}}crwdnd1060512:0{{type}}crwdne1060512:0", + "-393388362": "crwdns1503671:0crwdne1503671:0", "-790488576": "crwdns170858:0crwdne170858:0", "-926547017": "crwdns1060514:0{{platform}}crwdnd1060514:0{{platform}}crwdnd1060514:0{{account}}crwdnd1060514:0{{jurisdiction_shortcode}}crwdne1060514:0", "-1190393389": "crwdns170860:0{{platform}}crwdnd170860:0{{platform}}crwdnd170860:0{{account}}crwdne170860:0", "-2057918502": "crwdns170864:0{{platform}}crwdne170864:0", + "-1769158315": "crwdns170850:0crwdne170850:0", + "-700260448": "crwdns170852:0crwdne170852:0", + "-1936102840": "crwdns1503673:0{{category}}crwdnd1503673:0{{platform}}crwdnd1503673:0{{type}}crwdnd1503673:0{{jurisdiction_selected_shortcode}}crwdne1503673:0", + "-1570793523": "crwdns1503675:0{{category}}crwdnd1503675:0{{platform}}crwdnd1503675:0{{type}}crwdne1503675:0", "-1928229820": "crwdns170868:0crwdne170868:0", "-1087845020": "crwdns170872:0crwdne170872:0", "-1950683866": "crwdns170874:0crwdne170874:0", @@ -3013,24 +3030,14 @@ "-161656683": "crwdns81379:0crwdne81379:0", "-374736923": "crwdns81381:0crwdne81381:0", "-1793894323": "crwdns81383:0crwdne81383:0", - "-1124208206": "crwdns1361679:0{{account_title}}crwdnd1361679:0{{type_title}}crwdne1361679:0", - "-1576792859": "crwdns838686:0crwdne838686:0", - "-104382603": "crwdns1361681:0crwdne1361681:0", - "-793684335": "crwdns1361683:0crwdne1361683:0", "-1271218821": "crwdns838692:0crwdne838692:0", - "-599621079": "crwdns1361685:0{{account_type}}crwdne1361685:0", - "-1302969276": "crwdns1361687:0{{account_type}}crwdnd1361687:0{{line_break}}crwdne1361687:0", - "-1422519943": "crwdns1361689:0{{account_type}}crwdne1361689:0", - "-1731304187": "crwdns1060520:0crwdne1060520:0", - "-16048185": "crwdns838700:0crwdne838700:0", - "-1627989291": "crwdns838702:0crwdne838702:0", - "-1389025684": "crwdns838704:0crwdne838704:0", - "-1615750576": "crwdns1361691:0crwdne1361691:0", - "-724308541": "crwdns1060522:0crwdne1060522:0", - "-479119833": "crwdns1060524:0{{account_type}}crwdne1060524:0", + "-1576792859": "crwdns838686:0crwdne838686:0", "-1931257307": "crwdns1092166:0crwdne1092166:0", "-2026018074": "crwdns1092168:0{{account_type_name}}crwdne1092168:0", "-162320753": "crwdns1092170:0{{account_type_name}}crwdne1092170:0", + "-1731304187": "crwdns1060520:0crwdne1060520:0", + "-724308541": "crwdns1060522:0crwdne1060522:0", + "-479119833": "crwdns1060524:0{{account_type}}crwdne1060524:0", "-450424792": "crwdns1308115:0crwdne1308115:0", "-1760596315": "crwdns170912:0crwdne170912:0", "-705682181": "crwdns901794:0crwdne901794:0", diff --git a/packages/translations/src/translations/ar.json b/packages/translations/src/translations/ar.json index e58851075785..3221e6318671 100644 --- a/packages/translations/src/translations/ar.json +++ b/packages/translations/src/translations/ar.json @@ -70,10 +70,8 @@ "98972777": "random item", "100239694": "Upload front of card from your computer", "102226908": "Field cannot be empty", - "107206831": "We’ll review your document and notify you of its status within 1-3 days.", "108916570": "Duration: {{duration}} days", "109073671": "Please use an e-wallet that you have used for deposits previously. Ensure the e-wallet supports withdrawal. See the list of e-wallets that support withdrawals <0>here.", - "110261653": "Congratulations, you have successfully created your {{category}} {{platform}} <0>{{type}} {{jurisdiction_selected_shortcode}} account. To start trading, transfer funds from your Deriv account into this account.", "111215238": "Move away from direct light", "111718006": "End date", "111931529": "Max. total stake over 7 days", @@ -182,6 +180,7 @@ "248909149": "Send a secure link to your phone", "249908265": "Are you a citizen of {{- residence}}?", "251134918": "Account Information", + "251322536": "Deriv EZ accounts", "251445658": "Dark theme", "251882697": "Thank you! Your response has been recorded into our system.<0/><0/>Please click ‘OK’ to continue.", "254912581": "This block is similar to EMA, except that it gives you the entire EMA line based on the input list and the given period.", @@ -197,6 +196,7 @@ "265644304": "Trade types", "267992618": "The platforms lack key features or functionality.", "268940240": "Your balance ({{format_balance}} {{currency}}) is less than the current minimum withdrawal allowed ({{format_min_withdraw_amount}} {{currency}}). Please top up your account to continue with your withdrawal.", + "269322978": "Deposit with your local currency via peer-to-peer exchange with fellow traders in your country.", "269607721": "Upload", "270339490": "If you select \"Over\", you will win the payout if the last digit of the last tick is greater than your prediction.", "270610771": "In this example, the open price of a candle is assigned to the variable \"candle_open_price\".", @@ -212,6 +212,7 @@ "278684544": "get sub-list from # from end", "282319001": "Check your image", "282564053": "Next, we'll need your proof of address.", + "283830551": "Your address doesn’t match your profile", "283986166": "Self-exclusion on the website only applies to your {{brand_website_name}} account and does not include other companies or websites.", "284527272": "antimode", "284772879": "Contract", @@ -245,7 +246,6 @@ "327534692": "Duration value is not allowed. To run the bot, please enter {{min}}.", "328539132": "Repeats inside instructions specified number of times", "329404045": "<0>Switch to your real account<1> to create a {{platform}} {{account_title}} account.", - "332886946": "<1>Need help using Acuity?<0/>Check out this <2>user guide.", "333456603": "Withdrawal limits", "334680754": "Switch to your real account to create a Deriv MT5 account", "334942497": "Buy time", @@ -368,7 +368,6 @@ "478280278": "This block displays a dialog box that uses a customised message to prompt for an input. The input can be either a string of text or a number and can be assigned to a variable. When the dialog box is displayed, your strategy is paused and will only resume after you enter a response and click \"OK\".", "479420576": "Tertiary", "481276888": "Goes Outside", - "483246914": "Add your Deriv MT5 {{account_type}} STP account under Deriv (FX) Ltd regulated by Labuan Financial Services Authority (Licence no. MB/18/0024).", "483279638": "Assessment Completed<0/><0/>", "483591040": "Delete all {{ delete_count }} blocks?", "485379166": "View transactions", @@ -419,7 +418,6 @@ "551569133": "Learn more about trading limits", "554410233": "This is a top-10 common password", "555351771": "After defining trade parameters and trade options, you may want to instruct your bot to purchase contracts when specific conditions are met. To do that you can use conditional blocks and indicators blocks to help your bot to make decisions.", - "556095366": "We'll process your details within a few minutes and notify its status via email.", "556264438": "Time interval", "559224320": "Our classic “drag-and-drop” tool for creating trading bots, featuring pop-up trading charts, for advanced users.", "561982839": "Change your currency", @@ -576,6 +574,7 @@ "745656178": "Use this block to sell your contract at the market price.", "745674059": "Returns the specific character from a given string of text according to the selected option. ", "746112978": "Your computer may take a few seconds to update", + "750886728": "Switch to your real account to submit your documents", "751692023": "We <0>do not guarantee a refund if you make a wrong transfer.", "752024971": "Reached maximum number of digits", "752633544": "You will need to submit proof of identity and address once you reach certain thresholds", @@ -790,7 +789,6 @@ "1023643811": "This block purchases contract of a specified type.", "1023795011": "Even/Odd", "1024205076": "Logic operation", - "1024760087": "You are verified to add this account", "1025887996": "Negative Balance Protection", "1026046972": "Please enter a payout amount that's lower than {{max_payout}}.", "1027098103": "Leverage gives you the ability to trade a larger position using your existing capital. Leverage varies across different symbols.", @@ -874,6 +872,7 @@ "1112582372": "Interval duration", "1113119682": "This block gives you the selected candle value from a list of candles.", "1113292761": "Less than 8MB", + "1113433728": "Resubmit your proof of identity and address", "1117863275": "Security and safety", "1118294625": "You have chosen to exclude yourself from trading on our website until {{exclusion_end}}. If you are unable to place a trade or deposit after your self-exclusion period, please contact us via live chat.", "1119887091": "Verification", @@ -935,7 +934,6 @@ "1189886490": "Please create another Deriv, {{platform_name_mt5}}, or {{platform_name_dxtrade}} account.", "1191429031": "Please click on the link in the email to change your <0>{{platform_name_dxtrade}} password.", "1191644656": "Predict the market direction and select either “Up” or “Down” to open a position. We will charge a commission when you open a position.", - "1191778951": "Check your proof of identity and address", "1192708099": "Duration unit", "1195393249": "Notify {{ notification_type }} with sound: {{ notification_sound }} {{ input_message }}", "1196006480": "Profit threshold", @@ -1009,7 +1007,6 @@ "1281290230": "Select", "1282951921": "Only Downs", "1284522768": "If \"Loss\" is selected, it will return \"True\" if your last trade was unsuccessful. Otherwise, it will return an empty string.", - "1285686014": "Pending proof of identity review", "1286094280": "Withdraw", "1286507651": "Close identity verification screen", "1288965214": "Passport", @@ -1105,7 +1102,6 @@ "1384222389": "Please submit valid identity documents to unlock the cashier.", "1385418910": "Please set a currency for your existing real account before creating another account.", "1387503299": "Log in", - "1388770399": "Proof of identity required", "1389197139": "Import error", "1390792283": "Trade parameters", "1391174838": "Potential payout:", @@ -1118,6 +1114,7 @@ "1396417530": "Bear Market Index", "1397628594": "Insufficient funds", "1399620764": "We're legally obliged to ask for your financial information.", + "1400341216": "We’ll review your documents and notify you of its status within 1 to 3 days.", "1400637999": "(All fields are required)", "1400732866": "View from camera", "1400962248": "High-Close", @@ -1263,9 +1260,11 @@ "1584109614": "Ticks String List", "1584578483": "50+ assets: forex, stocks, stock indices, synthetics indices, and cryptocurrencies.", "1584936297": "XML file contains unsupported elements. Please check or modify file.", + "1585859194": "We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts, your Deriv fiat and {{platform_name_derivez}} accounts, and your Deriv fiat and {{platform_name_dxtrade}} accounts.", "1587046102": "Documents from that country are not currently supported — try another document type", "1589640950": "Resale of this contract is not offered.", "1589702653": "Proof of address", + "1591933071": "Resubmit document", "1593010588": "Login now", "1594147169": "Please come back in", "1594322503": "Sell is available", @@ -1280,7 +1279,6 @@ "1605222432": "I have no knowledge and experience in trading at all.", "1605292429": "Max. total loss", "1612105450": "Get substring", - "1613273139": "Resubmit proof of identity and address", "1613633732": "Interval should be between 10-60 minutes", "1615897837": "Signal EMA Period {{ input_number }}", "1618809782": "Maximum withdrawal", @@ -1324,7 +1322,6 @@ "1665272539": "Remember: You cannot log in to your account until the selected date.", "1665738338": "Balance", "1665756261": "Go to live chat", - "1667395210": "Your proof of identity was submitted successfully", "1668138872": "Modify account settings", "1670016002": "Multiplier: {{ multiplier }}", "1670426231": "End Time", @@ -1349,6 +1346,7 @@ "1694517345": "Enter a new email address", "1695807119": "Could not load Google Drive blocks", "1700233813": "Transfer from {{selected_value}} is not allowed, Please choose another account from dropdown", + "1701447705": "Please update your address", "1704656659": "How much experience do you have in CFD trading?", "1708413635": "For your {{currency_name}} ({{currency}}) account", "1709859601": "Exit Spot Time", @@ -1419,6 +1417,7 @@ "1778893716": "Click here", "1779519903": "Should be a valid number.", "1780770384": "This block gives you a random fraction between 0.0 to 1.0.", + "1781393492": "We do not charge a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts, your Deriv fiat and {{platform_name_derivez}} accounts and your Deriv fiat and {{platform_name_dxtrade}} accounts.", "1782308283": "Quick strategy", "1782395995": "Last Digit Prediction", "1782690282": "Blocks menu", @@ -1429,6 +1428,7 @@ "1788966083": "01-07-1999", "1789497185": "Make sure your passport details are clear to read, with no blur or glare", "1790770969": "FX-majors (standard/micro lots), FX-minors, Commodities, Cryptocurrencies", + "1791017883": "Check out this <0>user guide.", "1791432284": "Search for country", "1791971912": "Recent", "1793913365": "To deposit money, please switch to your {{currency_symbol}} account.", @@ -1549,6 +1549,7 @@ "1918832194": "No experience", "1919030163": "Tips to take a good selfie", "1919594496": "{{website_name}} is not affiliated with any payment agents. Customers deal with payment agents at their sole risk. Customers are advised to check the credentials of payment agents and the accuracy of any information about payment agents (on {{website_name}} or elsewhere) before using their services.", + "1919694313": "To start trading, transfer funds from your Deriv account into this account.", "1920217537": "Compare", "1920468180": "How to use the SMA block", "1921634159": "A few personal details", @@ -1655,6 +1656,7 @@ "2037481040": "Choose a way to fund your account", "2037665157": "Expand All Blocks", "2037906477": "get sub-list from #", + "2042023623": "We’re reviewing your documents. This should take about 5 minutes.", "2042050260": "- Purchase price: the purchase price (stake) of the contract", "2042115724": "Upload a screenshot of your account and personal details page with your name, account number, phone number, and email address.", "2042778835": "This complaints policy, which may change from time to time, applies to your account registered with {{legal_entity_name}}.", @@ -2002,7 +2004,7 @@ "-1543016582": "I hereby confirm that the tax information I provided is true and complete. I will also inform {{legal_entity_name}} about any changes to this information.", "-1387062433": "Account opening reason", "-1088324715": "We’ll review your documents and notify you of its status within 1 - 3 working days.", - "-684271315": "OK", + "-329713179": "Ok", "-1176889260": "Please select a document type.", "-1515286538": "Please enter your document number. ", "-1785463422": "Verify your identity", @@ -2016,7 +2018,6 @@ "-841187054": "Try Again", "-2097808873": "We were unable to verify your ID with the details you provided. ", "-228284848": "We were unable to verify your ID with the details you provided.", - "-1443800801": "Your ID number was submitted successfully", "-1391934478": "Your ID is verified. You will also need to submit proof of your address.", "-118547687": "ID verification passed", "-200989771": "Go to personal details", @@ -2045,7 +2046,6 @@ "-813779897": "Proof of ownership verification passed.", "-1389323399": "You should enter {{min_number}}-{{max_number}} characters.", "-1313806160": "Please request a new password and check your email for the new token.", - "-329713179": "Ok", "-1598167506": "Success", "-1077809489": "You have a new {{platform}} password to log in to your {{platform}} accounts on the web and mobile apps.", "-2068479232": "{{platform}} password", @@ -2093,6 +2093,7 @@ "-680528873": "Your account will be opened with {{legal_entity_name}} and will be subject to the laws of Samoa.", "-1125193491": "Add account", "-2068229627": "I am not a PEP, and I have not been a PEP in the last 12 months.", + "-684271315": "OK", "-1720468017": "In providing our services to you, we are required to obtain information from you in order to assess whether a given product or service is appropriate for you.", "-186841084": "Change your login email", "-907403572": "To change your email address, you'll first need to unlink your email address from your {{identifier_title}} account.", @@ -2225,6 +2226,7 @@ "-38915613": "Unsaved changes", "-2137450250": "You have unsaved changes. Are you sure you want to discard changes and leave this page?", "-1067082004": "Leave Settings", + "-1982432743": "It appears that the address in your document doesn’t match the address\n in your Deriv profile. Please update your personal details now with the\n correct address.", "-1451334536": "Continue trading", "-1525879032": "Your documents for proof of address is expired. Please submit again.", "-1425489838": "Proof of address verification not required", @@ -2243,7 +2245,6 @@ "-639677539": "Buy cryptocurrencies", "-1560098002": "Buy cryptocurrencies via fiat onramp", "-541870313": "Deposit via payment agents", - "-72314872": "Deposit in your local currency via peer-to-peer exchange with fellow traders in your country.", "-58126117": "Your simple access to crypto. Fast and secure way to exchange and purchase cryptocurrencies. 24/7 live chat support.", "-1705887186": "Your deposit is successful.", "-142361708": "In process", @@ -2345,8 +2346,11 @@ "-2056016338": "You’ll not be charged a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts.", "-599632330": "We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts and between your Deriv fiat and {{platform_name_dxtrade}} accounts.", "-1196994774": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency accounts.", + "-1361372445": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts, your Deriv cryptocurrency and {{platform_name_derivez}} accounts, and your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.", "-993556039": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts and between your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.", "-1382702462": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts.", + "-1995859618": "You may transfer between your Deriv fiat, cryptocurrency, {{platform_name_mt5}}, {{platform_name_derivez}} and {{platform_name_dxtrade}} accounts.", + "-545616470": "Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts, up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts, up to {{ allowed_derivez }} transfers between your Deriv and {{platform_name_derivez}} accounts, and up to {{ allowed_dxtrade }} transfers between your Deriv and {{platform_name_dxtrade}} accounts.", "-1151983985": "Transfer limits may vary depending on the exchange rates.", "-1747571263": "Please bear in mind that some transfers may not be possible.", "-757062699": "Transfers may be unavailable due to high volatility or technical issues and when the exchange markets are closed.", @@ -2631,6 +2635,7 @@ "-328128497": "Financial", "-533935232": "Financial BVI", "-565431857": "Financial Labuan", + "-1290112064": "Deriv EZ", "-1669418686": "AUD/CAD", "-1548588249": "AUD/CHF", "-1552890620": "AUD/JPY", @@ -2745,6 +2750,7 @@ "-1125797291": "Password updated.", "-157145612": "Please log in with your updated password.", "-1728185398": "Resubmit proof of address", + "-612396514": "Please resubmit your proof of address.", "-1519764694": "Your proof of address is verified.", "-1961967032": "Resubmit proof of identity", "-117048458": "Please submit your proof of identity.", @@ -2772,6 +2778,10 @@ "-1834929362": "Upload my document", "-1043638404": "<0>Proof of ownership <1>verification failed", "-1766760306": "<0><1>Please upload your document <2>with the correct details. <3>", + "-2142540205": "It appears that the address in your document doesn’t match the address in your Deriv profile. Please update your personal details now with the correct address.", + "-482715448": "Go to Personal details", + "-2072411961": "Your proof of address has been verified", + "-384887227": "Update the address in your profile.", "-1998049070": "If you agree to our use of cookies, click on Accept. For more information, <0>see our policy.", "-402093392": "Add Deriv Account", "-277547429": "A Deriv account will allow you to fund (and withdraw from) your MT5 account(s).", @@ -2913,6 +2923,10 @@ "-429248139": "5. Disclaimer", "-818926350": "The Financial Commission accepts appeals for 45 days following the date of the incident and only after the trader has tried to resolve the issue with the company directly.", "-358055541": "Power up your trades with cool new tools", + "-29496115": "We've partnered with Acuity to give you a suite of intuitive trading tools for MT5 so you can keep track of market events and trends, free of charge!<0/><0/>", + "-648669944": "Download the Acuity suite and take advantage of the <1>Macroeconomic Calendar, Market Alerts, Research Terminal, and <1>Signal Centre Trade Ideas without leaving your MT5 terminal.<0/><0/>", + "-794294380": "This suite is only available for Windows, and is most recommended for financial assets.", + "-922510206": "Need help using Acuity?", "-815070480": "Disclaimer: The trading services and information provided by Acuity should not be construed as a solicitation to invest and/or trade. Deriv does not offer investment advice. The past is not a guide to future performance, and strategies that have worked in the past may not work in the future.", "-2111521813": "Download Acuity", "-175369516": "Welcome to Deriv X", @@ -2968,6 +2982,7 @@ "-712681566": "Peer-to-peer exchange", "-1267880283": "{{field_name}} is required", "-2084509650": "{{field_name}} is not properly formatted.", + "-222283483": "Account opening reason*", "-1779241732": "First line of address is not in a proper format.", "-188222339": "This should not exceed {{max_number}} characters.", "-1673422138": "State/Province is not in a proper format.", @@ -2981,13 +2996,15 @@ "-1982499699": "Explore {{platform_name_dbot}}", "-1567989247": "Submit your proof of identity and address", "-184453418": "Enter your {{platform}} password", - "-1769158315": "real", - "-700260448": "demo", - "-1980366110": "Congratulations, you have successfully created your {{category}} {{platform}} <0>{{type}} account.", + "-393388362": "We’re reviewing your documents. This should take about 1 to 3 days.", "-790488576": "Forgot password?", "-926547017": "Enter your {{platform}} password to add a {{platform}} {{account}} {{jurisdiction_shortcode}} account.", "-1190393389": "Enter your {{platform}} password to add a {{platform}} {{account}} account.", "-2057918502": "Hint: You may have entered your Deriv password, which is different from your {{platform}} password.", + "-1769158315": "real", + "-700260448": "demo", + "-1936102840": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} account. ", + "-1570793523": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} account.", "-1928229820": "Reset Deriv X investor password", "-1087845020": "main", "-1950683866": "investor", @@ -3013,24 +3030,14 @@ "-161656683": "Current investor password", "-374736923": "New investor password", "-1793894323": "Create or reset investor password", - "-1124208206": "Switch to your real account to create a DMT5 {{account_title}} {{type_title}} account.", - "-1576792859": "Proof of identity and address are required", - "-104382603": "Check your proof of address", - "-793684335": "Check your proof of identity", "-1271218821": "Account added", - "-599621079": "Add your Deriv MT5 {{account_type}} account under Deriv (SVG) LLC (company no. 273 LLC 2020).", - "-1302969276": "Add your Deriv MT5 {{account_type}} account under Deriv (BVI) Ltd, regulated by the British Virgin Islands Financial Services Commission (License no. SIBA/{{line_break}}L/18/1114).", - "-1422519943": "Add Your DMT5 {{account_type}} account under Deriv (V) Ltd, regulated by the Vanuatu Financial Services Commission.", - "-1731304187": "Add your Deriv MT5 CFDs account under Deriv Investments (Europe) Limited regulated by the Malta Financial Services Authority (MFSA) (licence no. IS/70156).", - "-16048185": "To create this account first we need your proof of identity and address.", - "-1627989291": "To create this account first we need you to resubmit your proof of identity.", - "-1389025684": "To create this account first we need you to resubmit your proof of identity and address.", - "-1615750576": "You will be able to open this account once your submitted documents have been verified.", - "-724308541": "Jurisdiction for your Deriv MT5 CFDs account", - "-479119833": "Choose a jurisdiction for your Deriv MT5 {{account_type}} account", + "-1576792859": "Proof of identity and address are required", "-1931257307": "You will need to submit proof of identity", "-2026018074": "Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (SVG) LLC (company no. 273 LLC 2020).", "-162320753": "Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (BVI) Ltd, regulated by the British Virgin Islands Financial Services Commission (License no. SIBA/L/18/1114).", + "-1731304187": "Add your Deriv MT5 CFDs account under Deriv Investments (Europe) Limited regulated by the Malta Financial Services Authority (MFSA) (licence no. IS/70156).", + "-724308541": "Jurisdiction for your Deriv MT5 CFDs account", + "-479119833": "Choose a jurisdiction for your Deriv MT5 {{account_type}} account", "-450424792": "You need a real account (fiat currency or cryptocurrency) in Deriv to create a real Deriv MT5 account.", "-1760596315": "Create a Deriv account", "-705682181": "Malta", diff --git a/packages/translations/src/translations/es.json b/packages/translations/src/translations/es.json index 4a849836ba7b..49762a8c26a4 100644 --- a/packages/translations/src/translations/es.json +++ b/packages/translations/src/translations/es.json @@ -70,10 +70,8 @@ "98972777": "artículo aleatorio", "100239694": "Suba la parte delantera de la documento de identidad desde su computadora", "102226908": "El campo no puede estar vacío", - "107206831": "Revisaremos su documento y le avisaremos de su estado en un plazo de 1 a 3 días.", "108916570": "Duración: {{duration}} días", "109073671": "Por favor, utilice la billetera electrónica que ha usado para depósitos anteriormente. Asegúrese de que su billetera electrónica admite retiros. Puede consultar la lista de billeteras electrónicas que admiten retiros <0>aquí.", - "110261653": "Felicidades, ha creado con éxito su cuenta {{category}} {{platform}} <0>{{type}}{{jurisdiction_selected_shortcode}}. Para empezar a operar, transfiera fondos de su cuenta Deriv a esta cuenta.", "111215238": "Aléjese de la luz directa", "111718006": "Fecha final", "111931529": "Inversión máx. total durante 7 días", @@ -182,6 +180,7 @@ "248909149": "Envíe un enlace seguro a su teléfono", "249908265": "¿Es usted ciudadano de {{- residence}}?", "251134918": "Información de la cuenta", + "251322536": "Cuentas Deriv EZ", "251445658": "Tema oscuro", "251882697": "¡Gracias! Su respuesta se ha registrado en nuestro sistema.<0/><0/> Haga clic en «OK» para continuar.", "254912581": "Este bloque es similar al EMA, excepto que le da la línea EMA completa basada en la lista de entrada y el período dado.", @@ -197,6 +196,7 @@ "265644304": "Tipos de contratos", "267992618": "Las plataformas carecen de características o funcionalidades clave.", "268940240": "Su saldo ({{format_balance}} {{currency}}) es inferior al retiro mínimo permitido actualmente ({{format_min_withdraw_amount}} {{currency}}). Por favor, recargue su cuenta para continuar con su retiro.", + "269322978": "Deposite en su moneda local a través de un intercambio entre pares (P2P) con otros traders en su país.", "269607721": "Subir", "270339490": "Si selecciona \"Sobre\", ganará el pago si el último dígito del último tick es mayor que su predicción.", "270610771": "En este ejemplo, el precio de apertura de una vela se asigna a la variable \"candle_open_price\".", @@ -212,6 +212,7 @@ "278684544": "obtener sublista desde # desde el final", "282319001": "Revise su foto", "282564053": "A continuación, necesitaremos su prueba de dirección.", + "283830551": "Tu dirección no coincide con la de tu perfil", "283986166": "La autoexclusión en este sitio web solo se aplica a su cuenta {{brand_website_name}} y no incluye otras empresas o sitios web.", "284527272": "antimoda", "284772879": "Contrato", @@ -245,7 +246,6 @@ "327534692": "El valor de duración no está permitido. Para ejecutar el bot, ingrese {{min}}.", "328539132": "Repite las instrucciones internas especificando el número de veces", "329404045": "<0>Cambie a su cuenta real<1> para crear una cuenta {{platform}} {{account_title}}.", - "332886946": "<1>¿Necesita ayuda para usar Acuity? <0/>Consulte esta <2>guía del usuario.", "333456603": "Límites de retiro", "334680754": "Cambie a su cuenta real para crear una cuenta Deriv MT5", "334942497": "Hora de compra", @@ -368,7 +368,6 @@ "478280278": "Este bloque muestra un cuadro de diálogo que utiliza un mensaje personalizado para solicitar una entrada. La entrada puede ser una cadena de texto o un número y puede asignarse a una variable. Cuando se muestra el cuadro de diálogo, su estrategia se detiene y solo se reanudará después que ingrese una respuesta y haga clic en \"OK\".", "479420576": "Terciario", "481276888": "Sale fuera", - "483246914": "Añada su cuenta Deriv MT5 STP {{account_type}} a Deriv (FX) Ltd, regulada por la Autoridad de Servicios Financieros de Labuan (licencia nº MB/18/0024).", "483279638": "Evaluación completada<0/><0/>", "483591040": "Eliminar todos los {{ delete_count }} bloques?", "485379166": "Ver transacciones", @@ -419,7 +418,6 @@ "551569133": "Aprenda más sobre los límites de trading", "554410233": "Esta es una de las 10 contraseñas más comunes", "555351771": "Después de definir los parámetros y las opciones comerciales, es posible que desee indicarle a su bot que compre contratos cuando se cumplan condiciones específicas. Para hacerlo, puede usar bloques condicionales e indicadores para ayudar a su bot a tomar decisiones.", - "556095366": "Procesaremos sus datos en unos minutos y le notificaremos sobre su estado por correo electrónico.", "556264438": "Intervalo de tiempo", "559224320": "Nuestra clásica herramienta de “arrastrar y soltar” para crear robots de trading, con gráficos de trading emergentes, para usuarios avanzados.", "561982839": "Cambie su moneda", @@ -576,6 +574,7 @@ "745656178": "Use este bloque para vender su contrato al precio de mercado.", "745674059": "Devuelve el carácter específico de una cadena de texto dada de acuerdo con la opción seleccionada. ", "746112978": "Su computadora puede tardar unos segundos en actualizarse", + "750886728": "Switch to your real account to submit your documents", "751692023": "<0>No garantizamos un reembolso si realiza una transferencia equivocada.", "752024971": "Número máximo de dígitos alcanzado", "752633544": "Deberá presentar prueba de identidad y de dirección cuando haya alcanzado ciertos umbrales", @@ -790,7 +789,6 @@ "1023643811": "Este bloque compra un contrato de un tipo específico.", "1023795011": "Par/Impar", "1024205076": "Operación lógica", - "1024760087": "Está verificado para añadir esta cuenta", "1025887996": "Protección contra saldo negativo", "1026046972": "Por favor, introduzca un importe de pago inferior a {{max_payout}}.", "1027098103": "El apalancamiento le brinda la posibilidad de operar con una posición más amplia utilizando su capital existente. El apalancamiento varía según los diferentes símbolos.", @@ -874,6 +872,7 @@ "1112582372": "Duración del intervalo", "1113119682": "Este bloque le da el valor de vela seleccionado de una lista de velas.", "1113292761": "Menos de 8MB", + "1113433728": "Resubmit your proof of identity and address", "1117863275": "Seguridad y privacidad", "1118294625": "Ha elegido excluirse del comercio en nuestro sitio web hasta el {{exclusion_end}}. Si no puede realizar una transacción o depósito después de su período de autoexclusión, comuníquese con nosotros a través del chat en vivo.", "1119887091": "Verificación", @@ -935,7 +934,6 @@ "1189886490": "Por favor, cree otra cuenta Deriv, {{platform_name_mt5}} o {{platform_name_dxtrade}}.", "1191429031": "Haga clic en el enlace del correo electrónico para cambiar su contraseña <0>{{platform_name_dxtrade}}.", "1191644656": "Prediga la dirección del mercado y seleccionar \"Arriba\" o \"Abajo\" para abrir una posición. Cobraremos una comisión cuando abra una posición.", - "1191778951": "Compruebe su prueba de identidad y dirección", "1192708099": "Unidad de duración", "1195393249": "Notificar {{ notification_type }} con sonido: {{ notification_sound }} {{ input_message }}", "1196006480": "Umbral de ganancias", @@ -1009,7 +1007,6 @@ "1281290230": "Seleccionar", "1282951921": "Solo Abajo", "1284522768": "Si se selecciona \"Pérdida\", devolverá \"Verdadero\" si su última operación no tuvo éxito. De lo contrario, devolverá una cadena vacía.", - "1285686014": "Revisión de la prueba de identidad pendiente", "1286094280": "Retirar", "1286507651": "Cerrar la pantalla de verificación de identidad", "1288965214": "Pasaporte", @@ -1105,7 +1102,6 @@ "1384222389": "Envíe documentos de identidad válidos para desbloquear el cajero.", "1385418910": "Ajuste una moneda para su cuenta real existente antes de crear otra cuenta.", "1387503299": "Iniciar sesión", - "1388770399": "Se requiere prueba de identidad", "1389197139": "Error de importación", "1390792283": "Parámetros comerciales", "1391174838": "Pago potencial:", @@ -1118,6 +1114,7 @@ "1396417530": "Índice del Mercado Bajista", "1397628594": "Fondos insuficientes", "1399620764": "Estamos legalmente obligados a solicitar su información financiera.", + "1400341216": "We’ll review your documents and notify you of its status within 1 to 3 days.", "1400637999": "(Todos los campos son obligatorios)", "1400732866": "Vista desde la cámara", "1400962248": "Alto-Cierre", @@ -1263,9 +1260,11 @@ "1584109614": "Lista de cadenas de ticks", "1584578483": "Más de 50 activos: forex, acciones, índices bursátiles, índices sintéticos y criptomonedas.", "1584936297": "El archivo XML contiene elementos no soportados. Por favor, compruebe o modifique el archivo.", + "1585859194": "Cobraremos una comisión de transferencia del 1% por las transferencias en diferentes divisas entre sus cuentas Deriv fiat y {{platform_name_mt5}}, sus cuentas Deriv fiat y {{platform_name_derivez}}, y entre sus cuentas Deriv fiat y {{platform_name_dxtrade}}.", "1587046102": "Actualmente no se admiten documentos de ese país: pruebe con otro tipo de documento", "1589640950": "No se ofrece reventa de este contrato.", "1589702653": "Prueba de dirección", + "1591933071": "Resubmit document", "1593010588": "Inicie sesión ahora", "1594147169": "Por favor regrese en", "1594322503": "Venta disponible", @@ -1280,7 +1279,6 @@ "1605222432": "No tengo ningún conocimiento ni experiencia en trading.", "1605292429": "Pérdida máx. total", "1612105450": "Obtener subcadena", - "1613273139": "Vuelva a enviar la prueba de identidad y de dirección", "1613633732": "El intervalo debe estar entre 10 y 60 minutos", "1615897837": "Período de EMA de señal {{ input_number }}", "1618809782": "Retiro máximo", @@ -1324,7 +1322,6 @@ "1665272539": "Recuerde: no puede iniciar sesión en su cuenta hasta la fecha seleccionada.", "1665738338": "Balance", "1665756261": "Ir al chat en vivo", - "1667395210": "Su prueba de identidad se envió correctamente", "1668138872": "Modificar los ajustes de cuenta", "1670016002": "Multiplicador: {{ multiplier }}", "1670426231": "Hora de finalización", @@ -1349,6 +1346,7 @@ "1694517345": "Introduzca una nueva dirección de correo electrónico", "1695807119": "No se pudieron cargar los bloques de Google Drive", "1700233813": "No se permite la transferencia desde {{selected_value}}. Elija otra cuenta del menú desplegable", + "1701447705": "Por favor, actualice su dirección", "1704656659": "¿Cuánta experiencia tiene en el trafing con CFD?", "1708413635": "Para su cuenta {{currency_name}} ({{currency}})", "1709859601": "Tiempo del punto de salida", @@ -1419,6 +1417,7 @@ "1778893716": "Haga clic aquí", "1779519903": "Debe ser un número válido.", "1780770384": "Este bloque le da una fracción aleatoria entre 0.0 a 1.0.", + "1781393492": "No cobramos comisión por las transferencias en la misma moneda entre sus cuentas Deriv fiat y {{platform_name_mt5}}, sus cuentas Deriv fiat y {{platform_name_derivez}}, y entre sus cuentas Deriv fiat y {{platform_name_dxtrade}}.", "1782308283": "Estrategia rápida", "1782395995": "Predicción del último dígito", "1782690282": "Menú de bloques", @@ -1429,6 +1428,7 @@ "1788966083": "01-07-1999", "1789497185": "Asegúrese de que los detalles de su pasaporte sean claros para leer, sin borrosidad ni reflejos", "1790770969": "FX-mayores (lotes estándar / micro), FX-menores, Materias primas, Criptomonedas", + "1791017883": "Consulte esta <0>guía del usuario.", "1791432284": "Buscar por país", "1791971912": "Reciente", "1793913365": "Para depositar dinero, cambie a su cuenta de {{currency_symbol}}.", @@ -1549,6 +1549,7 @@ "1918832194": "Sin experiencia", "1919030163": "Consejos para sacarse un buen selfie", "1919594496": "{{website_name}} no está asociado con ningún agente de pago. Los clientes tratan con los agentes de pago bajo su propia responsabilidad. Se recomienda a los clientes que comprueben las credenciales de los agentes de pago y la exactitud de cualquier información sobre los agentes de pago (en {{website_name}} o en otro lugar) antes de utilizar sus servicios.", + "1919694313": "To start trading, transfer funds from your Deriv account into this account.", "1920217537": "Comparar", "1920468180": "Cómo usar el bloque SMA", "1921634159": "Algunos datos personales", @@ -1655,6 +1656,7 @@ "2037481040": "Elija una forma de depositar fondos en su cuenta", "2037665157": "Expandir todos los bloques", "2037906477": "obtener sub-lista desde #", + "2042023623": "We’re reviewing your documents. This should take about 5 minutes.", "2042050260": "- Precio de compra: el precio de compra (inversión) del contrato", "2042115724": "Suba una captura de pantalla de su cuenta y de la página de datos personales con su nombre, número de cuenta, número de teléfono y dirección de correo electrónico.", "2042778835": "Esta política de quejas, que puede cambiar de vez en cuando, se aplica a su(s) cuenta(s) registrada(s) con {{legal_entity_name}}.", @@ -2002,7 +2004,7 @@ "-1543016582": "Por la presente declaro que la información tributaria que he proporcionado es verdadera y completa. También informaré {{legal_entity_name}} acerca de cualquier cambio de esta información.", "-1387062433": "Motivo para abrir la cuenta", "-1088324715": "Revisaremos sus documentos y le avisaremos de su estado en un plazo de 1 a 3 días laborables.", - "-684271315": "OK", + "-329713179": "Ok", "-1176889260": "Seleccione un tipo de documento.", "-1515286538": "Ingrese su número de documento. ", "-1785463422": "Verifique su identidad", @@ -2016,7 +2018,6 @@ "-841187054": "Intentar de nuevo", "-2097808873": "No pudimos verificar su identidad con los detalles que proporcionó. ", "-228284848": "No pudimos verificar su identidad con los detalles que proporcionó.", - "-1443800801": "Su número de identificación se envió correctamente", "-1391934478": "Su identidad está verificada. También deberá presentar una prueba de su dirección.", "-118547687": "Verificación de identidad aprobada", "-200989771": "Ir a detalles personales", @@ -2045,7 +2046,6 @@ "-813779897": "Se ha superado la verificación de la prueba de propiedad.", "-1389323399": "Debe ingresar {{min_number}} - {{max_number}} caracteres.", "-1313806160": "Solicite una nueva contraseña y revise su correo electrónico para obtener el nuevo token.", - "-329713179": "Ok", "-1598167506": "Éxito", "-1077809489": "Tiene una nueva contraseña {{platform}} para acceder a sus cuentas {{platform}} en la web y en las aplicaciones móviles.", "-2068479232": "Contraseña {{platform}}", @@ -2093,6 +2093,7 @@ "-680528873": "Se abrirá tu cuenta con {{legal_entity_name}} y estará sujeta a la jurisdicción y a las leyes de Samoa.", "-1125193491": "Añadir cuenta", "-2068229627": "No soy una PEP, y no he sido una PEP en los últimos 12 meses.", + "-684271315": "OK", "-1720468017": "Al proporcionarle nuestros servicios, debemos obtener información sobre usted para evaluar si un producto o servicio determinado es apropiado para usted.", "-186841084": "Cambie su correo de inicio de sesión", "-907403572": "Para cambiar su dirección de correo electrónico, primero tendrá que desvincular su dirección de correo electrónico de su cuenta {{identifier_title}}.", @@ -2225,6 +2226,7 @@ "-38915613": "Cambios no guardados", "-2137450250": "Tiene cambios no guardados. ¿Está seguro de que desea descartar los cambios y salir de esta página?", "-1067082004": "Salir de los ajustes", + "-1982432743": "Parece que la dirección en su documento no coincide con la dirección\n en su perfil Deriv. Actualice sus datos personales con la\n dirección correcta.", "-1451334536": "Continúe operando", "-1525879032": "Sus documentos para verificar su dirección caducaron. Por favor envíelos nuevamente.", "-1425489838": "No se requiere verificación de la prueba de dirección", @@ -2243,7 +2245,6 @@ "-639677539": "Comprar criptomonedas", "-1560098002": "Comprar criptomonedas a través de fiat onramp", "-541870313": "Depositar a través de agentes de pago", - "-72314872": "Deposite en su moneda local a través de un intercambio entre pares (P2P) con otros traders en su país.", "-58126117": "Su acceso simple a las cripto. Una forma rápida y segura de intercambiar y comprar criptomonedas. Soporte de chat en vivo 24/7.", "-1705887186": "Su depósito se ha realizado con éxito.", "-142361708": "En proceso", @@ -2345,8 +2346,11 @@ "-2056016338": "No se le cobrará ninguna comisión por las transferencias en la misma moneda entre sus cuentas Deriv fiat y {{platform_name_mt5}}.", "-599632330": "Cobraremos una comisión de transferencia del 1% por las transferencias en diferentes divisas entre sus cuentas Deriv fiat y {{platform_name_mt5}} y entre sus cuentas Deriv fiat y {{platform_name_dxtrade}}.", "-1196994774": "Cobraremos una tarifa de transferencia del 2% o {{minimum_fee}} {{currency}}, lo que sea mayor, por las transferencias entre sus cuentas de criptomoneda Deriv.", + "-1361372445": "Cobraremos una comisión de transferencia del 2% o {{minimum_fee}} {{currency}}, lo que sea mayor, por las transferencias entre sus cuentas de criptomoneda Deriv y Deriv MT5, sus cuentas de criptomoneda Deriv y {{platform_name_derivez}}, y entre sus cuentas de criptomoneda Deriv y {{platform_name_dxtrade}}.", "-993556039": "Cobraremos una tarifa de transferencia del 2% o {{minimum_fee}} {{currency}}, lo que sea mayor, por las transferencias entre sus cuentas de criptomoneda Deriv y Deriv MT5 y entre sus cuentas de criptomoneda Deriv y {{platform_name_dxtrade}}.", "-1382702462": "Cobraremos una tarifa de transferencia del 2% o {{minimum_fee}} {{currency}}, lo que sea mayor, por las transferencias entre sus cuentas de criptomoneda Deriv y Deriv MT5.", + "-1995859618": "Puede realizar transferencias entre sus cuentas Deriv fiat, de criptomonedas, {{platform_name_mt5}}, {{platform_name_derivez}} y {{platform_name_dxtrade}}.", + "-545616470": "Cada día, puede hacer hasta {{ allowed_internal }} transferencias entre sus cuentas Deriv, hasta {{ allowed_mt5 }} transferencias entre sus cuentas Deriv y {{platform_name_mt5}}, hasta {{ allowed_derivez }} transferencias entre sus cuentas Deriv y {{platform_name_derivez}}, y hasta {{ allowed_dxtrade }} transferencias entre sus cuentas Deriv y {{platform_name_dxtrade}}.", "-1151983985": "Los límites de transferencia pueden variar según los tipos de cambio.", "-1747571263": "Tenga en cuenta que algunas transferencias pueden no ser posibles.", "-757062699": "Las transferencias pueden no estar disponibles debido a la alta volatilidad o a problemas técnicos y cuando los mercados de divisas están cerrados.", @@ -2631,6 +2635,7 @@ "-328128497": "Financiera", "-533935232": "Financiera BVI", "-565431857": "Financial Labuan", + "-1290112064": "Deriv EZ", "-1669418686": "AUD/CAD", "-1548588249": "AUD/CHF", "-1552890620": "AUD/JPY", @@ -2745,6 +2750,7 @@ "-1125797291": "Contraseña actualizada.", "-157145612": "Inicie sesión con su contraseña actualizada.", "-1728185398": "Volver a enviar la prueba de domicilio", + "-612396514": "Please resubmit your proof of address.", "-1519764694": "Su prueba de dirección se ha verificado.", "-1961967032": "Volver a enviar la prueba de identidad", "-117048458": "Envíe su prueba de identidad.", @@ -2772,6 +2778,10 @@ "-1834929362": "Subir mi documento", "-1043638404": "<1>Fallo en la verificación de la prueba de <0>propiedad", "-1766760306": "<0><1>Suba su documento <2>con los detalles correctos.<3>", + "-2142540205": "Parece que la dirección en su documento no coincide con la dirección en su perfil Deriv. Actualice sus datos personales con la dirección correcta.", + "-482715448": "Ir a Datos personales", + "-2072411961": "Su prueba de dirección ha sido verificada", + "-384887227": "Actualice la dirección en su perfil.", "-1998049070": "Si acepta nuestro uso de cookies, haga clic en Aceptar. Para obtener más información, <0>consulte nuestra política.", "-402093392": "Añadir cuenta Deriv", "-277547429": "Una cuenta Deriv le permitirá depositar fondos en (y retirar de) su(s) cuenta(s) MT5.", @@ -2913,6 +2923,10 @@ "-429248139": "5. Deslinde de responsabilidad", "-818926350": "La Comisión Financiera acepta apelaciones durante los 45 días posteriores a la fecha del incidente y solo después de que el trader haya tratado de resolver el problema directamente con la empresa.", "-358055541": "Potencie sus operaciones con nuevas y estupendas herramientas", + "-29496115": "Nos hemos asociado con Acuity para ofrecerle un conjunto de herramientas de trading intuitivas para MT5 para que pueda realizar un seguimiento de los eventos y tendencias del mercado, ¡de forma gratuita! <0/><0/>", + "-648669944": "Descargue el paquete Acuity y aproveche el <1>Calendario Macroeconómico, las Alertas de Mercado, el Terminal de Investigación y <1>las ideas Trading de Signal Centre sin salir de su terminal MT5.<0/><0/>", + "-794294380": "Este paquete solo está disponible para Windows y es el más recomendado para activos financieros.", + "-922510206": "¿Necesita ayuda para usar Acuity?", "-815070480": "Descargo de responsabilidad: Los servicios de trading y la información que proporciona Acuity no deben interpretarse como una invitación a invertir y/o hacer trading. Deriv no ofrece asesoramiento de inversión. El pasado no es una guía para el rendimiento futuro, y puede que las estrategias que han funcionado en el pasado no lo hagan en el futuro.", "-2111521813": "Descargar Acuity", "-175369516": "Bienvenidos a Deriv X", @@ -2968,6 +2982,7 @@ "-712681566": "Intercambio entre pares (peer-to-peer)", "-1267880283": "Se requiere {{field_name}}", "-2084509650": "{{field_name}} no tiene el formato adecuado.", + "-222283483": "Account opening reason*", "-1779241732": "La primera línea de dirección no está en un formato adecuado.", "-188222339": "No debe exceder {{max_number}} caracteres.", "-1673422138": "El Estado/Provincia no está en un formato adecuado.", @@ -2981,13 +2996,15 @@ "-1982499699": "Explore {{platform_name_dbot}}", "-1567989247": "Envíe su prueba de identidad y dirección", "-184453418": "Introduzca su contraseña {{platform}}", - "-1769158315": "real", - "-700260448": "demo", - "-1980366110": "Felicidades, ha creado con éxito su cuenta {{category}} {{platform}} <0>{{type}}.", + "-393388362": "We’re reviewing your documents. This should take about 1 to 3 days.", "-790488576": "¿Olvidó la contraseña?", "-926547017": "Introduzca su contraseña de {{platform}} para añadir una cuenta de {{account}} {{platform}} {{jurisdiction_shortcode}}.", "-1190393389": "Introduzca su contraseña de {{platform}} para añadir una cuenta de {{account}} {{platform}}.", "-2057918502": "Sugerencia: Es posible que haya introducido su contraseña de Deriv, que es diferente de su contraseña de {{platform}}.", + "-1769158315": "real", + "-700260448": "demo", + "-1936102840": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} account. ", + "-1570793523": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} account.", "-1928229820": "Restablecer la contraseña de inversor Deriv X", "-1087845020": "principal", "-1950683866": "inversor", @@ -3013,24 +3030,14 @@ "-161656683": "Actual contraseña de inversor", "-374736923": "Nueva contraseña de inversor", "-1793894323": "Crear o restablecer la contraseña de inversor", - "-1124208206": "Cambie a su cuenta real para crear una cuenta DMT5 {{account_title}} {{type_title}}.", - "-1576792859": "Se requiere prueba de identidad y dirección", - "-104382603": "Compruebe su prueba de dirección", - "-793684335": "Compruebe su prueba de identidad", "-1271218821": "Cuenta añadida", - "-599621079": "Añada su cuenta Deriv MT5 {{account_type}} en Deriv (SVG) LLC (empresa nº 273 LLC 2020).", - "-1302969276": "Añada su cuenta Deriv MT5 {{account_type}} en Deriv (BVI) Ltd, regulada por la Comisión de Servicios Financieros de las Islas Vírgenes Británicas (No. SIBA/{{line_break}}L/18/1114).", - "-1422519943": "Añada su cuenta DMT5 {{account_type}} en Deriv (V) Ltd, regulada por la Comisión de Servicios Financieros de Vanuatu.", - "-1731304187": "Añada su cuenta de CFD de DMT5 a Deriv Investments (Europe) Limited, regulada por la Autoridad de Servicios Financieros de Malta (MFSA) (licencia no. IS/70156).", - "-16048185": "Para crear esta cuenta, necesitamos primero su prueba de identidad y de dirección.", - "-1627989291": "Para crear esta cuenta, primero necesitamos que vuelva a enviar su prueba de identidad.", - "-1389025684": "Para crear esta cuenta, primero necesitamos que vuelva a enviar su prueba de identidad y de dirección.", - "-1615750576": "Podrá abrir esta cuenta una vez que se hayan verificado los documentos enviados.", - "-724308541": "Jurisdicción para su cuenta de CFD Deriv MT5", - "-479119833": "Elija una jurisdicción para su cuenta Deriv MT5 {{account_type}}", + "-1576792859": "Se requiere prueba de identidad y dirección", "-1931257307": "Tendrá que presentar una prueba de identidad", "-2026018074": "Añada su cuenta Deriv MT5 <0>{{account_type_name}} en Deriv (SVG) LLC (número de empresa 273 LLC 2020).", "-162320753": "Añada su cuenta Deriv MT5 <0>{{account_type_name}} en Deriv (BVI) Ltd, regulada por la Comisión de Servicios Financieros de las Islas Vírgenes Británicas (núm. de licencia SIBA/L/18/114).", + "-1731304187": "Añada su cuenta de CFD de DMT5 a Deriv Investments (Europe) Limited, regulada por la Autoridad de Servicios Financieros de Malta (MFSA) (licencia no. IS/70156).", + "-724308541": "Jurisdicción para su cuenta de CFD Deriv MT5", + "-479119833": "Elija una jurisdicción para su cuenta Deriv MT5 {{account_type}}", "-450424792": "Necesita una cuenta real (moneda fiduciaria o criptomoneda) en Deriv para crear una cuenta Deriv MT5 real.", "-1760596315": "Crear una cuenta Deriv", "-705682181": "Malta", diff --git a/packages/translations/src/translations/fr.json b/packages/translations/src/translations/fr.json index 5ade35299a77..407512eb366a 100644 --- a/packages/translations/src/translations/fr.json +++ b/packages/translations/src/translations/fr.json @@ -70,10 +70,8 @@ "98972777": "élément aléatoire", "100239694": "Téléchargez le recto de la carte depuis votre ordinateur", "102226908": "Case à remplir", - "107206831": "Nous examinerons votre document et reviendrons vers vous dans un délai de 1 à 3 jours.", "108916570": "Durée: {{duration}} jours", "109073671": "Veuillez utiliser un portefeuille électronique que vous avez déjà utilisé pour vos dépôts. Assurez-vous que le portefeuille électronique prend en charge les retraits. Consultez la liste des portefeuilles électroniques qui prennent en charge les retraits <0>ici.", - "110261653": "Félicitations, vous avez créé avec succès votre compte {{category}} {{platform}} <0>{{type}} {{jurisdiction_selected_shortcode}}. Pour commencer à trader, transférez des fonds de votre compte Deriv vers ce compte.", "111215238": "Éloignez-vous de la lumière directe", "111718006": "Date de fin", "111931529": "Max. mise totale sur 7 jours", @@ -182,6 +180,7 @@ "248909149": "Envoyez un lien sécurisé sur votre téléphone", "249908265": "Êtes-vous citoyen de/du/d' {{- residence}} ?", "251134918": "Information du compte", + "251322536": "Comptes Deriv EZ", "251445658": "Thème foncé", "251882697": "Merci ! Votre réponse a été enregistrée dans notre système.<0/><0/> Cliquez sur « OK » pour continuer.", "254912581": "Ce bloc est similaire à EMA, sauf qu'il vous donne la ligne EMA entière basée sur la liste d'entrée et la période donnée.", @@ -197,6 +196,7 @@ "265644304": "Types de trade", "267992618": "Les plates-formes manquent de fonctionnalités ou de fonctionnalités clés.", "268940240": "Votre solde ({{format_balance}} {{currency}}) est inférieur au retrait minimum autorisé ({{format_min_withdraw_amount}} {{currency}}). Veuillez recharger votre compte pour poursuivre votre retrait.", + "269322978": "Déposez dans votre devise locale via un échange peer-to-peer avec d'autres traders de votre pays.", "269607721": "Télécharger", "270339490": "Si vous sélectionnez \"Over\", vous gagnerez le paiement si le dernier chiffre du dernier tick est supérieur à votre prédiction.", "270610771": "Dans cet exemple, le prix d'ouverture d'une bougie est affecté à la variable \"candle_open_price\".", @@ -212,6 +212,7 @@ "278684544": "obtenir la sous-liste de # à partir de la fin", "282319001": "Vérifiez votre image", "282564053": "Nous aurons ensuite besoin de votre justificatif de domicile.", + "283830551": "Votre adresse ne correspond pas à votre profil", "283986166": "L'auto-exclusion sur le site web s’applique seulement à votre compte {{brand_website_name}} et ne comprend pas les autres entreprises ou sites web.", "284527272": "contraire", "284772879": "Contrat", @@ -245,7 +246,6 @@ "327534692": "La valeur de durée n'est pas autorisée. Pour exécuter le bot, veuillez saisir {{min}}.", "328539132": "Répète les instructions dedans le nombre de fois spécifié", "329404045": "<0>Passez à votre compte réel<1> pour créer un compte {{platform}} {{account_title}}.", - "332886946": "<1>Besoin d'aide pour utiliser Acuity ? <0/>Consultez ce <2>guide de l'utilisateur.", "333456603": "Limites de retrait", "334680754": "Passez à votre compte réel pour créer un compte Deriv MT5", "334942497": "Heure d'ouverture", @@ -368,7 +368,6 @@ "478280278": "Ce bloc affiche une boîte de dialogue qui utilise un message personnalisé pour demander une entrée. L'entrée peut être une chaîne de texte ou un nombre et peut être affectée à une variable. Lorsque la boîte de dialogue s'affiche, votre stratégie est suspendue et ne reprendra qu'après avoir entré une réponse et cliqué sur \"OK\".", "479420576": "Supérieur", "481276888": "Sort de la zone", - "483246914": "Ajoutez votre compte Deriv MT5 {{account_type}} STP sous Deriv (FX) Ltd, réglementé par la Labuan Financial Services Authority (Licence no. MB/18/0024).", "483279638": "Évaluation terminée<0/><0/>", "483591040": "Supprimer tous les {{ delete_count }} blocs?", "485379166": "Voir les transactions", @@ -419,7 +418,6 @@ "551569133": "En savoir plus sur les limites de trading", "554410233": "Ceci est un mot de passe commun parmi les 10 premiers", "555351771": "Après avoir défini les paramètres du trade et les options du trade, vous pouvez demander à votre bot d'acheter des contrats lorsque des conditions spécifiques sont remplies. Pour ce faire, vous pouvez utiliser des blocs conditionnels et des blocs d'indicateurs pour aider votre bot à prendre des décisions.", - "556095366": "Nous traiterons vos données dans les prochaines minutes et reviendront vers vous par e-mail.", "556264438": "Intervalle de temps", "559224320": "Notre outil classique de \"glisser-déposer\" pour créer des robots de trading, avec des graphiques de trading contextuels, pour les utilisateurs avancés.", "561982839": "Changer votre devise", @@ -576,6 +574,7 @@ "745656178": "Utilisez ce bloc pour vendre votre contrat au prix du marché.", "745674059": "Renvoie le caractère spécifique d'une chaîne de texte donnée selon l'option sélectionnée. ", "746112978": "La mise à jour de votre ordinateur peut prendre quelques secondes", + "750886728": "Switch to your real account to submit your documents", "751692023": "Nous <0>ne garantissons pas un remboursement si vous faites un mauvais transfert.", "752024971": "Nombre maximum de chiffres atteint", "752633544": "Vous devez fournir une pièce d'identité et un justificatif de domicile dès que vous atteignez certains seuils", @@ -790,7 +789,6 @@ "1023643811": "Ce bloc achète un contrat d'un type spécifié.", "1023795011": "Pair/Impair", "1024205076": "Opération logique", - "1024760087": "Votre compte est vérifié, vous pouvez ajouter ce compte", "1025887996": "Protection de Solde Négatif", "1026046972": "Veuillez entrer un montant de paiement inférieur à {{max_payout}}.", "1027098103": "L'effet de levier vous donne la possibilité de trader une position plus importante en utilisant votre capital existant. L'effet de levier varie selon les différents symboles.", @@ -874,6 +872,7 @@ "1112582372": "Durée du l'intervalle", "1113119682": "Ce bloc vous donne la valeur de bougie sélectionnée dans une liste de bougies.", "1113292761": "Moins de 8 Mo", + "1113433728": "Resubmit your proof of identity and address", "1117863275": "Sécurité et de sûreté", "1118294625": "Vous avez choisi de vous exclure du trading sur notre site jusqu'à {{exclusion_end}}. Si vous ne parvenez pas à effectuer une transaction ou un dépôt après votre période d'auto-exclusion, veuillez nous contacter via le chat en direct.", "1119887091": "Vérification", @@ -935,7 +934,6 @@ "1189886490": "Veuillez créer un autre compte Deriv, {{platform_name_mt5}} ou {{platform_name_dxtrade}}.", "1191429031": "Veuillez cliquer sur le lien reçu par email afin de modifier votre mot de passe <0>{{platform_name_dxtrade}}.", "1191644656": "Prédisez la direction du marché et sélectionnez «Up» ou «Down» pour ouvrir une position. Nous facturons une commission lorsque vous ouvrez une position.", - "1191778951": "Vérifiez votre pièce d'identité et justificatif de domicile", "1192708099": "Unité de durée", "1195393249": "Notifier {{ notification_type }} avec un son: {{ notification_sound }} {{ input_message }}", "1196006480": "Seuil de profit", @@ -1009,7 +1007,6 @@ "1281290230": "Sélectionner", "1282951921": "Que des Descentes", "1284522768": "Si «Perte» est sélectionné, il retournera «Vrai» si votre dernière transaction a échoué. Sinon, il renverra une chaîne vide.", - "1285686014": "Vérification du document d'identité en cours", "1286094280": "Retrait", "1286507651": "Fermer l'écran de vérification d'identité", "1288965214": "Passeport", @@ -1105,7 +1102,6 @@ "1384222389": "Veuillez présenter des documents d'identité valides pour déverrouiller la caisse.", "1385418910": "Veuillez définir une devise pour votre compte réel existant avant de créer un autre compte.", "1387503299": "Connexion", - "1388770399": "Preuve d'identité requise", "1389197139": "Erreur d'importation", "1390792283": "Paramètres du trade", "1391174838": "Paiement potentiel:", @@ -1118,6 +1114,7 @@ "1396417530": "Indice Bear Market", "1397628594": "Solde insuffisant", "1399620764": "Nous sommes légalement tenus de vous demander vos informations financières.", + "1400341216": "We’ll review your documents and notify you of its status within 1 to 3 days.", "1400637999": "(Tous les champs sont requis)", "1400732866": "Vue depuis la caméra", "1400962248": "Haut-Clôture", @@ -1263,9 +1260,11 @@ "1584109614": "Liste des chaînes de tiques", "1584578483": "Plus de 50 actifs : forex, actions, indices boursiers, indices synthétiques et cryptomonnaies.", "1584936297": "Le fichier XML contient des éléments non pris en charge. Veuillez vérifier ou modifier le fichier.", + "1585859194": "Nous facturerons des frais de transfert de 1 % pour les transferts dans différentes devises entre vos comptes Deriv fiat et {{platform_name_mt5}} , vos comptes Deriv fiat et {{platform_name_derivez}} , et votre compte Deriv fiat et {{platform_name_dxtrade}} comptes.", "1587046102": "Les documents de ce pays ne sont actuellement pas pris en charge — essayez un autre type de document", "1589640950": "La revente de ce contrat n’est pas offert.", "1589702653": "Justificatif de domicile", + "1591933071": "Resubmit document", "1593010588": "Connectez-vous maintenant", "1594147169": "Veuillez revenir dans", "1594322503": "Vendre est disponible", @@ -1280,7 +1279,6 @@ "1605222432": "Je n'ai aucune connaissance ni expérience en matière de trading.", "1605292429": "Max. perte totale", "1612105450": "Obtenir une sous-chaîne", - "1613273139": "Renvoyez une pièce d'identité et un justificatif de domicile", "1613633732": "L'intervalle doit être compris entre 10 et 60 minutes", "1615897837": "Période EMA du signal {{ input_number }}", "1618809782": "Retrait maximal", @@ -1324,7 +1322,6 @@ "1665272539": "N'oubliez pas: vous ne pouvez pas vous connecter à votre compte avant la date sélectionnée.", "1665738338": "Solde", "1665756261": "Allez sur le chat en direct", - "1667395210": "Votre pièce d'identité a été soumise avec succès", "1668138872": "Modifier les paramètres du compte", "1670016002": "Multiplicateur: {{ multiplier }}", "1670426231": "Heure de fin", @@ -1349,6 +1346,7 @@ "1694517345": "Entrez un nouvel email", "1695807119": "Impossible de charger les blocs de Google Drive", "1700233813": "Le transfert depuis {{selected_value}} n'est pas autorisé, veuillez choisir un autre compte dans la liste déroulante", + "1701447705": "Veuillez mettre à jour votre adresse", "1704656659": "Quelle est votre expérience dans le trading de CFD ?", "1708413635": "Pour votre compte {{currency_name}} ({{currency}})", "1709859601": "Heure du Point de Sortie", @@ -1419,6 +1417,7 @@ "1778893716": "Cliquez ici", "1779519903": "La saisie doit être un nombre valide.", "1780770384": "Ce bloc vous donne une fraction aléatoire entre 0,0 et 1,0.", + "1781393492": "Nous ne facturons pas de frais de transfert pour les virements dans la même devise entre vos comptes Deriv fiat et {{platform_name_mt5}} , vos comptes Deriv fiat et {{platform_name_derivez}} et votre compte Deriv fiat et {{platform_name_dxtrade}} comptes.", "1782308283": "Stratégie rapide", "1782395995": "Prédiction sur le dernier chiffre", "1782690282": "Menu des blocs", @@ -1429,6 +1428,7 @@ "1788966083": "01-07-1999", "1789497185": "Assurez-vous que les détails de votre passeport sont clairs à lire, sans flou ni éblouissement", "1790770969": "Majeures FX (lots standard/micro), Mineures FX, Matières premières, Cryptodevises", + "1791017883": "Consultez ce <0>guide de l'utilisateur.", "1791432284": "Rechercher un pays", "1791971912": "Récent", "1793913365": "Pour déposer de l'argent, veuillez passer à votre compte {{currency_symbol}}.", @@ -1549,6 +1549,7 @@ "1918832194": "No experience", "1919030163": "Conseils pour prendre un bon selfie", "1919594496": "{{website_name}} n'est affilié à aucun agent de paiement. Les clients traitent avec les agents de paiement à leurs risques et périls. Les clients sont invités à vérifier les informations d'identification des agents de paiement et l'exactitude de toute information concernant les agents de paiement (sur {{website_name}} ou ailleurs) avant d'utiliser leurs services.", + "1919694313": "To start trading, transfer funds from your Deriv account into this account.", "1920217537": "Comparer", "1920468180": "Comment utiliser le bloc SMA", "1921634159": "Quelques détails personnels", @@ -1655,6 +1656,7 @@ "2037481040": "Choisissez un moyen d'approvisionner votre compte", "2037665157": "Développer tous les blocs", "2037906477": "obtenir la sous-liste de #", + "2042023623": "We’re reviewing your documents. This should take about 5 minutes.", "2042050260": "- Prix d'achat: le prix d'achat (mise) du contrat", "2042115724": "Téléchargez une capture d'écran de votre compte et de la page de détails personnels avec votre nom, votre numéro de compte, votre numéro de téléphone et votre adresse e-mail.", "2042778835": "Cette politique en matière de plaintes, qui peut être modifiée de temps à autre, s'applique à votre compte enregistré auprès de {{legal_entity_name}}.", @@ -2002,7 +2004,7 @@ "-1543016582": "Je confirme par la présente que les informations fiscales que j'ai fournie sont exactes et complètes. J'informerai également {{legal_entity_name}} de toute modification de ces informations.", "-1387062433": "Motif d’ouverture de compte", "-1088324715": "Nous examinerons vos documents et vous informerons de leur statut dans un délai de 1 à 3 jours ouvrés.", - "-684271315": "OK", + "-329713179": "Ok", "-1176889260": "Veuillez sélectionner un type de document.", "-1515286538": "Veuillez entrer le numéro de votre document. ", "-1785463422": "Vérifiez Votre Identité", @@ -2016,7 +2018,6 @@ "-841187054": "Réessayez", "-2097808873": "Nous n'avons pas été en mesure de vérifier votre identité d'après les détails saisis. ", "-228284848": "Nous n'avons pas été en mesure de vérifier votre identité d'après les détails saisis.", - "-1443800801": "Le numéro de votre pièce d'identité a été soumis avec succès", "-1391934478": "Votre identité est vérifiée. Vous devrez également fournir un justificatif de domicile.", "-118547687": "La vérification de l'identité a échoué", "-200989771": "Aller aux détails personnels", @@ -2045,7 +2046,6 @@ "-813779897": "La vérification de la preuve de propriété a été réussie.", "-1389323399": "Vous devez saisir {{min_number}}-{{max_number}} caractères.", "-1313806160": "Veuillez demander un nouveau mot de passe et vérifiez votre courrier électronique pour le nouveau token.", - "-329713179": "Ok", "-1598167506": "Succès", "-1077809489": "Vous avez un nouveau mot de passe {{platform}} pour vous connecter à votre compte {{platform}} sur le web et l'application mobile.", "-2068479232": "mot de passe {{platform}}", @@ -2093,6 +2093,7 @@ "-680528873": "Votre compte sera ouvert avec {{legal_entity_name}}, et sera soumis aux lois de Samoa.", "-1125193491": "Ajouter un compte", "-2068229627": "Je ne suis pas un PEP et je n'ai pas été un PEP au cours des 12 derniers mois.", + "-684271315": "OK", "-1720468017": "Lorsque nous vous fournissons nos services, nous sommes tenus d'obtenir des informations vous concernant afin d'évaluer si un produit ou un service donné vous convient.", "-186841084": "Modifier votre adresse e-mail de connexion", "-907403572": "Pour modifier votre adresse e-mail, vous devez d'abord dissocier votre adresse e-mail de votre compte {{identifier_title}} .", @@ -2225,6 +2226,7 @@ "-38915613": "Modifications non enregistrées", "-2137450250": "Vous avez des changements non enregistrés. Voulez-vous vraiment annuler les modifications et quitter cette page?", "-1067082004": "Quitter les paramètres", + "-1982432743": "Il semble que l'adresse dans votre document ne corresponde pas à l'adresse\n dans votre profil Deriv. Veuillez mettre à jour vos données personnelles avec\n l'adresse correcte.", "-1451334536": "Poursuivre le trading", "-1525879032": "Votre justificatif de domicile est expiré. Veuillez en soumettre un à nouveau.", "-1425489838": "Une preuve de vérification d'adresse n'est pas requise", @@ -2243,7 +2245,6 @@ "-639677539": "Acheter des cryptomonnaies", "-1560098002": "Acheter des cryptomonnaies via fiat onramp", "-541870313": "Dépôt via des agents de paiement", - "-72314872": "Déposez dans votre devise locale via un échange peer-to-peer avec d'autres traders de votre pays.", "-58126117": "Votre accès simple à la crypto. Moyen rapide et sécurisé d'échanger et d'acheter plus de crypto-monnaies. Assistance par chat en direct 24h/24 et 7j/7.", "-1705887186": "Votre dépôt est réussi.", "-142361708": "En cours", @@ -2345,8 +2346,11 @@ "-2056016338": "Vous n'aurez pas à payer de frais de transfert pour les transferts dans la même devise entre vos comptes Deriv fiat et {{platform_name_mt5}}.", "-599632330": "Nous facturons des frais de transfert de 1% pour les transferts dans des devises différentes entre vos comptes Deriv fiat et {{platform_name_mt5}} et entre vos comptes Deriv fiat et {{platform_name_dxtrade}}.", "-1196994774": "Nous facturons des frais de transfert de 2 % ou de {{minimum_fee}} {{currency}}, le montant le plus élevé étant retenu, pour les transferts entre vos comptes Deriv cryptomonnaie.", + "-1361372445": "Nous facturerons des frais de transfert de 2 % ou {{minimum_fee}} {{currency}}, selon le montant le plus élevé, pour les transferts entre vos comptes de cryptocurrency Deriv et Deriv MT5, vos comptes de cryptocurrency Deriv et {{platform_name_derivez}} comptes, et votre cryptocurrency Deriv et {{platform_name_dxtrade}} comptes.", "-993556039": "Nous facturons des frais de transfert de 2 % ou de {{minimum_fee}} {{currency}}, le montant le plus élevé étant retenu, pour les transferts entre vos comptes Deriv crypto et Deriv MT5 et entre vos comptes Deriv crypto et {{platform_name_dxtrade}}.", "-1382702462": "Nous facturons des frais de transfert de 2 % ou de {{minimum_fee}} {{currency}}, le montant le plus élevé étant retenu, pour les transferts entre vos comptes Deriv crypto et Deriv MT5.", + "-1995859618": "Vous pouvez effectuer des virements entre vos comptes Deriv fiat, cryptocurrency, {{platform_name_mt5}}, {{platform_name_derivez}} et {{platform_name_dxtrade}} .", + "-545616470": "Chaque jour, vous pouvez effectuer jusqu'à {{ allowed_internal }} virements entre vos comptes Deriv, jusqu'à {{ allowed_mt5 }} transfert entre votre compte Deriv et {{platform_name_mt5}} comptes, jusqu'à {{ allowed_derivez }} transferts entre vos comptes Deriv et {{platform_name_derivez}} comptes, et jusqu'à {{ allowed_dxtrade }} transferts entre votre compte Deriv et {{platform_name_dxtrade}} comptes.", "-1151983985": "Les limites de transfert peuvent varier en fonction des taux de change.", "-1747571263": "Veuillez garder à l'esprit que certains transferts peuvent ne pas être possibles.", "-757062699": "Les transferts peuvent être indisponibles en raison d'une forte volatilité ou de problèmes techniques et lorsque les marchés boursiers sont fermés.", @@ -2631,6 +2635,7 @@ "-328128497": "Financier", "-533935232": "Financier BVI", "-565431857": "Financier Labuan", + "-1290112064": "Deriv EZ", "-1669418686": "AUD/CAD", "-1548588249": "AUD/CHF", "-1552890620": "AUD/JPY", @@ -2745,6 +2750,7 @@ "-1125797291": "Mot de passe mis à jour.", "-157145612": "Veuillez vous connecter avec votre mot de passe mis à jour.", "-1728185398": "Renvoyer un justificatif de domicile", + "-612396514": "Please resubmit your proof of address.", "-1519764694": "Votre justificatif de domicile est vérifié.", "-1961967032": "Renvoyer une pièce d'identité", "-117048458": "Veuillez envoyer votre pièce d'identité.", @@ -2772,6 +2778,10 @@ "-1834929362": "Téléchargez mon document", "-1043638404": "La <1>vérification <0>de la preuve de propriété a échoué", "-1766760306": "<0><1>Veuillez télécharger votre document <2>avec les informations correctes.<3>", + "-2142540205": "Il semble que l'adresse dans votre document ne corresponde pas à l'adresse dans votre profil Deriv. Veuillez mettre à jour vos détails personnelles avec l'adresse correcte.", + "-482715448": "Aller aux Détails personnels", + "-2072411961": "Votre justificatif de domicile a été vérifié", + "-384887227": "Mettez à jour l'adresse dans votre profil.", "-1998049070": "Si vous acceptez notre utilisation des cookies, cliquez sur Accepter. Pour plus d'informations, <0>consultez notre politique.", "-402093392": "Ajouter un compte Deriv", "-277547429": "Un compte Deriv vous permettra de déposer sur (et de retirer de) votre/vos compte (s) MT5.", @@ -2913,6 +2923,10 @@ "-429248139": "5. Clause de non-responsabilité", "-818926350": "La Commission financière accepte les appels pendant 45 jours après la date de l'incident et seulement après que le commerçant a essayé de résoudre le problème directement avec l'entreprise.", "-358055541": "Boostez votre trading grâce à de nouveaux outils", + "-29496115": "Nous nous sommes associés à Acuity pour vous fournir une suite d'outils de trading intuitifs pour MT5 afin que vous puissiez suivre gratuitement les événements et les tendances du marché ! <0/><0/>", + "-648669944": "Téléchargez la suite Acuity et profitez du <1>calendrier macroéconomique, des alertes de marché, du terminal de recherche et des <1>idées Trade du Signal Center sans quitter votre terminal MT5.<0/><0/>", + "-794294380": "Cette suite n'est disponible que pour Windows et est particulièrement recommandée pour les actifs financiers.", + "-922510206": "Besoin d'aide pour utiliser Acuity ?", "-815070480": "Avertissement : Les services de trading et les informations fournis par Acuity ne doivent pas être interprétés comme une sollicitation à investir et/ou à trader. Deriv ne fournit pas de conseils en investissement. Le passé n'est pas un guide pour les performances futures, et les stratégies qui ont fonctionné par le passé peuvent ne pas fonctionner à l'avenir.", "-2111521813": "Télécharger Acuity", "-175369516": "Bienvenue sur Deriv X", @@ -2968,6 +2982,7 @@ "-712681566": "Échange Peer-to-peer", "-1267880283": "{{field_name}} est obligatoire", "-2084509650": "{{field_name}} n'est pas dans un format correct.", + "-222283483": "Account opening reason*", "-1779241732": "La première ligne d'adresse n'est pas dans un format approprié.", "-188222339": "Cela ne doit pas dépasser {{max_number}} caractères.", "-1673422138": "Région/Département n'est pas dans un format approprié.", @@ -2981,13 +2996,15 @@ "-1982499699": "Explorer {{platform_name_dbot}}", "-1567989247": "Vérifiez votre pièce d'identité et justificatif de domicile", "-184453418": "Entrer votre mot de passe {{platform}}", - "-1769158315": "réel", - "-700260448": "démo", - "-1980366110": "Félicitations, vous avez créé votre compte {{category}} {{platform}} <0>{{type}} avec succès.", + "-393388362": "We’re reviewing your documents. This should take about 1 to 3 days.", "-790488576": "Mot de passe oublié?", "-926547017": "Entrez votre mot de passe {{platform}} pour ajouter un compte {{platform}} {{account}} {{jurisdiction_shortcode}} .", "-1190393389": "Entrez votre mot de passe {{platform}} pour ajouter un compte {{account}} {{platform}}.", "-2057918502": "Astuce: vous avez peut-être entré votre mot de passe Deriv, qui est différent de votre mot de passe {{platform}}.", + "-1769158315": "réel", + "-700260448": "démo", + "-1936102840": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} account. ", + "-1570793523": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} account.", "-1928229820": "Réinitialiser le mot de passe investisseur de Deriv X", "-1087845020": "principal", "-1950683866": "investisseur", @@ -3013,24 +3030,14 @@ "-161656683": "Mot de passe investisseur actuel", "-374736923": "Nouveau mot de passe investisseur", "-1793894323": "Créer ou réinitialiser le mot de passe de l'investisseur", - "-1124208206": "Passez à votre compte réel pour créer un compte DMT5 {{account_title}} {{type_title}} .", - "-1576792859": "Pièce d'identité et justificatif de domicile requis", - "-104382603": "Vérifiez votre justificatif de domicile", - "-793684335": "Vérifiez votre pièce d'identité", "-1271218821": "Compte ajouté", - "-599621079": "Ajoutez votre compte Deriv MT5 {{account_type}} sous Deriv (SVG) LLC (entreprise nº 273 LLC 2020).", - "-1302969276": "Ajoutez votre compte Deriv MT5 {{account_type}} sous Deriv (BVI) Ltd, réglementé par la Commission des services financiers des îles Vierges britanniques (Licence nº SIBA/{{line_break}}L/18/1114).", - "-1422519943": "Ajoutez votre compte Deriv MT5 {{account_type}} sous Deriv (V) Ltd, réglementé par la Commission des services financiers du Vanuatu.", - "-1731304187": "Ajoutez votre compte Deriv MT5 CFD sous Deriv Investments (Europe) Limited, réglementé par la Malta Financial Services Authority (MFSA) (licence no. IS/70156).", - "-16048185": "Pour créer ce compte, nous avons d'abord besoin de votre pièce d'identité et de votre justificatif de domicile.", - "-1627989291": "Pour créer ce compte, vous devez d'abord renvoyer votre pièce d'identité.", - "-1389025684": "Pour créer ce compte, vous devez d'abord renvoyer votre pièce d'identité et justificatif de domicile.", - "-1615750576": "Vous pourrez ouvrir ce compte une fois que les documents que vous avez soumis auront été vérifiés.", - "-724308541": "Juridiction de votre compte Deriv MT5 CFD", - "-479119833": "Choisissez une juridiction pour votre compte Deriv MT5 {{account_type}}", + "-1576792859": "Pièce d'identité et justificatif de domicile requis", "-1931257307": "Vous devrez envoyer une pièce d'identité", "-2026018074": "Ajoutez votre compte Deriv MT5 <0>{{account_type_name}} sous Deriv (SVG) LLC (société n°273 LLC 2020).", "-162320753": "Ajoutez votre compte Deriv MT5 <0>{{account_type_name}} sous Deriv (BVI) Ltd, réglementé par la Commission des services financiers des îles Vierges britanniques (Licence n°SIBA/L/18/1114).", + "-1731304187": "Ajoutez votre compte Deriv MT5 CFD sous Deriv Investments (Europe) Limited, réglementé par la Malta Financial Services Authority (MFSA) (licence no. IS/70156).", + "-724308541": "Juridiction de votre compte Deriv MT5 CFD", + "-479119833": "Choisissez une juridiction pour votre compte Deriv MT5 {{account_type}}", "-450424792": "Vous avez besoin d'un compte réel (monnaie fiduciaire ou crypto-monnaie) dans Deriv pour créer un vrai compte Deriv MT5.", "-1760596315": "Créer un compte Deriv", "-705682181": "Malte", diff --git a/packages/translations/src/translations/id.json b/packages/translations/src/translations/id.json index 081875673451..057b89879f9a 100644 --- a/packages/translations/src/translations/id.json +++ b/packages/translations/src/translations/id.json @@ -70,10 +70,8 @@ "98972777": "item random", "100239694": "Unggah bagian depan kartu dari komputer Anda", "102226908": "Kolom tidak boleh kosong", - "107206831": "Kami akan meninjau dokumen dan mengabari Anda dalam tempo 1-3 hari.", "108916570": "Durasi: {{duration}} hari", "109073671": "Gunakan e-wallet yang pernsh Anda gunakan untuk mendeposit sebelumnya. Pastikan e-wallet tersebut menyediakan fasilitas penarikan. Lihat daftar e-wallet yang menyediakan fasilitas penarikan <0>di sini.", - "110261653": "Selamat, Anda telah berhasil mendaftar akun {{category}} {{platform}} <0>{{type}} {{jurisdiction_selected_shortcode}}. Untuk memulai trading, transfer dana dari akun Deriv ke akun ini.", "111215238": "Menjauh dari cahaya langsung", "111718006": "Tanggal berakhir", "111931529": "Maks. total modal dalam 7 hari", @@ -182,6 +180,7 @@ "248909149": "Mengirim tautan aman ke telepon Anda", "249908265": "Apakah Anda warga negara {{- residence}}?", "251134918": "Informasi Akun", + "251322536": "Deriv EZ accounts", "251445658": "Tema gelap", "251882697": "Terima kasih! Tanggapan Anda telah dicatat pada sistem kami.<0/><0/>Klik 'OK' untuk melanjutkan.", "254912581": "Blok ini hampir sama dengan EMA, hanya saja blok ini memberi Anda seluruh baris EMA berdasarkan daftar input dan periode yang diberikan.", @@ -197,6 +196,7 @@ "265644304": "Jenis kontrak", "267992618": "Platform kekurangan fitur utama atau fungsi.", "268940240": "Jumlah saldo Anda ({{format_balance}} {{currency}}) adalah kurang dari jumlah minimum penarikan yang dibenarkan ({{format_min_withdraw_amount}} {{currency}}). Isi ulang akun untuk melanjutkan penarikan.", + "269322978": "Deposit with your local currency via peer-to-peer exchange with fellow traders in your country.", "269607721": "Unggah", "270339490": "Jika Anda memilih \"Over\", Anda akan memperoleh hasil jika digit terakhir pada tik terakhir lebih besar dari analisa Anda.", "270610771": "Dalam contoh ini, harga open candle ditetapkan pada variabel \"candle_open_price\".", @@ -212,12 +212,13 @@ "278684544": "dapatkan sub-daftar dari # dari akhir", "282319001": "Periksa gambar Anda", "282564053": "Selanjutnya, kami memerlukan bukti alamat Anda.", + "283830551": "Your address doesn’t match your profile", "283986166": "Pengecualian diri pada situs web hanya berlaku untuk akun {{brand_website_name}} Anda dan tidak termasuk perusahaan atau situs web lain.", "284527272": "antimode", "284772879": "Kontrak", "287934290": "Apakah Anda yakin ingin membatalkan transaksi ini?", "289898640": "PERSYARATAN PENGGUNA", - "291817757": "Buka komunitas Deriv kami dan pelajari tentang API, token API, cara menggunakan Deriv API, dan banyak lagi.", + "291817757": "Kunjungi komunitas Deriv dan pelajari tentang API, token API, cara menggunakan Deriv API, dan banyak lagi.", "292491635": "Jika Anda memilih \"Batas kerugian\" dan menentukan jumlah untuk membatasi kerugian Anda, posisi Anda akan ditutup secara otomatis ketika kerugian Anda lebih dari atau sama dengan jumlah berikut. Kerugian Anda mungkin lebih dari jumlah yang Anda masukkan tergantung pada harga penutupan pasar.", "292526130": "Analisis tik dan candle", "292589175": "Berikut akan menampilkan SMA bagi periode yang telah ditentukan menggunakan daftar candle.", @@ -245,7 +246,6 @@ "327534692": "Nilai durasi tidak diizinkan. Untuk menjalankan bot, silahkan masukkan {{min}}.", "328539132": "Ulang instruksi di dalam untuk beberapa kali", "329404045": "<0>Pindah ke akun riil<1> untuk mendaftar akun {{platform}} {{account_title}}.", - "332886946": "<1>Butuh bantuan menggunakan Acuity? <0/>Lihat <2>panduan pengguna ini.", "333456603": "Batas penarikan", "334680754": "Beralih ke akun riil Anda untuk membuat akun Deriv MT5", "334942497": "Waktu beli", @@ -286,7 +286,7 @@ "373021397": "random", "373306660": "{{label}} diperlukan.", "373495360": "Blok ini menampilkan seluruh garis SMA, yang berisi daftar semua nilai untuk periode tertentu.", - "374164629": "Trading di Deriv MT5, platform trading semua dalam satu untuk FX dan CFD.", + "374164629": "Bertransaksi di Deriv MT5, platform trading FX dan CFD terlengkap.", "374537470": "Tidak tersedia hasil untuk \"{{text}}\"", "375714803": "Error Pembatalan Transaksi", "379523479": "Untuk mengamankan akun Anda, mohon untuk tidak berbagi token dengan akses Admin pada pihak lain.", @@ -368,7 +368,6 @@ "478280278": "Blok ini menampilkan kotak dialog yang menggunakan pesan kustom untuk meminta input. Input dapat berupa string teks atau angka dan dapat ditetapkan pada variabel. Ketika kotak dialog ditampilkan, strategi Anda dijeda dan hanya akan dilanjutkan setelah Anda memasukkan respon dan klik \"OK\".", "479420576": "Pendidikan Tinggi", "481276888": "Goes Outside", - "483246914": "Daftarkan akun Deriv MT5 {{account_type}} STP Anda di bawah Deriv (FX) Ltd yang diatur oleh Otoritas Jasa Keuangan Labuan (Lisensi no. MB/18/0024).", "483279638": "Penilaian Selesai<0/><0/>", "483591040": "Hapus semua {{ delete_count }} blok?", "485379166": "Lihat transaksi", @@ -419,7 +418,6 @@ "551569133": "Pelajari lebih lanjut tentang batasan trading", "554410233": "Ini adalah 10 kata sandi umum teratas", "555351771": "Setelah menentukan parameter dan opsi kontrak, Anda mungkin ingin menginstruksikan bot Anda untuk membeli kontrak ketika kondisi tertentu terpenuhi. Untuk melakukan hal tersebut maka Anda dapat menggunakan blok bersyarat dan blok indikator untuk membantu bot Anda dalam membuat keputusan.", - "556095366": "Kami akan memproses data Anda dan akan memberitahukan statusnya melalui email.", "556264438": "Interval waktu", "559224320": "Peralatan klasik “tarik-dan-lepas” untuk membuat bot, menampilkan pop up grafik trading, untuk pengguna lanjutan.", "561982839": "Ubah mata uang Anda", @@ -576,6 +574,7 @@ "745656178": "Gunakan blok ini untuk menjual kontrak Anda pada harga pasar.", "745674059": "Menampilkan karakter spesifik dari string teks tertentu sesuai dengan opsi yang dipilih. ", "746112978": "Komputer Anda mungkin perlu beberapa detik untuk memperbarui", + "750886728": "Switch to your real account to submit your documents", "751692023": "Kami <0>tidak menjamin pengembalian dana jika Anda salah melakukan transfer.", "752024971": "Mencapai jumlah maksimum digit", "752633544": "Anda perlu mengirimkan bukti identitas dan alamat setelah mencapai batas tertentu", @@ -790,7 +789,6 @@ "1023643811": "Blok ini pembelian kontrak pada jenis tertentu.", "1023795011": "Even/Odd", "1024205076": "Pengoperasian logik", - "1024760087": "Anda telah terverifikasi untuk menambahkan akun ini", "1025887996": "Perlindungan Saldo Negatif", "1026046972": "Masukkan jumlah hasil yang lebih rendah dari {{max_payout}}.", "1027098103": "Leverage memberi Anda kemampuan untuk bertrading posisi yang lebih besar menggunakan modal yang ada. Leverage bervariasi pada berbagai simbol.", @@ -874,6 +872,7 @@ "1112582372": "Durasi interval", "1113119682": "Blok ini memberi Anda nilai candle yang dipilih dari daftar candle.", "1113292761": "Kurang dari 8MB", + "1113433728": "Resubmit your proof of identity and address", "1117863275": "Keamanan dan keselamatan", "1118294625": "Anda telah memilih untuk berhenti bertrading sementara waktu hingga {{exclusion_end}}. Jika Anda masih tidak dapat bertrading atau mendeposit setelah periode pengecualian diri berakhir, hubungi kami melalui obrolan langsung.", "1119887091": "Verifikasi", @@ -935,7 +934,6 @@ "1189886490": "Daftar akun Deriv baru, {{platform_name_mt5}}, atau {{platform_name_dxtrade}}.", "1191429031": "Klik tautan pada email untuk mengubah kata sandi <0>{{platform_name_dxtrade}} Anda.", "1191644656": "Analisa arah pasar dan pilih salah satu posisi \"Up\" atau \"Down\". Kami akan membebankan komisi pada saat Anda membeli posisi.", - "1191778951": "Cek bukti identitas dan alamat Anda", "1192708099": "Unit durasi", "1195393249": "Beritahu {{ notification_type }} dengan nada: {{ notification_sound }} {{ input_message }}", "1196006480": "Batas keuntungan", @@ -1009,7 +1007,6 @@ "1281290230": "Pilih", "1282951921": "Only Downs", "1284522768": "Jika \"Rugi\" dipilih, maka \"Benar\" akan ditampilkan jika kontrak terakhir Anda mengalami kerugian. Jika tidak, maka tampilan akan berupa string kosong.", - "1285686014": "Tinjauan bukti identitas masih tertunda", "1286094280": "Penarikan", "1286507651": "Menutup layar verifikasi identitas", "1288965214": "Paspor", @@ -1105,7 +1102,6 @@ "1384222389": "Mohon kirim dokumen identitas yang masih berlaku untuk pengaktifan kasir.", "1385418910": "Harap tetapkan mata uang pada akun riil yang sudah ada sebelum mendaftar akun lain.", "1387503299": "Masuk", - "1388770399": "Diperlukan bukti identitas", "1389197139": "Impor error", "1390792283": "Parameter kontrak", "1391174838": "Potensi hasil:", @@ -1118,6 +1114,7 @@ "1396417530": "Indeks Marker Bear", "1397628594": "Dana tidak mencukupi", "1399620764": "Kami secara hukum berkewajiban untuk meminta informasi keuangan Anda.", + "1400341216": "We’ll review your documents and notify you of its status within 1 to 3 days.", "1400637999": "(Semua kolom wajib diisi)", "1400732866": "Lihat dari kamera", "1400962248": "High-Close", @@ -1263,9 +1260,11 @@ "1584109614": "Daftar string tik", "1584578483": "50+ aset: forex, saham, indeks saham, indeks sintetis, dan mata uang kripto.", "1584936297": "File XML berisi elemen yang tidak tersedia. Silakan periksa atau ubah file.", + "1585859194": "We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts, your Deriv fiat and {{platform_name_derivez}} accounts, and your Deriv fiat and {{platform_name_dxtrade}} accounts.", "1587046102": "Dokumen dari negara tersebut saat ini tidak dapat diterima — silakan coba jenis dokumen lain", "1589640950": "Penjualan kembali kontrak ini tidak tersedia.", "1589702653": "Bukti alamat", + "1591933071": "Resubmit document", "1593010588": "Login sekarang", "1594147169": "Silahkan kembali pada jam", "1594322503": "Penjualan tersedia", @@ -1280,7 +1279,6 @@ "1605222432": "Saya tidak memiliki pengetahuan dan pengalaman dalam trading sama sekali.", "1605292429": "Maks. total kerugian", "1612105450": "Dapatkan substring", - "1613273139": "Kirim ulang bukti identitas dan alamat", "1613633732": "Interval harus antara 10-60 menit", "1615897837": "Periode EMA sinyal {{ input_number }}", "1618809782": "Penarikan maksimum", @@ -1324,7 +1322,6 @@ "1665272539": "Ingat: Anda tidak dapat mengakses akun Anda hingga tanggal yang dipilih tercapai.", "1665738338": "Saldo", "1665756261": "Kunjungi obrolan langsung", - "1667395210": "Bukti identitas Anda telah berhasil dikirim", "1668138872": "Memodifikasi pengaturan akun", "1670016002": "Multiplier: {{ multiplier }}", "1670426231": "Waktu Akhir", @@ -1349,6 +1346,7 @@ "1694517345": "Masukkan alamat email baru", "1695807119": "Tidak dapat memuat blok Google Drive", "1700233813": "Transfer dari {{selected_value}} tidak diperbolehkan, silakan pilih akun lain dari menu dropdown", + "1701447705": "Please update your address", "1704656659": "Berapa banyak pengalaman yang Anda miliki dalam trading CFD?", "1708413635": "Untuk akun {{currency_name}} ({{currency}}) Anda", "1709859601": "Waktu Spot Akhir", @@ -1419,6 +1417,7 @@ "1778893716": "Klik di sini", "1779519903": "Harus nomor yang valid.", "1780770384": "Blok ini memberi Anda pecahan acak antara 0,0 hingga 1,0.", + "1781393492": "We do not charge a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts, your Deriv fiat and {{platform_name_derivez}} accounts and your Deriv fiat and {{platform_name_dxtrade}} accounts.", "1782308283": "Strategi cepat", "1782395995": "Analisa Digit Terakhir", "1782690282": "Menu blok", @@ -1429,6 +1428,7 @@ "1788966083": "01-07-1999", "1789497185": "Pastikan data paspor Anda dapat dibaca dengan jelas, tidak buram atau menyilaukan", "1790770969": "FX-mayor (standar/lot mikro), FX-minor, Komoditas, Mata uang kripto", + "1791017883": "Check out this <0>user guide.", "1791432284": "Cari negara", "1791971912": "Terbaru", "1793913365": "Untuk mendeposit dana, pindah ke akun {{currency_symbol}} Anda.", @@ -1549,6 +1549,7 @@ "1918832194": "Tidak ada pengalaman", "1919030163": "Tips untuk mengambil selfie yang bagus", "1919594496": "{{website_name}} tidak berafiliasi dengan agen pembayaran mana pun. Pelanggan yang berurusan dengan agen pembayaran atas risiko mereka sendiri. Pelanggan disarankan untuk memeriksa kredensi agen pembayaran dan keakuratan informasi apa pun mengenai agen pembayaran (pada {{website_name}} atau di tempat lain) sebelum menggunakan layanan mereka.", + "1919694313": "To start trading, transfer funds from your Deriv account into this account.", "1920217537": "Bandingkan", "1920468180": "Cara menggunakan blok SMA", "1921634159": "Beberapa detail pribadi", @@ -1655,6 +1656,7 @@ "2037481040": "Pilih cara untuk mendanai akun Anda", "2037665157": "Perluas semua blok", "2037906477": "dapatkan sub-daftar dari #", + "2042023623": "We’re reviewing your documents. This should take about 5 minutes.", "2042050260": "- Harga beli: harga pembelian (modal) kontrak", "2042115724": "Unggah tangkapan layar akun dan halaman detail pribadi Anda dengan nama, nomor akun, nomor telepon, dan alamat email Anda.", "2042778835": "Kebijakan keluhan ini dapat berubah dari waktu ke waktu, berlaku untuk akun Anda yang terdaftar pada {{legal_entity_name}}.", @@ -2002,7 +2004,7 @@ "-1543016582": "Dengan ini saya mengkonfirmasikan bahwa informasi pajak yang saya berikan adalah benar dan lengkap. Saya juga akan menginformasikan kepada {{legal_entity_name}}. jika terdapat perubahan pada informasi ini.", "-1387062433": "Alasan pedaftaran akun", "-1088324715": "Kami akan meninjau dokumen dan mengabari Anda dalam tempo 1 - 3 hari kerja.", - "-684271315": "OK", + "-329713179": "Ok", "-1176889260": "Mohon pilih jenis dokumen.", "-1515286538": "Mohon masukkan nomor dokumen. ", "-1785463422": "Verifikasi identitas Anda", @@ -2016,7 +2018,6 @@ "-841187054": "Coba Lagi", "-2097808873": "Kami tidak dapat memverifikasi ID Anda berdasarkan detail yang Anda berikan. ", "-228284848": "Kami tidak dapat memverifikasi ID Anda berdasarkan detail yang Anda berikan.", - "-1443800801": "Nomor ID Anda telah berhasil dikirim", "-1391934478": "ID Anda telah diverifikasi. Anda juga harus mengirimkan bukti alamat Anda.", "-118547687": "Verifikasi ID berhasil", "-200989771": "Kunjungi detail pribadi", @@ -2045,7 +2046,6 @@ "-813779897": "Bukti verifikasi kepemilikan lulus.", "-1389323399": "Anda harus memasukkan {{min_number}}-{{max_number}} karakter.", "-1313806160": "Silakan minta kata sandi baru dan cek email Anda untuk mendapat token baru.", - "-329713179": "Ok", "-1598167506": "Sukses", "-1077809489": "Anda memiliki kata sandi {{platform}} baru untuk mengakses akun {{platform}} pada web dan aplikasi seluler.", "-2068479232": "kata sandi {{platform}}", @@ -2093,6 +2093,7 @@ "-680528873": "Akun Anda akan didaftarkan pada {{legal_entity_name}} dan akan tunduk pada yurisdiksi dan hukum dari Samoa.", "-1125193491": "Tambahkan akun", "-2068229627": "Saya bukan PEP, dan saya belum menjadi PEP dalam tempo 12 bulan terakhir.", + "-684271315": "OK", "-1720468017": "Agar dapat menyediakan layanan kami untuk Anda, maka kami diharuskan memperoleh beberapa informasi dari Anda untuk memastikan apakah produk dan layanan kami cocok.", "-186841084": "Ubah email login Anda", "-907403572": "To change your email address, you'll first need to unlink your email address from your {{identifier_title}} account.", @@ -2225,6 +2226,7 @@ "-38915613": "Perubahan yang belum disimpan", "-2137450250": "Anda memiliki perubahan yang belum disimpan. Apakah Anda yakin ingin membuang perubahan dan meninggalkan halaman ini?", "-1067082004": "Tinggalkan Pengaturan", + "-1982432743": "It appears that the address in your document doesn’t match the address\n in your Deriv profile. Please update your personal details now with the\n correct address.", "-1451334536": "Lanjutkan trading", "-1525879032": "Dokumen bukti alamat Anda sudah tidak berlaku lagi. Silakan kirim kembali.", "-1425489838": "Verifikasi bukti alamat tidak diperlukan", @@ -2243,7 +2245,6 @@ "-639677539": "Beli mata uang kripto", "-1560098002": "Beli mata uang kripto melalui fiat onramp", "-541870313": "Deposit melalui agen pembayaran", - "-72314872": "Deposit dalam mata uang lokal melalui pertukaran peer-to-peer dengan sesama trader di negara Anda.", "-58126117": "Akses mudah Anda ke dalam dunia kripto. Cara cepat dan aman untuk bertukar dan membeli mata uang kripto. Tersedia 24/7 suport melalui obrolan langsung.", "-1705887186": "Deposit Anda berhasil.", "-142361708": "Dalam proses", @@ -2345,8 +2346,11 @@ "-2056016338": "Anda tidak akan dikenakan biaya transfer pada transaksi yang menggunakan mata uang sama antara akun fiat Deriv dan akun {{platform_name_mt5}}.", "-599632330": "Kami akan mengenakan biaya transfer sebesar 1% bagi akun dengan mata uang berbeda antara akun fiat Deriv ke akun {{platform_name_mt5}} dan juga antara akun fiat Deriv ke akun {{platform_name_dxtrade}}.", "-1196994774": "Kami akan mengenakan biaya transfer sebesar 2% atau {{minimum_fee}} {{currency}}, mana yang lebih tinggi, untuk transfer antara akun mata uang kripto Deriv Anda.", + "-1361372445": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts, your Deriv cryptocurrency and {{platform_name_derivez}} accounts, and your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.", "-993556039": "Kami akan mengenakan biaya transfer sebesar 2% atau {{minimum_fee}} {{currency}}, mana yang lebih tinggi, untuk transfer antara akun mata uang kripto ke Deriv MT5 dan antara akun mata uang kripto Deriv ke akun {{platform_name_dxtrade}}.", "-1382702462": "Kami akan mengenakan biaya transfer sebesar 2% atau {{minimum_fee}} {{currency}}, mana yang lebih tinggi, untuk transfer antara akun mata uang kripto ke akun Deriv MT5.", + "-1995859618": "You may transfer between your Deriv fiat, cryptocurrency, {{platform_name_mt5}}, {{platform_name_derivez}} and {{platform_name_dxtrade}} accounts.", + "-545616470": "Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts, up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts, up to {{ allowed_derivez }} transfers between your Deriv and {{platform_name_derivez}} accounts, and up to {{ allowed_dxtrade }} transfers between your Deriv and {{platform_name_dxtrade}} accounts.", "-1151983985": "Batas transfer dapat bervariasi tergantung pada nilai tukar.", "-1747571263": "Mohon diketahui bahwa beberapa transfer mungin tidak dapat dilakukan.", "-757062699": "Transfer mungkin tidak tersedia berhubung volatilitas tinggi atau masalah teknis dan ketika pasar pertukaran ditutup.", @@ -2631,6 +2635,7 @@ "-328128497": "Finansial", "-533935232": "Finansial BVI", "-565431857": "Finansial Labuan", + "-1290112064": "Deriv EZ", "-1669418686": "AUD/CAD", "-1548588249": "AUD/CHF", "-1552890620": "AUD/JPY", @@ -2745,6 +2750,7 @@ "-1125797291": "Kata sandi diperbarui.", "-157145612": "Silakan akses menggunakan kata sandi baru Anda.", "-1728185398": "Kirim ulang bukti alamat", + "-612396514": "Please resubmit your proof of address.", "-1519764694": "Bukti alamat Anda telah terverifikasi.", "-1961967032": "Kirimkan kembali bukti identitas", "-117048458": "Mohon kirimkan bukti identitas Anda.", @@ -2772,6 +2778,10 @@ "-1834929362": "Unggah dokumen saya", "-1043638404": "<0>Verifikasi bukti kepemilikan <1>gagal", "-1766760306": "<0><1>Silakan unggah dokumen Anda <2>dengan rincian yang benar.<3>", + "-2142540205": "It appears that the address in your document doesn’t match the address in your Deriv profile. Please update your personal details now with the correct address.", + "-482715448": "Go to Personal details", + "-2072411961": "Your proof of address has been verified", + "-384887227": "Update the address in your profile.", "-1998049070": "Jika Anda menyetujui penggunaan cookies kami, klik pada tombol Menerima. Untuk informasi lebih lanjut, <0>lihat halaman kebijakan kami.", "-402093392": "Daftar akun Deriv", "-277547429": "Akun Deriv dapat Anda gunakan untuk mendeposit dana ke (dan menarik dana dari) akun MT5 Anda.", @@ -2913,6 +2923,10 @@ "-429248139": "5. Sangkalan", "-818926350": "Komisi Keuangan menerima banding dalam tempo 45 hari setelah tanggal kejadian dan hanya setelah trader sudah mencoba untuk menyelesaikan masalah dengan perusahaan secara langsung.", "-358055541": "Asah trading Anda menggunakan alat baru yang keren", + "-29496115": "We've partnered with Acuity to give you a suite of intuitive trading tools for MT5 so you can keep track of market events and trends, free of charge!<0/><0/>", + "-648669944": "Download the Acuity suite and take advantage of the <1>Macroeconomic Calendar, Market Alerts, Research Terminal, and <1>Signal Centre Trade Ideas without leaving your MT5 terminal.<0/><0/>", + "-794294380": "This suite is only available for Windows, and is most recommended for financial assets.", + "-922510206": "Need help using Acuity?", "-815070480": "Penafian: Layanan trading dan informasi yang disediakan oleh Acuity tidak dapat ditafsirkan sebagai ajakan untuk berinvestasi dan/atau bertrading. Deriv tidak menawarkan saran investasi apapun. Prestasi sebelumnya bukanlah hal yang pasti untuk kinerja masa depan, dan strategi yang berhasil sebelumnya mungkin tidak menghasilkan hal yang sama di masa depan.", "-2111521813": "Unduh Acuity", "-175369516": "Selamat datang di Deriv X", @@ -2968,6 +2982,7 @@ "-712681566": "Pertukaran peer-to-peer", "-1267880283": "{{field_name}} diperlukan", "-2084509650": "{{field_name}} tidak diformat dengan benar.", + "-222283483": "Account opening reason*", "-1779241732": "Baris pertama alamat tidak dalam format yang benar.", "-188222339": "Tidak boleh melebihi {{max_number}} karakter.", "-1673422138": "Wilayah/Propinsi tidak dalam format yang benar.", @@ -2981,13 +2996,15 @@ "-1982499699": "Jelajahi {{platform_name_dbot}}", "-1567989247": "Kirimkan bukti identitas dan alamat Anda", "-184453418": "Masukkan kata sandi {{platform}} Anda", - "-1769158315": "riil", - "-700260448": "demo", - "-1980366110": "Selamat, Anda telah berhasil mendaftar akun {{category}} {{platform}} <0>{{type}}.", + "-393388362": "We’re reviewing your documents. This should take about 1 to 3 days.", "-790488576": "Lupa kata sandi?", "-926547017": "Masukkan kata sandi {{platform}} untuk menambahkan akun {{platform}} {{account}} {{jurisdiction_shortcode}}.", "-1190393389": "Masukkan kata sandi {{platform}} untuk menambahkan akun {{platform}} {{account}}.", "-2057918502": "Petunjuk: Anda mungkin menggunakan kata sandi Deriv, yang berbeda dengan kata sandi {{platform}}.", + "-1769158315": "riil", + "-700260448": "demo", + "-1936102840": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} account. ", + "-1570793523": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} account.", "-1928229820": "Reset kata sandi investor Deriv X", "-1087845020": "utama", "-1950683866": "investor", @@ -3013,24 +3030,14 @@ "-161656683": "Kata sandi investor saat ini", "-374736923": "Kata sandi investor baru", "-1793894323": "Membuat atau mengatur ulang kata sandi investor", - "-1124208206": "Beralih ke akun riil Anda untuk mendaftar akun DMT5 {{account_title}} {{type_title}}.", - "-1576792859": "Bukti identitas dan alamat diperlukan", - "-104382603": "Periksa bukti alamat Anda", - "-793684335": "Periksa bukti identitas Anda", "-1271218821": "Akun didaftarkan", - "-599621079": "Daftarkan akun Deriv MT5 {{account_type}} Anda di bawah Deriv (SVG) LLC (nomor perusahaan 273 LLC 2020).", - "-1302969276": "Daftarkan akun Deriv MT5 {{account_type}} Anda di bawah Deriv (BVI) Ltd, yang diatur oleh Komisi Jasa Keuangan Kepulauan Virgin Britania Raya (Lisensi no. SIBA/{{line_break}}L/18/1114).", - "-1422519943": "Daftarkan akun DMT5 {{account_type}} Anda di bawah Deriv (V) Ltd, diatur oleh Komisi Jasa Keuangan Vanuatu.", - "-1731304187": "Daftarkan akun Deriv MT5 CFD di bawah Deriv Investments (Europe) Limited diatur oleh Otoritas Jasa Keuangan Malta (MFSA) (lisensi no. IS/70156).", - "-16048185": "Untuk mendaftar akun ini, kami memerlukan bukti identitas dan alamat Anda.", - "-1627989291": "Untuk mendaftar akun ini, Anda perlu mengirimkan kembali bukti identitas.", - "-1389025684": "Untuk mendaftar akun ini, Anda perlu mengirimkan kembali bukti identitas dan alamat.", - "-1615750576": "Anda akan dapat mendaftarkan akun ini setelah dokumen yang Anda kirimkan diverifikasi.", - "-724308541": "Yurisdiksi untuk akun CFD Deriv MT5 Anda", - "-479119833": "Pilih yurisdiksi untuk akun Deriv MT5 {{account_type}} Anda", + "-1576792859": "Bukti identitas dan alamat diperlukan", "-1931257307": "Anda perlu mengirimkan bukti identitas", "-2026018074": "Daftarkan akun Deriv MT5 <0>{{account_type_name}} Anda di bawah Deriv (SVG) LLC (perusahaan no. 273 LLC 2020).", "-162320753": "Daftarkan akun Deriv MT5 <0>{{account_type_name}} Anda di bawah Deriv (BVI) Ltd, diatur oleh Komisi Jasa Keuangan British Virgin Islands (Lisensi no. SIBA/L/18/1114).", + "-1731304187": "Daftarkan akun Deriv MT5 CFD di bawah Deriv Investments (Europe) Limited diatur oleh Otoritas Jasa Keuangan Malta (MFSA) (lisensi no. IS/70156).", + "-724308541": "Yurisdiksi untuk akun CFD Deriv MT5 Anda", + "-479119833": "Pilih yurisdiksi untuk akun Deriv MT5 {{account_type}} Anda", "-450424792": "Anda memerlukan akun riil (dalam mata uang fiat atau kripto) Deriv untuk mendaftar akun riil Deriv MT5.", "-1760596315": "Daftar akun Deriv", "-705682181": "Malta", diff --git a/packages/translations/src/translations/it.json b/packages/translations/src/translations/it.json index b3d410f48790..ce961c01da7d 100644 --- a/packages/translations/src/translations/it.json +++ b/packages/translations/src/translations/it.json @@ -70,10 +70,8 @@ "98972777": "elemento casuale", "100239694": "Carica il lato frontale della carta dal tuo computer", "102226908": "Il campo non può essere vuoto", - "107206831": "Analizzeremo il documento e ti aggiorneremo sullo stato entro 1 o 3 giorni.", "108916570": "Durata: {{duration}} giorni", "109073671": "Usa un portafoglio elettronico utilizzato precedentemente per i depositi. Assicurati che il portafoglio elettronico supporti i prelievi. Puoi consulare un elenco <0>qui.", - "110261653": "Congratulazioni, hai creato con successo il conto {{category}} {{platform}} <0>{{type}} {{jurisdiction_selected_shortcode}}. Per iniziare a fare trading, trasferisci fondi dal tuo conto Deriv a questo.", "111215238": "Allontanati dalla luce diretta", "111718006": "Data di termine", "111931529": "Puntata massima totale su 7 giorni", @@ -182,6 +180,7 @@ "248909149": "Invia un codice di sicurezza al tuo telefono", "249908265": "Sei cittadino di {{- residence}}?", "251134918": "Informazioni sul conto", + "251322536": "Conti Deriv EZ", "251445658": "Motivo scuro", "251882697": "Grazie! La tua risposta è stata registrata nel nostro sistema.<0/><0/> Premi «Ok» per continuare.", "254912581": "Analogamente a EMA, questo blocco fornisce anche l'interna linea EMA basandosi sull'elenco di input e il periodo determinato.", @@ -197,6 +196,7 @@ "265644304": "Tipi di trade", "267992618": "Le piattaforme non sono funzionali o non offrono le funzioni fondamentali.", "268940240": "Il saldo ({{format_balance}} {{currency}}) è inferiore all'attuale importo minimo consentito per i prelievi pari a ({{format_min_withdraw_amount}} {{currency}}). Traferisci fondi sul conto per proseguire con il prelievo.", + "269322978": "Deposita fondi nella tua valuta locale tramite scambi su rete paritaria (peer-to-peer) con altri trader nel tuo Paese.", "269607721": "Carica", "270339490": "Se selezioni \"Sopra\", vincerai il payout se l'ultima cifra dell'ultimo tick è maggiore rispetto alla tua previsione.", "270610771": "Nell'esempio, il prezzo di apertura di una candela è assegnato alla variabile \"candle_open_price\".", @@ -212,6 +212,7 @@ "278684544": "ottieni sotto elenco da # dalla fine", "282319001": "Controlla la tua fotografia", "282564053": "Successivamente avremo bisogno del documento di verifica dell'indirizzo.", + "283830551": "Il tuo indirizzo non corrisponde al tuo profilo", "283986166": "L'autoesclusione su questo sito web si applica solamente al conto tuo {{brand_website_name}} e non include altri siti web o società.", "284527272": "antimode", "284772879": "Contratto", @@ -245,7 +246,6 @@ "327534692": "Il valore di durata non è consentito. Per avviare il bot, inserire {{min}}.", "328539132": "Ripete le istruzioni ad esso relative per un numero specifico di volte", "329404045": "<0>Passa al conto reale<1> per creare un conto {{account_title}} {{platform}}.", - "332886946": "<1>Hai bisogno di aiuto per usare Acuity? <0/>Consulta questa <2>guida per l'utente.", "333456603": "Limiti per i prelievi", "334680754": "Passa al tuo conto reale per creare un conto Deriv MT5", "334942497": "Tempo di acquista", @@ -368,7 +368,6 @@ "478280278": "Questo blocco presenta una finestra di dialogo che usa un messaggio personalizzato per dare un input; quest'ultimo può essere o una stringa di testo o un numero, e può essere assegnato a una variabile. Quando appare la finestra di dialogo, la strategia viene interrotta e riprende a operare solo dopo che avrai inserito una risposta e cliccato \"OK\".", "479420576": "Terziario", "481276888": "Esce fuori", - "483246914": "Aggiungi il tuo conto Deriv MT5 STP {{account_type}} con Deriv (FX) Ltd regolamentato dalla Labuan Financial Services Authority (licenza n. MB/18/0024).", "483279638": "Valutazione completata<0/><0/>", "483591040": "Elimina tutti i {{ delete_count }} blocchi?", "485379166": "Visualizza le transazioni", @@ -419,7 +418,6 @@ "551569133": "Scopri di più sui limiti relativi ai trade", "554410233": "Questa è una delle 10 password più usate", "555351771": "Dopo aver definito i parametri e le opzioni di trading, potresti istruire il tuo bot ad acquistare contratti quando si verificano specifiche condizioni. A tal proposito, potrai utilizzare blocchi condizionali e indicatori per aiutare il tuo bot a prendere decisioni.", - "556095366": "Analizzeremo i dati in pochi minuti e te ne comunicheremo lo stato via e-mail.", "556264438": "Intervallo di tempo", "559224320": "Lo strumento “trascina” per creare bot per il trading, con grafici a comparsa, per utenti esperti.", "561982839": "Cambia la valuta", @@ -517,7 +515,7 @@ "665089217": "Invia <0>il documenti di verifica dell'identità per autenticare il tuo conto e accedere alla cassa.", "665777772": "XLM/USD", "665872465": "Nell'esempio sottostante, è stato selezionato il prezzo di apertura, che viene poi assegnato a una variabile chiamata \"op\".", - "666724936": "Inserisci un numero di ID valido.", + "666724936": "Inserisci un numero ID valido.", "668344562": "Sintetici, FX maggiori (lotti standard/micro), FX minori, panieri di indici, materie prime e criptovalute", "672008428": "ZEC/USD", "673915530": "Giurisdizione e scelta delle legge applicabile", @@ -576,6 +574,7 @@ "745656178": "Utilizza questo blocco per vendere il tuo contratto al prezzo di mercato.", "745674059": "Restituisce il carattere specifico di una data stringa di testo secondo l'opzione selezionata. ", "746112978": "L'aggiornamento del computer potrebbe richiedere alcuni secondi", + "750886728": "Switch to your real account to submit your documents", "751692023": "<0>Non garantiamo un rimborso in caso de trasferimento sbagliato.", "752024971": "Raggiunto il numero massimo di cifre", "752633544": "Dovrai presentare una prova di identità e indirizzo una volta raggiunte determinate soglie", @@ -710,7 +709,7 @@ "918447723": "Reale", "920125517": "Aggiungi conto demo", "921901739": "- i dati del conto bancario collegato al tuo conto", - "924046954": "Carica un documento che mostri il tuo nome e il numero di conto bancario o i dettagli del conto.", + "924046954": "Carica un documento che mostri il tuo nome e il numero di conto bancario o le informazioni del conto.", "926813068": "Fisso/variabile", "929608744": "Non puoi effettuare prelievi", "930346117": "Le lettere maiuscole non sono di grande aiuto", @@ -778,7 +777,7 @@ "1006664890": "Silenzioso", "1009032439": "Sempre", "1010198306": "Questo blocco crea una lista con stringhe e numeri.", - "1010337648": "Non siamo stati in grado di verificare la tua prova di proprietà.", + "1010337648": "Non siamo stati in grado di verificare il documento a verifica della proprietà.", "1012102263": "Non potrai accedere al tuo conto fino a questa data (massimo 6 settimane da oggi).", "1015201500": "Stabilisci le opzioni di trading come durata e puntata.", "1016220824": "Devi passare a un conto reale per usare questa opzione. <0/>Per farlo, seleziona un conto reale da <1>Cambia conto.", @@ -790,7 +789,6 @@ "1023643811": "Questo blocco acquista una specifica tipologia di contratti.", "1023795011": "Pari/Dispari", "1024205076": "Operazione logica", - "1024760087": "Sei autorizzato ad aggiungere questo conto", "1025887996": "Protezione dal saldo negativo", "1026046972": "Inserisci un importo di payout inferiore a {{max_payout}}.", "1027098103": "La leva offre la possibilità di fare trading con una posizione più ampia utilizzando il capitale esistente, e cambia a seconda dei simboli.", @@ -855,7 +853,7 @@ "1086118495": "Hub per i trader", "1088138125": "Tick {{current_tick}} - ", "1089085289": "Numero di telefono", - "1096078516": "Analizzeremo i documenti e ti aggiorneremo sullo stato entro 3 giorni.", + "1096078516": "Verificheremo i documenti e ti aggiorneremo sullo stato della procedura entro 3 giorni.", "1096175323": "Occorre un conto Deriv", "1098147569": "Acquistare materie prime o azioni di una società.", "1098622295": "\"i\" inizia con il valore 1, e aumenta di 2 a ogni interazione. La ripetizione si ripete fino a quando \"i\" raggiunge il valore di 12, dopodiché termina.", @@ -874,6 +872,7 @@ "1112582372": "Durata intervallo", "1113119682": "Questo blocco fornisce il valore della candela selezionata da un elenco di candele.", "1113292761": "Meno di 8 MB", + "1113433728": "Resubmit your proof of identity and address", "1117863275": "Sicurezza e protezione", "1118294625": "Hai scelto di autoescluderti dal trading sul nostro sito fino a {{exclusion_end}}. Se non riesci a effettuare un trade o un deposito dopo il periodo di autoesclusione, contattaci tramite la chat live.", "1119887091": "Verifica", @@ -935,7 +934,6 @@ "1189886490": "Crea un altro conto Deriv, {{platform_name_mt5}} o {{platform_name_dxtrade}}.", "1191429031": "Per modificare la password <0>{{platform_name_dxtrade}}, fai clic sul link presente nell'e-mail.", "1191644656": "Prevedi l'andamento del mercato e seleziona \"Su\" o \"Giù\" per aprire una posizione. Applicheremo una commissione per l'apertura di una posizione.", - "1191778951": "Verifica la tua identità e il tuo indirizzo", "1192708099": "Unità di durata", "1195393249": "Notifica {{ notification_type }} con suono: {{ notification_sound }} {{ input_message }}", "1196006480": "Soglia di profitto", @@ -972,7 +970,7 @@ "1232353969": "0-5 operazioni negli ultimi 12 mesi", "1233300532": "Payout", "1234292259": "Fonte di ricchezza", - "1234764730": "Carica uno screenshot del tuo nome e indirizzo email dalla sezione dei dettagli personali.", + "1234764730": "Carica uno screenshot del tuo nome e indirizzo email dalla sezione delle informazioni personali.", "1235426525": "50%", "1237330017": "Pensionato", "1238311538": "Amministratore", @@ -1009,7 +1007,6 @@ "1281290230": "Seleziona", "1282951921": "Solo discendenti", "1284522768": "Selezionando \"Perdita\", restituirai \"Vero\" se l'ultimo trade non è andato a buon fine. Diversamente, restituirai una stringa vuota.", - "1285686014": "In attesa di revisione del documento a verifica dell'identità", "1286094280": "Preleva", "1286507651": "Chiudi schermata di verifica dell'identità", "1288965214": "Passaporto", @@ -1105,7 +1102,6 @@ "1384222389": "Invia documenti d'identità validi per sbloccare la cassa.", "1385418910": "Seleziona una valuta per il conto reale in tuo possesso prima di creare un nuovo conto.", "1387503299": "Login", - "1388770399": "È richiesto un documento a verifica dell'identità", "1389197139": "Errore d'importazione", "1390792283": "Parametri del trade", "1391174838": "Payout potenziale:", @@ -1118,6 +1114,7 @@ "1396417530": "Indice mercato ribassista", "1397628594": "Fondi insufficienti", "1399620764": "Siamo tenuti legalmente a richiedere le tue informazioni finanziarie.", + "1400341216": "We’ll review your documents and notify you of its status within 1 to 3 days.", "1400637999": "(Tutti i campi sono obbligatori)", "1400732866": "Visualizza da fotocamera", "1400962248": "High-Close", @@ -1234,7 +1231,7 @@ "1540585098": "Rifiuta", "1541969455": "Entrambi", "1544642951": "Selezionando \"Solo ascendente\", ottieni il payout se tick consecutivi superano successivamente il punto di entrata. Non ottieni alcun payout se qualsiasi tick è minore o uguale a uno dei tick precedenti.", - "1547148381": "Il file è troppo grande (sono consentiti solo fino a 8MB). Carica un altro file.", + "1547148381": "Le dimensioni del file sono troppo grandi (consentiti solo fino a 8MB). Carica un altro file.", "1548765374": "La verifica del numero di documento non è andata a buon fine", "1549098835": "Totale prelievo", "1551172020": "Paniere AUD", @@ -1263,9 +1260,11 @@ "1584109614": "Lista di stringhe di tick", "1584578483": "Oltre 50 asset: Forex, azioni, indici azionari, indici sintetici e criptovalute.", "1584936297": "Il file XML contiene elementi non supportati. Controlla o modifica il file.", + "1585859194": "Verrà addebitata una commissione del 1% per i trasferimenti su diverse valute tra i conti fiat Deriv e {{platform_name_mt5}}, tra i conti fiat Deriv e {{platform_name_derivez}}, e tra i conti fiat Deriv e {{platform_name_dxtrade}}.", "1587046102": "Al momento non si accettano documenti da questo Paese — prova con un altro tipo di documento", "1589640950": "La rivendita non è disponibile per questo contratto.", "1589702653": "Prova a verifica dell'indirizzo", + "1591933071": "Resubmit document", "1593010588": "Fai login ora", "1594147169": "Prova di nuovo", "1594322503": "La vendita è disponibile", @@ -1280,7 +1279,6 @@ "1605222432": "Non ho alcuna conoscenza ed esperienza nel trading.", "1605292429": "Perdita massima totale", "1612105450": "Ottieni sottostringa", - "1613273139": "Invia di nuovo il documento a verifica dell'identità e indirizzo", "1613633732": "L'intervallo deve essere compreso tra 10 e 60 minuti", "1615897837": "Segna del periodo EMA {{ input_number }}", "1618809782": "Prelievo massimo", @@ -1324,7 +1322,6 @@ "1665272539": "Ricorda: non puoi effettuare l'accesso al conto fino alla data selezionata.", "1665738338": "Saldo", "1665756261": "Vai alla chat live", - "1667395210": "Il documento di verifica dell'identità è stato inoltrato con successo", "1668138872": "Modifica le impostazioni del conto", "1670016002": "Moltiplicatore: {{ multiplier }}", "1670426231": "Orario di fine", @@ -1332,7 +1329,7 @@ "1675030608": "Per creare questo conto, abbiamo bisogno prima che tu invii nuovamente la prova dell'indirizzo.", "1677027187": "Forex", "1677990284": "Le mie app", - "1680666439": "Carica lo estratto conto bancario con il tuo nome, il numero di conto e la cronologia delle transazioni.", + "1680666439": "Carica l'estratto conto bancario con il tuo nome, il numero di conto e la cronologia delle transazioni.", "1682409128": "Strategia senza nome", "1682636566": "Invia di nuovo e-mail a", "1683963454": "Il contratto verrà chiuso automaticamente al successivo prezzo disponibile dell'asset il {{date}} alle {{timestamp}}.", @@ -1349,6 +1346,7 @@ "1694517345": "Inserisci un nuovo indirizzo e-mail", "1695807119": "Impossibile caricare i blocchi di Google Drive", "1700233813": "Il trasferimento da {{selected_value}} non è consentito. Scegli un altro conto dal menu a discesa", + "1701447705": "Per favore, aggiorna il tuo indirizzo", "1704656659": "Quanta esperienza hai nel trading di CFD?", "1708413635": "Per il tuo conto {{currency_name}} in {{currency}}", "1709859601": "Orario dello spot di uscita", @@ -1367,7 +1365,7 @@ "1723398114": "Una recente bolletta delle utenze (ad es. elettricità, acqua, gas, telefono o internet)", "1723589564": "Rappresenta il numero massimo di contratti in essere nel tuo portafoglio. Ogni riga presente sul tuo portafoglio vale una posizione aperta. Una volta raggiunto il valore massimo, non potrai aprire nuove posizioni senza prima chiudere una posizione esistente.", "1724696797": "È possibile avere un solo conto fiat.", - "1725958461": "Numero di conto", + "1725958461": "Numero del conto", "1726472773": "Funzione che non restituisce un valore", "1726565314": "Chiudi il conto", "1727681395": "Totale asset attivi nei conti demo Deriv e {{platform_name_mt5}}.", @@ -1419,6 +1417,7 @@ "1778893716": "Clicca qui", "1779519903": "Deve essere un numero valido.", "1780770384": "Questo blocco fornisce una frazione casuale compresa tra 0,0 e 1,0.", + "1781393492": "Non addebitiamo alcuna commissione di trasferimento per i trasferimenti nella stessa valuta tra i conti Deriv fiat e {{platform_name_mt5}}, i conti Deriv fiat e {{platform_name_derivez}} e i conti fiat Deriv e {{platform_name_dxtrade}}.", "1782308283": "Strategia rapida", "1782395995": "Previsione sull'ultima cifra", "1782690282": "Menu dei blocchi", @@ -1429,11 +1428,12 @@ "1788966083": "01-07-1999", "1789497185": "Assicurati che i dettagli del passaporto siano leggibili, senza sfocature o riflessi", "1790770969": "Maggiori FX (standard/micro-lotti), minori FX, materie prime, criptovalute", + "1791017883": "Consulta questa <0>guida per l'utente.", "1791432284": "Ricerca per Paese", "1791971912": "Recente", "1793913365": "Per depositare denaro, passa al conto {{currency_symbol}}.", "1794815502": "Scarica la cronologia delle tue operazioni.", - "1796787905": "Carica il/i documento/i seguente/i.", + "1796787905": "Carica il/i seguente/i documento/i.", "1798943788": "Puoi solo effettuare depositi.", "1801093206": "Ottieni l'elenco candele", "1801927731": "Conti {{platform_name_dxtrade}}", @@ -1549,6 +1549,7 @@ "1918832194": "Nessuna esperienza", "1919030163": "Consigli per scattare un selfie adeguato", "1919594496": "{{website_name}} non è affiliato ad alcun agente di pagamento. I clienti svolgono operazioni con gli agenti di pagamento a proprio rischio. Si consiglia ai clienti di verificare le credenziali e l'accuratezza di tutte le informazioni degli agenti di pagamento (su {{website_name}} o altrove) prima di utilizzare i loro servizi.", + "1919694313": "To start trading, transfer funds from your Deriv account into this account.", "1920217537": "Confronta", "1920468180": "Come utilizzare il blocco SMA", "1921634159": "Alcuni dati personali", @@ -1610,7 +1611,7 @@ "1988153223": "Indirizzo e-mail", "1988302483": "Take profit:", "1988601220": "Valore della durata", - "1990331072": "Prova di proprietà", + "1990331072": "Documento a verifica della proprietà", "1990735316": "Aumento pari a", "1991448657": "Non conosci il tuo numero di identificazione fiscale? Clicca <0>qui per saperne di più.", "1991524207": "Indice Jump 100", @@ -1655,8 +1656,9 @@ "2037481040": "Scegli come accreditare fondi sul tuo conto", "2037665157": "Espandi tutti i blocchi", "2037906477": "ottieni sotto elenco da #", + "2042023623": "We’re reviewing your documents. This should take about 5 minutes.", "2042050260": "- Prezzo d'acquisto: il prezzo d'acquisto (puntata) del contratto", - "2042115724": "Carica uno screenshot del tuo conto e della pagina dei dettagli personali con il tuo nome, numero di conto, numero di telefono e indirizzo email.", + "2042115724": "Carica uno screenshot del tuo conto e della pagina delle informazioni personali con il tuo nome, numero di conto, numero di telefono e indirizzo email.", "2042778835": "La presente politica sui reclami potrebbe cambiare nel tempo, e si applica ai conti registrati con {{legal_entity_name}}.", "2044086432": "Quello di chiusura è l'ultimo tick entro l'orario di termine. Se selezioni un orario di termine preciso, quest'ultimo sarà l'orario selezionato.", "2046273837": "Ultimo tick", @@ -1702,7 +1704,7 @@ "2096456845": "Data di nascita*", "2097170986": "Tether (Omni)", "2097381850": "Calcola la linea della Media mobile semplice da un elenco con un periodo", - "2097932389": "Carica 2 schermate separate dalla pagina dei dettagli personali e dalla pagina del conto tramite <0>https://app.astropay.com/profile", + "2097932389": "Carica 2 schermate separate dalla pagina delle informazioni personali e dalla pagina del conto tramite la pagina <0>https://app.astropay.com/profile", "2100713124": "conto", "2101972779": "Utilizzando un elenco di tick, ripropone l'esempio precedente.", "2102572780": "Il codice deve comprendere 6 caratteri.", @@ -1821,7 +1823,7 @@ "-922751756": "Meno di un anno", "-542986255": "Nessuna", "-1337206552": "Secondo le tue conoscenze, il trading con i CFD ti consente di", - "-456863190": "Metti una posizione sul movimento del prezzo di un asset il cui risultato è un rendimento fisso o nulla.", + "-456863190": "Metti una posizione sul movimento del prezzo di un asset il cui risultato è un rendimento fisso o nullo.", "-1314683258": "Effettuare un investimento a lungo termine per un profitto garantito.", "-1546090184": "Come influisce la leva sul trading di CFD?", "-1636427115": "La leva finanziaria ti aiuta a mitigare il rischio.", @@ -1939,13 +1941,13 @@ "-1030759620": "Funzionari governativi", "-1196936955": "Carica uno screenshot del tuo nome e indirizzo email dalla sezione delle informazioni personali.", "-1286823855": "Carica l'estratto conto della bolletta del cellulare con il tuo nome e numero di telefono.", - "-1309548471": "Carica il tuo estratto conto bancario con il tuo nome e i dettagli del conto.", - "-1410396115": "Carica una foto che mostri il tuo nome e le prime sei e ultime quattro cifre del numero della tua carta. Se la carta non riporta il tuo nome, carica l'estratto conto bancario con il tuo nome e il numero della carta nella cronologia delle transazioni.", - "-3805155": "Carica uno screenshot di uno dei seguenti elementi per elaborare la transazione:", + "-1309548471": "Carica l'estratto conto bancario con il tuo nome e le informazioni del conto.", + "-1410396115": "Carica una foto che mostri il tuo nome e le prime sei e le ultime quattro cifre del numero della tua carta. Se la carta non riporta il tuo nome, carica l'estratto conto bancario con il tuo nome e il numero della carta nella cronologia delle transazioni.", + "-3805155": "Carica uno screenshot di una delle seguenti informazioni per elaborare la transazione:", "-1523487566": "- la sezione del profilo del tuo conto sul sito web", "-613062596": "- la pagina delle informazioni sul conto sull'app", "-1718304498": "ID utente", - "-609424336": "Carica uno screenshot del tuo nome, numero di conto e indirizzo email dalla sezione dei dettagli personali dell'app o della sezione del profilo del tuo conto sul sito web.", + "-609424336": "Carica uno screenshot del tuo nome, numero di conto e indirizzo email dalla sezione delle informazioni personali dell'app o della sezione del profilo del tuo conto sul sito web.", "-1954436643": "Carica uno screenshot del tuo nome utente nella pagina delle informazioni generali all'<0>indirizzo https://onlinenaira.com/members/index.htm", "-79853954": "Carica uno screenshot del tuo numero di conto e del numero di telefono nella pagina del conto bancario/portafoglio mobile all'<0>indirizzo https://onlinenaira.com/members/bank.htm", "-1192882870": "Carica uno screenshot del tuo nome e del tuo numero di conto dalla sezione dei dettagli personali.", @@ -2002,7 +2004,7 @@ "-1543016582": "Con la presente confermo che le informazioni fiscali fornite sono veritiere e complete. Informerò inoltre {{legal_entity_name}} su eventuali modifiche a queste informazioni.", "-1387062433": "Ragione dell'apertura del conto", "-1088324715": "Analizzeremo i documenti e ti aggiorneremo sullo stato dell'operazione entro 1-3 giorni lavorativi.", - "-684271315": "OK", + "-329713179": "Ok", "-1176889260": "Seleziona un tipo di documento.", "-1515286538": "Inserisci il numero di documento. ", "-1785463422": "Verifica l'identità", @@ -2016,7 +2018,6 @@ "-841187054": "Riprova", "-2097808873": "Non è stato possibile verificare l'ID sulla base dei dettagli inseriti. ", "-228284848": "Non è stato possibile verificare l'ID sulla base dei dettagli inseriti.", - "-1443800801": "Il numero dell'ID è stato inoltrato con successo", "-1391934478": "L'ID è stato verificato. Occorre inoltre inviare la prova per la verifica dell'indirizzo.", "-118547687": "Verifica dell'ID superata", "-200989771": "Vai ai dati personali", @@ -2039,13 +2040,12 @@ "-1725454783": "Non riuscito", "-839094775": "Indietro", "-856213726": "Dovrai inoltre consegnare un documento di verifica dell'identità.", - "-987011273": "La tua prova di proprietà non è richiesta.", - "-808299796": "Al momento non è necessario presentare una prova di proprietà. Ti informeremo se in futuro sarà richiesta una prova della proprietà.", - "-179726573": "Abbiamo ricevuto la tua prova di proprietà.", - "-813779897": "La verifica della proprietà è stata superata.", + "-987011273": "Il documento a verifica della proprietà non è richiesto.", + "-808299796": "Al momento non è necessario presentare un documento a verifica della proprietà. Ti informeremo se in futuro sarà richiesto.", + "-179726573": "Abbiamo ricevuto il tuo documento a verifica della proprietà.", + "-813779897": "La verifica della proprietà è andata a buon fine.", "-1389323399": "Devi inserire {{min_number}}-{{max_number}} caratteri.", "-1313806160": "Richiedi una nuova password e controlla di aver ricevuto un'e-mail con il nuovo token.", - "-329713179": "Ok", "-1598167506": "Fatto", "-1077809489": "Hai una nuova {{platform}} per accedere ai conti {{platform}} su web e app per smartphone.", "-2068479232": "Password {{platform}}", @@ -2093,6 +2093,7 @@ "-680528873": "Il conto verrà aperto con {{legal_entity_name}}, e sarà soggetto alle leggi di Samoa.", "-1125193491": "Aggiungi conto", "-2068229627": "Non sono un soggetto PEP e non lo sono stato negli ultimi 12 mesi.", + "-684271315": "OK", "-1720468017": "Al fine di fornirti i nostri servizi, siamo tenuti a richiederti informazioni per valutare se un determinato prodotto o servizio è appropriato per te.", "-186841084": "Modifica la tua email di accesso", "-907403572": "Per modificare il tuo indirizzo email, devi prima scollegare il tuo indirizzo email dal tuo conto {{identifier_title}}.", @@ -2225,6 +2226,7 @@ "-38915613": "Modifiche non salvate", "-2137450250": "Le modifiche non sono state salvate. Sei sicuro di non voler salvare e abbandonare la pagina?", "-1067082004": "Esci dalle Impostazioni", + "-1982432743": "Sembra che l'indirizzo nel documento non corrisponda all'indirizzo\n nel tuo profilo Deriv. Aggiorna subito i tuoi dati personali con l'indirizzo\n corretto.", "-1451334536": "Continua il trading", "-1525879032": "I documenti di verifica dell'indirizzo sono scaduti, è necessario inviarli nuovamente.", "-1425489838": "La verifica dell'indirizzo non è necessaria", @@ -2243,7 +2245,6 @@ "-639677539": "Acquista criptovalute", "-1560098002": "Acquista criptovalute tramite fiat onramp", "-541870313": "Deposita fondi tramite agenti di pagamento", - "-72314872": "Deposita fondi nella tua valuta locale tramite scambi su rete paritaria (peer-to-peer) con altri trader nel tuo Paese.", "-58126117": "Accedi facilmente alle criptovalute: è un modo semplice e veloce di scambiare e acquistare criptovalute, con supporto via chat 24/7.", "-1705887186": "Il deposito è andato a buon fine.", "-142361708": "In fase di elaborazione", @@ -2345,8 +2346,11 @@ "-2056016338": "Per i trasferimenti in valute uguali tra i conti fiat Deriv e {{platform_name_mt5}} non verrà addebitata alcuna commissione.", "-599632330": "Verrà addebitata una commissione del 1% per i trasferimenti nella stessa valuta tra i conti fiat Deriv e {{platform_name_mt5}}, e tra i conti fiat Deriv e {{platform_name_dxtrade}}.", "-1196994774": "Verrà addebitata una commissione per i trasferimenti 2% oppure {{minimum_fee}} {{currency}}, qualunque sia più alto, per i trasferimenti tra i conti per criptovalute di Deriv.", + "-1361372445": "Verrà addebitata una commissione per i trasferimenti del 2% oppure {{minimum_fee}} {{currency}}, qualunque sia più alto, per i trasferimenti tra i conti per criptovalute Deriv e i conti Deriv MT5, tra i conti per criptovalute Deriv e {{platform_name_derivez}}, e tra i conti per criptovalute Deriv e i conti {{platform_name_dxtrade}}.", "-993556039": "Verrà addebitata una commissione per i trasferimenti del 2% oppure {{minimum_fee}} {{currency}}, a seconda del valore più alto, per i trasferimenti tra i conti per criptovalute Deriv e Deriv MT5, e tra i conti per criptovalute Deriv e {{platform_name_dxtrade}}.", "-1382702462": "Verrà addebitata una commissione per i trasferimenti del 2% oppure {{minimum_fee}} {{currency}}, a seconda del valore più alto, per i trasferimenti tra i conti per criptovalute di Deriv e Deriv MT5.", + "-1995859618": "Puoi trasferire tra i conti Deriv fiat, criptovalute, {{platform_name_mt5}}, {{platform_name_derivez}} e {{platform_name_dxtrade}}.", + "-545616470": "Ogni giorno, puoi eseguire fino a {{ allowed_internal }} trasferimenti tra i conti Deriv, fino a {{ allowed_mt5 }} trasferimenti tra conti Deriv e {{platform_name_mt5}}, fino a {{ allowed_derivez }} trasferimenti tra i conti Deriv e {{platform_name_derivez}}, e fino a {{ allowed_dxtrade }} trasferimenti tra i conti Deriv e {{platform_name_dxtrade}}.", "-1151983985": "I limiti sui trasferimenti possono variare a seconda dei tassi di cambio.", "-1747571263": "Alcuni trasferimenti potrebbero non essere possibili.", "-757062699": "Potrebbe non essere possibile trasferire fondi a causa di volatilità elevata o quando i mercati sono chiusi.", @@ -2377,7 +2381,7 @@ "-451858550": "Facendo click su \"Continua\" verrai reindirizzato a {{ service }}, un fornitore di servizi di pagamento esterno. {{ website_name }} declina qualsiasi responsabilità per i contenuti o i servizi forniti da {{ service }}. Se riscontri problemi relativi ai servizi di {{ service }}, contatta direttamente {{ service }}.", "-2005265642": "Fiat onramp è un servizio di cassa che permette di convertire valute fiat in criptovalute per ricaricare i conti per criptovalute di Deriv. Qui sono elencati gli scambi di criptovalute di parti terze; è necessario creare un conto apposito per utilizzare i loro servizi.", "-1593063457": "Seleziona strumento di pagamento", - "-953082600": "Alcuni metodi di pagamento potrebbero non essere elencati qui, ma gli agenti di pagamento potrebbero comunque offrirli. Se non riesci a trovare il tuo metodo preferito, contatta direttamente gli agenti di pagamento per verificare ulteriormente.", + "-953082600": "Alcuni metodi di pagamento possono non essere elencati qui, anche se gli agenti di pagamento potrebbero comunque offrirli. Se non riesci a trovare il tuo metodo preferito, contatta direttamente gli agenti di pagamento per ulteriori verifiche.", "-2004264970": "L'indirizzo di portafoglio deve comprendere dai 25 ai 64 caratteri.", "-1707299138": "L'indirizzo di portafoglio {{currency_symbol}}", "-38063175": "Portafoglio in {{account_text}}", @@ -2631,6 +2635,7 @@ "-328128497": "Finanziario", "-533935232": "Finanziario BVI", "-565431857": "Finanziaria Labuan", + "-1290112064": "Deriv EZ", "-1669418686": "AUD/CAD", "-1548588249": "AUD/CHF", "-1552890620": "AUD/JPY", @@ -2745,6 +2750,7 @@ "-1125797291": "Password aggiornata.", "-157145612": "Effettua il login con la password aggiornata.", "-1728185398": "Invia nuovamente la prova dell'indirizzo", + "-612396514": "Please resubmit your proof of address.", "-1519764694": "La verifica dell'indirizzo è andata a buon fine.", "-1961967032": "Invia nuovamente la prova di identità", "-117048458": "Invia un documento a verifica dell'identità.", @@ -2767,11 +2773,15 @@ "-1719731099": "Grazie all'autenticazione a due fattori, il conto è protetto sia dalla password che dal telefono: in questo modo solo tu puoi accedere al conto anche se qualcuno conosce la password.", "-2087822170": "Sei offline", "-1669693571": "Verifica la tua connessione.", - "-1706642239": "<1>È richiesta <0>una prova di proprietà", - "-553262593": "<0><1>Il tuo conto è attualmente bloccato<2><3>Carica la prova di <4>proprietà per sbloccare il tuo conto. <5>", + "-1706642239": "<1>È richiesto <0>un documento a verifica della proprietà", + "-553262593": "<0><1>Il tuo conto è attualmente bloccato<2><3>Carica il documento a verifica della <4>proprietà per sbloccarlo. <5>", "-1834929362": "Carica il documento", "-1043638404": "<0>Verifica della proprietà <1>non riuscita", "-1766760306": "<0><1>Carica il documento <2>con i dati corretti.<3>", + "-2142540205": "Sembra che l'indirizzo nel documento non corrisponda all'indirizzo nel tuo profilo Deriv. Aggiorna subito i tuoi dati personali con l'indirizzo corretto.", + "-482715448": "Vai ai dati personali", + "-2072411961": "Il documento di verifica dell'indirizzo è stato verificato", + "-384887227": "Aggiorna l'indirizzo nel tuo profilo.", "-1998049070": "Se accetti l'uso dei cookies, clicca su Accetto. Per maggiori informazioni, <0>consulta la nostra politica.", "-402093392": "Aggiungi conto Deriv", "-277547429": "Un conto Deriv ti permetterà di depositare fondi su (e prelevare da) i tuoi conti MT5.", @@ -2913,6 +2923,10 @@ "-429248139": "5. Dichiarazione di esclusione di responsabilità", "-818926350": "La commissioni finanziaria accetta appelli per 45 giorni dopo la data dell'incidente e solo dopo che il trader ha provato a risolvere il problema direttamente con la società.", "-358055541": "Potenzia le tue operazioni con nuovi e fantastici strumenti", + "-29496115": "Abbiamo stretto una partnership con Acuity per offrirti una suite di strumenti di trading intuitivi per MT5 in modo che tu possa tenere traccia degli eventi e delle tendenze del mercato, gratuitamente! <0/><0/>", + "-648669944": "Scarica la suite Acuity e sfrutta il <1>calendario macroeconomico, gli avvisi di mercato, il terminale di ricerca e <1>le idee Trading di Signal Centre senza uscire dal terminale MT5.<0/><0/>", + "-794294380": "Questa suite è disponibile solo per Windows ed è consigliata soprattutto per le risorse finanziarie.", + "-922510206": "Hai bisogno di aiuto per usare Acuity?", "-815070480": "Disclaimer: i servizi e le informazioni di trading forniti da Acuity non devono essere interpretati come una sollecitazione a investire e/o negoziare. Deriv non offre consulenza in materia di investimenti. Il passato non è una guida per le prestazioni future e le strategie che hanno funzionato in passato potrebbero non funzionare in futuro.", "-2111521813": "Scarica Acuity", "-175369516": "Benvenuto su Deriv X", @@ -2955,7 +2969,7 @@ "-1300381594": "Ottieni gli strumenti di trading Acuity", "-860609405": "Password", "-742647506": "Trasferisci fondi", - "-1972393174": "Fai trading con CFD sui nostri sintetici, sui panieri e sugli FX derivati.", + "-1972393174": "Fai trading con CFD sui nostri sintetici, panieri e sugli FX derivati.", "-1357917360": "Terminale web", "-1454896285": "L'app per Desktop di MT5 non è supportata da Windows XP, Windows 2003 e Windows Vista.", "-810388996": "Scarica l'app mobile Deriv X", @@ -2968,6 +2982,7 @@ "-712681566": "Scambio peer-to-peer", "-1267880283": "{{field_name}} è obbligatorio", "-2084509650": "{{field_name}} non è in un formato corretto.", + "-222283483": "Account opening reason*", "-1779241732": "La seconda riga dell'indirizzo non è in un formato corretto.", "-188222339": "Non può superare {{max_number}} caratteri.", "-1673422138": "Lo Stato/Provincia non è in un formato corretto.", @@ -2981,13 +2996,15 @@ "-1982499699": "Esplora {{platform_name_dbot}}", "-1567989247": "Invia la tua prova di identità e di indirizzo", "-184453418": "Inserisci la password {{platform}}", - "-1769158315": "reale", - "-700260448": "demo", - "-1980366110": "Congratulazioni, hai creato il conto {{category}}{{platform}} <0>{{type}}.", + "-393388362": "We’re reviewing your documents. This should take about 1 to 3 days.", "-790488576": "Hai dimenticato la password?", "-926547017": "Inserisci la password {{platform}} per aggiungere un conto {{platform}}{{account}}{{jurisdiction_shortcode}}.", "-1190393389": "Inserisci la password {{platform}} per aggiungere un conto {{account}} {{platform}}.", "-2057918502": "Suggerimento: forse hai inserito la password di Deriv, che è diversa dalla password {{platform}}.", + "-1769158315": "reale", + "-700260448": "demo", + "-1936102840": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} account. ", + "-1570793523": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} account.", "-1928229820": "Reimposta password investitore Deriv X", "-1087845020": "principale", "-1950683866": "investitore", @@ -3013,24 +3030,14 @@ "-161656683": "Attuale password investitore", "-374736923": "Nuova password investitore", "-1793894323": "Crea o reimposta la password investitore", - "-1124208206": "Passa al tuo conto reale per creare un conto DMT5 {{account_title}} {{type_title}}.", - "-1576792859": "Sono richiesti documenti di verifica dell'identità e dell'indirizzo", - "-104382603": "Controlla il documento a verifica dell'indirizzo", - "-793684335": "Controlla il documento a verifica dell'identità", "-1271218821": "Conto aggiunto", - "-599621079": "Aggiungi il tuo conto Deriv MT5 {{account_type}} sotto Deriv (SVG) LLC (società n. 273 LLC 2020).", - "-1302969276": "Aggiungi il tuo conto Deriv MT5 {{account_type}} sotto Deriv (BVI) Ltd, regolamentato dalla British Virgin Islands Financial Services Commission (Licenza n. SIBA/{{line_break}}L/18/1114).", - "-1422519943": "Aggiungi il tuo conto DMT5 {{account_type}} sotto Deriv (V) Ltd, regolamentato dalla Vanuatu Financial Services Commission.", - "-1731304187": "Aggiungi il tuo conto Deriv MT5 per CFD sotto Deriv Investments (Europe) Limited regolamentato dalla Malta Financial Services Authority (MFSA) (licenza n. IS/70156).", - "-16048185": "Per creare questo conto, prima abbiamo bisogno della tua prova di identità e indirizzo.", - "-1627989291": "Per creare questo conto, abbiamo bisogno prima che tu invii nuovamente la tua prova di identità.", - "-1389025684": "Per creare questo conto, abbiamo bisogno prima che tu invii nuovamente la prova di identità e indirizzo.", - "-1615750576": "Potrai aprire questo conto una volta verificati i documenti inviati.", - "-724308541": "Giurisdizione per il tuo conto Deriv MT5 per CFD", - "-479119833": "Scegli una giurisdizione per il tuo conto Deriv MT5 {{account_type}}", + "-1576792859": "Sono richiesti documenti di verifica dell'identità e dell'indirizzo", "-1931257307": "Dovrai presentare un documento di verifica dell'identità", "-2026018074": "Aggiungi il tuo conto Deriv MT5 <0>{{account_type_name}} sotto Deriv (SVG) LLC (società n. 273 LLC 2020).", "-162320753": "Aggiungi il tuo conto Deriv MT5 <0>{{account_type_name}} sotto Deriv (BVI) Ltd, regolamentata dalla British Virgin Islands Financial Services Commission (Licenza n. SIBA/L/18/1114).", + "-1731304187": "Aggiungi il tuo conto Deriv MT5 per CFD sotto Deriv Investments (Europe) Limited regolamentato dalla Malta Financial Services Authority (MFSA) (licenza n. IS/70156).", + "-724308541": "Giurisdizione per il tuo conto Deriv MT5 per CFD", + "-479119833": "Scegli una giurisdizione per il tuo conto Deriv MT5 {{account_type}}", "-450424792": "Per creare un conto reale Deriv MT5, devi essere in possesso di un conto reale (in valuta fiat o criptovaluta) su Deriv.", "-1760596315": "Crea un conto Deriv", "-705682181": "Malta", diff --git a/packages/translations/src/translations/ko.json b/packages/translations/src/translations/ko.json index 6d270354bdde..af2685bf2b89 100644 --- a/packages/translations/src/translations/ko.json +++ b/packages/translations/src/translations/ko.json @@ -43,7 +43,7 @@ "65185694": "피아트 온램프", "65982042": "전체", "66519591": "투자자 비밀번호", - "66557535": "지정된 기간 내에 언제든지 귀하의 거래를 취소하세요.", + "66557535": "지정된 기간 내에 언제든지 귀하의 거래를 취소할 수 있습니다.", "68885999": "오류가 발생되었을 때 이전의 거래를 반복합니다.", "69005593": "아래의 예시는 1분 캔들이 시작된 이후 30초 이상 지난 경우 거래를 재시작 합니다.", "71016232": "OMG/USD", @@ -55,12 +55,12 @@ "73326375": "저점은 해당 계약 기간 동안에 시장에 의해 도달된 가장 낮은 포인트를 의미합니다.", "74963864": "언더", "76916358": "귀하의 인출 금액이 한도에 도달했습니다. <0/>인출을 진행하기 위해서는 귀하의 신분증과 주소증명을 업로드하여 한도를 해제 하시기 바랍니다.", - "80881349": "옵션 계좌 받기", + "80881349": "옵션 계정 받기", "81450871": "해당 페이지를 찾을 수 없었습니다", "82839270": "귀하의 사진이 포함되어 있는 여권 페이지를 업로드하세요.", "83202647": "블록 축소하기", "85343079": "재무 평가", - "85359122": "40가지 이상", + "85359122": "40회 이상", "85389154": "귀하의 휴대폰에서 인증을 계속하기 위해 요구되는 단계들", "89062902": "MT5에서 거래하세요", "90266322": "2. 새롭게 생성하신 텔레그램 봇을 통해 대화를 시작하시고 다음 단계로 넘어가기 이전에 봇에게 메시지를 몇 개 전송해 주세요. (예: 안녕하세요 봇!)", @@ -70,10 +70,8 @@ "98972777": "무작위 아이템", "100239694": "귀하의 컴퓨터에서 신분증의 앞면을 업로드해주세요", "102226908": "입력란은 비어 있을 수 없습니다", - "107206831": "저희는 귀하의 문서를 검토한 후 1에서 3일 이내로 문서의 상태를 알려드리겠습니다.", "108916570": "기간: {{duration}} 일", "109073671": "귀하께서 이전에 예금하시기 위해 이용하신 전자지갑을 이용해 주시기 바랍니다. 귀하의 전자지갑이 인출을 지원하도록 확인 해 주세요. 인출을 지원하는 전자지갑의 목록을 <0>여기에서 확인하세요.", - "110261653": "축하드립니다, 귀하께서는 귀하의 {{category}} {{platform}} <0>{{type}} {{jurisdiction_selected_shortcode}} 계좌를 성공적으로 만드셨습니다. 거래를 시작하시기 위해, 귀하의 Deriv 계좌에 있는 자금을 이 계좌로 이체하십시오.", "111215238": "직사광선으로부터 피해주세요", "111718006": "종료일", "111931529": "7일 동안의 최대 총 지분", @@ -86,7 +84,7 @@ "119446122": "계약의 유형이 선택되지 않았습니다", "120340777": "귀하의 개인 세부 정보를 완료하세요", "123454801": "{{withdraw_amount}} {{currency_symbol}}", - "124625402": "의", + "124625402": "번재 질문, 전체 질문 수:", "124723298": "귀하의 주소를 인증하기 위한 주소 증명을 업로드하세요", "125443840": "6. 오류 발생 시 직전의 거래 재시작", "127307725": "정치적 주요인물 (PEP) 은 공공적으로 저명한 위치에 있는 사람입니다. 정치적 주요인물의 가까운 동료들과 가족 구성원들 또한 정치적 주요인물로 고려됩니다.", @@ -182,6 +180,7 @@ "248909149": "귀하의 휴대폰으로 보안 링크 보내기", "249908265": "귀하께서는 {{- residence}} 의 시민이십니까?", "251134918": "계좌 정보", + "251322536": "Deriv EZ 계정", "251445658": "다크 테마", "251882697": "감사합니다! 귀하의 응답이 저희의 시스템에 기록되었습니다.<0/><0/>계속 하시려면 ‘확인’을 클릭하시기 바랍니다.", "254912581": "이 블록은 입력 목록과 주어진 기간에 근거하여 EMA 전체 라인이 귀하에게 제공된다는 점을 제외하고는 EMA와 유사합니다.", @@ -197,6 +196,7 @@ "265644304": "거래 유형", "267992618": "해당 플랫폼은 주요 특징 또는 기능이 부족합니다.", "268940240": "귀하의 잔액 ({{format_balance}} {{currency}}) 가 허용되는 현재의 최소 인출 금액 ({{format_min_withdraw_amount}} {{currency}}) 보다 적습니다. 인출을 계속하기 위해서 귀하의 계좌를 완전히 충전시켜 주시기 바랍니다.", + "269322978": "귀하의 국가에 있는 동료 트레이더들과 피어 투 피어 거래를 통해 귀하의 현지 통화로 입금하세요.", "269607721": "업로드", "270339490": "귀하께서 \"오버\"를 선택하시면, 마지막 틱의 마지막 자릿수가 귀하의 예측보다 더 높을 경우 지불금을 받게 됩니다.", "270610771": "이 예시에서, 캔들의 공개 가격은 변수 \"candle_open_price\"에 할당됩니다.", @@ -212,6 +212,7 @@ "278684544": "끝에서의 #로부터 하위 목록 받기", "282319001": "귀하의 이미지를 확인하세요", "282564053": "다음으로, 귀하의 주소 증명이 필요합니다.", + "283830551": "귀하의 주소가 프로필과 일치하지 않습니다", "283986166": "웹사이트에서의 자가 제한은 오직 귀하의 {{brand_website_name}} 계좌에만 적용되며 다른 회사 또는 웹사이트는 포함하지 않습니다.", "284527272": "반최빈값", "284772879": "계약", @@ -245,7 +246,6 @@ "327534692": "기간값은 허용되지 않습니다. 봇을 실행하기 위해서 {{min}} 을 입력해주시기 바랍니다.", "328539132": "내부 지침을 지정된 횟수만큼 반복합니다", "329404045": "<0>실제 계좌로 전환하여<1> {{platform}} {{account_title}} 계좌를 생성하세요.", - "332886946": "<1>Acuity 사용에 도움이 필요하세요?<0/>이 <2>사용 설명서를 확인해 보세요.", "333456603": "인출 한도", "334680754": "실제 계좌로 전환하여 Deriv MT5 계좌를 만드세요", "334942497": "매수 시간", @@ -368,7 +368,6 @@ "478280278": "이 블록은 입력값에 대하여 표시하기 위한 맞춤형 메시지를 사용하는 대화상자를 보여줍니다. 입력값은 문자열이거나 또는 숫자이며 변수에 할당될 수 있습니다. 대화상자가 표시되면, 귀하의 전략은 일시 중지되며 귀하께서 응답하시고 \"확인\"을 클릭하신 후에만 해당 전략이 재개됩니다.", "479420576": "제 3", "481276888": "외부로 벗어남", - "483246914": "라부안 금융 서비스 당국의 규제를 받는 Deriv (FX) Ltd를 통해 Deriv MT5 {{account_type}} STP 계좌를 추가하세요 (Licence no. MB/18/0024).", "483279638": "평가 완료<0/><0/>", "483591040": "모든 {{ delete_count }} 블록을 삭제 하시겠습니까?", "485379166": "거래 보기", @@ -382,26 +381,26 @@ "498562439": "또는", "499522484": "1. \"문자열\"의 예시: 1325.68 USD", "500855527": "최고 경영자, 고위 임원 및 입법자", - "500920471": "이 블록은 두 숫자 사이에 산술연산을 수행합니다.", - "501401157": "귀하께서는 오직 예금만 진행 하실 수 있습니다", - "501537611": "* 오픈 포지션 최대 수", - "502041595": "이 블록은 선택되어진 시간 간격내의 명시된 캔들을 귀하에게 제공합니다.", - "503137339": "지불 제한", + "500920471": "이 블록은 두 숫자간의 산술 연산을 수행합니다.", + "501401157": "귀하께서는 예금만 하실 수 있습니다", + "501537611": "*최대 오픈 포지션 수", + "502041595": "이 블록은 선택된 시간 간격 내의 특정 캔들을 제공합니다.", + "503137339": "지급 한도", "505793554": "마지막 문자", - "508390614": "데모 금융 STP", + "508390614": "데모 파이낸셜 (Financial) STP", "510815408": "문자, 숫자, 띄어쓰기, 하이픈만 허용됩니다", "514031715": "{{ input_list }} 목록이 비어있습니다", "514776243": "귀하의 {{account_type}} 비밀번호가 변경되었습니다.", "514948272": "링크 복사", - "518955798": "7. 시작시 한번 실행", - "520136698": "Boom 500 지수", - "521872670": "아이템", + "518955798": "7. 시작 시 한 번 실행", + "520136698": "붐 (Boom) 500 지수", + "521872670": "항목", "522283618": "디지털 옵션 거래 경험", - "522703281": "다음의 수로 나누기", - "523123321": "- 10에 주어진 숫자가 지수로 거듭제곱됩니다", - "527329988": "이것은 가장 흔한 비밀번호 100위에 들어가는 비밀번호입니다", + "522703281": "로 나눌 수 있습니다", + "523123321": "- 10에 주어진 숫자가 지수로 거듭제곱", + "527329988": "이 비밀번호는 상위 100위에 들어가는 흔한 비밀번호입니다", "529056539": "옵션", - "529597350": "만약 귀하에게 오픈 포지션이 있으셨다면, 저희는 그 포지션들을 닫았고 귀하에게 환불해 드렸습니다.", + "529597350": "오픈 포지션이 있으셨던 경우, 해당 포지션이 마감되었으며 환불해 드렸습니다.", "530953413": "인가된 앱", "531114081": "3. 계약 종류", "531675669": "유로", @@ -419,7 +418,6 @@ "551569133": "트레이딩 제한에 대해 더 알아보세요", "554410233": "이것은 가장 흔한 비밀번호 10위에 들어가는 비밀번호입니다", "555351771": "거래 파라미터와 옵션을 정의하신 후, 특정한 조건이 충족되었을 때에 계약을 구매할 수 있도록 귀하의 봇을 지시하실 수 있습니다. 이를 실행하기 위해서는 귀하께서는 귀하의 봇이 결정할 수 있도록 조건 블록과 지시블록을 활용하실 수 있습니다.", - "556095366": "우리는 귀하의 세부사항을 몇분 내로 처리할 것이며 이메일을 통해 공지해 드릴 것입니다.", "556264438": "시간 구간", "559224320": "트레이딩 봇들을 생성하기 위한 저희의 전형적인 “드래그 앤 드롭” 툴입니다, 이는 경험많은 이용자들을 위한 팝업 트레이딩 차트의 기능이 있습니다.", "561982839": "귀하의 통화를 변경하세요", @@ -477,7 +475,7 @@ "626809456": "다시 제출", "627292452": "<0>귀하의 신분증명 또는 주소증명이 우리의 요구사항을 충족하지 못했습니다. 추가적인 지침을 위해 귀하의 이메일을 확인해주시기 바랍니다.", "627814558": "이 블록은 조건이 참일 경우 값을 불러옵니다. 상기 기능블록들 내에서 이 블록을 사용하세요.", - "628193133": "계좌 ID", + "628193133": "계정 아이디 (ID)", "629145209": "만약 \"AND\" 연산이 선택된 경우, 주어진 값들이 \"참\"일 경우에만 \"참\"을 불러옵니다", "632398049": "이 블록은 한개의 아이템 또는 내역서에 널값을 할당합니다.", "634219491": "귀하께서는 귀하의 세금 식별번호를 제공하지 않으셨습니다. 세금 식별번호는 법적 및 규정적인 요구사항에 따라 필요한 정보입니다. 귀하의 계좌설정의 <0>개인 세부정보로 가셔서 귀하의 가장 최근 세금 식별 번호를 입력해 주시기 바랍니다.", @@ -566,7 +564,7 @@ "724203548": "귀하께서는 귀하의 불만을 <0>유럽 위원회의 온라인 분쟁해결 (ODR) 플랫폼으로 보내실 수 있습니다. 이는 영국 고객분들께는 적용되지 않습니다.", "728042840": "우리를 통해 거래를 계속하기 위해서는, 귀하께서 어디에 거주하시는지를 확인해주세요.", "728824018": "Spanish 지수", - "729651741": "사진 선택하기", + "729651741": "사진을 선택하세요", "730473724": "이 블록은 주어진 값들로 \"AND\" 또는 \"OR\" 논리 연산을 수행합니다.", "731382582": "BNB/USD", "734390964": "부족한 잔액", @@ -576,6 +574,7 @@ "745656178": "이 블록을 사용하셔서 귀하의 계약을 시장가격으로 판매하세요.", "745674059": "선택되어진 옵션에 따라 주어진 무자열에서 특정 문자를 불러옵니다. ", "746112978": "업데이트를 하기 위해 귀하의 컴퓨터에서 몇 초가 걸릴 수 있습니다", + "750886728": "Switch to your real account to submit your documents", "751692023": "귀하께서 잘못 송금하신 것에 대해서 저희는 환불을 <0>보장할 수 없습니다.", "752024971": "숫자의 최대 수에 도달하였습니다", "752633544": "귀하께서는 특정 기준에 도달하게 되면 신분 및 주소 증명을 제출하셔야 합니다", @@ -709,8 +708,8 @@ "915735109": "{{platform_name}}으로 되돌아가기", "918447723": "실제", "920125517": "데모 계좌 추가하기", - "921901739": "- 계정에 연결된 은행의 계좌 세부 정보", - "924046954": "이름과 은행 계좌 번호 또는 계좌 세부 정보가 표시된 문서를 업로드하십시오.", + "921901739": "- 귀하의 계정에 연결된 은행의 계좌 세부 정보", + "924046954": "귀하의 성명과 은행 계좌번호 또는 계좌 세부 정보가 표시된 문서를 업로드하세요.", "926813068": "고정/변동", "929608744": "귀하께서는 인출을 진행하실 수 없습니다", "930346117": "대문자로 하는 것은 딱히 도움이 되지 않습니다", @@ -778,7 +777,7 @@ "1006664890": "무음", "1009032439": "모든 기간", "1010198306": "이 블록은 문자열들과 숫자들을 생성합니다.", - "1010337648": "소유권 증명을 확인할 수 없습니다.", + "1010337648": "소유권 증명을 확인할 수 없었습니다.", "1012102263": "귀하께서는 이 날짜까지 귀하의 계좌에 로그인하실 수 없을 것입니다 (오늘부터 최대 6주까지).", "1015201500": "기간과 지분같은 귀하의 거래 옵션을 정의하세요.", "1016220824": "이 기능을 활용하기 위해서 귀하께서는 실제 자금 계좌로 전환하셔야 합니다.<0/>귀하께서는 <1>계좌 전환기에서 실제 계좌를 선택함으로써 이를 전환하실 수 있습니다.", @@ -790,7 +789,6 @@ "1023643811": "이 블록은 특정한 종류의 계약을 구매합니다.", "1023795011": "짝/홀", "1024205076": "논리 연산", - "1024760087": "귀하께서는 이 계정의 추가할 수 있도록 확인되었습니다", "1025887996": "마이너스 잔액 보호", "1026046972": "{{max_payout}} 보다 더 적은 지불금 금액을 입력해 주시기 바랍니다.", "1027098103": "레버리지는 귀하께서 보유하고 계시는 자금을 이용하여 더 큰 규모의 포지션을 거래하실 수 있는 능력을 제공합니다. 레버리지는 다른 기호들에 걸쳐서 다양합니다.", @@ -834,7 +832,7 @@ "1057749183": "2단계 보안인증 (2FA)", "1057765448": "스탑아웃 레벨", "1057904606": "달랑베르 전략의 개념은 손실 이후에 귀하의 계약 규모를 증가시킬 것이라는 마팅게일 전략과 유사하다고 말해집니다. 달랑베르 번략과 함께, 또한 귀하께서는 성공적인 거래 이후 계약 규모를 줄일 것입니다.", - "1060231263": "개시 마진을 언제 지불해야 하나요?", + "1060231263": "개시 증거금 (마진)을 언제 지불해야 하나요?", "1061308507": "구매 {{ contract_type }}", "1061561084": "Deriv MT5 {{account_title}} {{type_title}} 계정을 생성하기 위해 귀하의 실제 계정으로 전환하세요.", "1062536855": "일치", @@ -855,7 +853,7 @@ "1086118495": "트레이더 허브", "1088138125": "틱 {{current_tick}} - ", "1089085289": "휴대폰 번호", - "1096078516": "저희는 귀하의 문서를 검토한 후 3에서 일 이내로 문서의 상태를 알려드리겠습니다.", + "1096078516": "문서를 검토하고 3일 이내에 상태를 알려 드리겠습니다.", "1096175323": "귀하께서는 Deriv 계좌가 필요합니다", "1098147569": "회사의 주식 또는 원자재를 구매하세요.", "1098622295": "\"i\"는 1의 값으로 시작하며 이는 매 반복마다 2씩 증가할 것입니다. 해당 반복은 \"i\"가 12의 값에 도달할 때까지 반복할 것이며 그 후 해당 반복은 종료될 것입니다.", @@ -874,6 +872,7 @@ "1112582372": "간격 기간", "1113119682": "이 블록은 캔들의 목록으로부터 선택되어진 캔들 값을 귀하에게 제공합니다.", "1113292761": "8MB 이하", + "1113433728": "Resubmit your proof of identity and address", "1117863275": "보안 및 안전", "1118294625": "귀하께서는 {{exclusion_end}} 까지 우리의 웹사이트에서 트레이딩 하는 것으로부터 자가제한을 하시기로 선택하셨습니다. 만약 자가 제한 기간이 지난 이후에도 거래를 주문하거나 또는 예금을 하실 수 없다면 라이브 챗을 통해 우리에게 연락해주시기 바랍니다.", "1119887091": "검증", @@ -935,7 +934,6 @@ "1189886490": "다른 Deriv, {{platform_name_mt5}} 또는 {{platform_name_dxtrade}} 계좌를 생성해 주시기 바랍니다.", "1191429031": "귀하의 <0>{{platform_name_dxtrade}}비밀번호를 변경하시기 위해 해당 이메일의 링크를 클릭하시기 바랍니다.", "1191644656": "포지션을 개설하기 위해 시장의 방향을 예측하시고 “업” 또는 “다운”중에서 선택하세요. 저희는 귀하께서 포지션을 개설하실 때에 해당되는 수수료를 청구하겠습니다.", - "1191778951": "귀하의 신원 및 주소 증명을 확인하세요", "1192708099": "기간 단위", "1195393249": "{{ notification_type }} 를 소리와 함께 알리기: {{ notification_sound }} {{ input_message }}", "1196006480": "이윤 특정수준", @@ -946,14 +944,14 @@ "1201773643": "숫자의", "1203297580": "이 블록은 텔레그램 채널에 메시지를 전송합니다.", "1204223111": "이 예시에서, 캔들 목록에서의 개장가격은 \"candle_list\"로 불리는 변수에 할당되어집니다.", - "1206227936": "카드를 마스킹하는 방법?", + "1206227936": "카드를 가리는 방법", "1206821331": "군", "1208729868": "틱", "1208903663": "유효하지 않은 토큰", "1211912982": "봇이 시작되고 있습니다", "1214893428": "휴대폰에서는 현재 계좌를 생성 하실 수 없습니다. 새 계좌를 생성하시기 위해 귀하의 컴퓨터로 로그인해주시기 바랍니다.", "1216408337": "자영업", - "1217159705": "은행 계좌 번호", + "1217159705": "은행 계좌번호", "1217481729": "ERC20 토큰으로써의 테더 (eUSDT) 는 이더리움에서 호스팅되는 테더의 버전입니다.", "1218546232": "피아트 온 램프는 무엇인가요?", "1219844088": "%1 진행", @@ -972,7 +970,7 @@ "1232353969": "지난 12개월에 걸쳐 0에서 5건의 거래 수", "1233300532": "지불금", "1234292259": "부의 원천", - "1234764730": "개인 정보 섹션에서 이름과 이메일 주소의 스크린샷을 업로드하세요.", + "1234764730": "개인 정보 항목에서 귀하의 성명과 이메일 주소의 스크린샷을 업로드하세요.", "1235426525": "50%", "1237330017": "연금 수령자", "1238311538": "관리", @@ -1009,7 +1007,6 @@ "1281290230": "선택하기", "1282951921": "온리 다운", "1284522768": "만약 \"손실\"이 선택되면, 귀하의 바로 이전의 거래가 성공적이지 않았을 경우에 \"참\"값이 나옵니다. 그렇지 않다면, 빈 줄이 나옵니다.", - "1285686014": "신원 증명 검토가 보류중에 있습니다", "1286094280": "인출", "1286507651": "신분검증 스크린 닫기", "1288965214": "여권", @@ -1105,7 +1102,6 @@ "1384222389": "캐셔를 활성화하기 위해 유효한 신분증을 제출해 주시기 바랍니다.", "1385418910": "다른 계좌를 생성하기 이전에 귀하께서 현재 가지고 계시는 실제 계좌에 대해 통화를 설정해주시기 바랍니다.", "1387503299": "로그인", - "1388770399": "신원 증명이 필요합니다", "1389197139": "불러오기 오류", "1390792283": "거래 파라미터", "1391174838": "잠재적인 지불금:", @@ -1118,6 +1114,7 @@ "1396417530": "약세장 지수", "1397628594": "부족한 잔액", "1399620764": "우리는 귀하의 금융 정보를 요청해야할 법적 의무가 있습니다.", + "1400341216": "We’ll review your documents and notify you of its status within 1 to 3 days.", "1400637999": "(모든 항목들이 필수 입력사항입니다)", "1400732866": "카메라에서 보기", "1400962248": "고가-종가", @@ -1192,7 +1189,7 @@ "1481977420": "우리가 귀하의 인출 요청을 확인할 수 있도록 도와주세요.", "1484336612": "이 블록은 반복을 종료하거나 또는 지속하는 데에 사용되며 루프 블록 내에서 그 어디에서든지 놓여질 수 있습니다.", "1487086154": "귀하의 문서들이 성공적으로 제출되었습니다", - "1488548367": "다시 업로드", + "1488548367": "다시 업로드 해주세요", "1490583127": "실제 계좌를 위해서 DBot은 아직 완전한 준비가 되어 있지 않습니다", "1491392301": "<0>판매 금액: {{sold_for}}", "1492686447": "귀하의 MT5 금융 STP 계좌는 Deriv (FX) Ltd를 통해 개설될 것입니다. 이 계좌의 모든 거래는 라부안 금융감독청 (LFSA) 의 가이드라인 및 규제에 따릅니다. 귀하의 Deriv 계좌를 포함하여 귀하의 다른 계좌들은 라부안 금융감독청 (LFSA) 의 가이드라인과 규제에 적용되지 않습니다.", @@ -1234,7 +1231,7 @@ "1540585098": "거절하기", "1541969455": "두가지 모두", "1544642951": "만약 귀하께서 \"Only Ups\"를 선택하시면, 연속적인 틱들이 엔트리 스팟 이후 성공적으로 오를 경우 귀하께서 지불금을 받습니다. 만약 그 어떠한 틱이라도 떨어지거나 또는 이전의 틱과 동일하다면 지불금은 없습니다.", - "1547148381": "파일이 너무 큽니다 (최대 8MB까지만 허용).다른 파일을 업로드하세요.", + "1547148381": "파일이 너무 큽니다 (최대 8MB까지만 허용됩니다). 다른 파일을 업로드하세요.", "1548765374": "문서 번호의 인증이 실패되었습니다", "1549098835": "인출된 총 금액", "1551172020": "AUD 바스켓", @@ -1251,7 +1248,7 @@ "1567586204": "자가 제한", "1569624004": "경고 해제", "1570484627": "틱 목록", - "1571575776": "허용되는 형식: pdf, jpeg, jpg 및 png.최대 파일 크기: 8MB", + "1571575776": "허용되는 파일 형식: pdf, jpeg, jpg 및 png. 최대 파일 크기: 8MB", "1572504270": "반올림 연산", "1572982976": "서버", "1575556189": "ERC20 토큰으로써, 이더리움 블록체인의 테더는 테더를 이더리움 스마트 컨트렉트로 가능하게 하는 더 새로운 전송계층입니다. 표준 ERC20으로써, 이는 또한 그 어떠한 이더리움 주소로도 전송될 수 있습니다.", @@ -1263,9 +1260,11 @@ "1584109614": "틱 문자열 목록", "1584578483": "50개 이상의 자산: 외환, 주식, 주식 지수, 합성 지수, 및 암호화폐.", "1584936297": "XML 파일이 지원되지 않는 요소를 포함하고 있습니다. 다시 확인 또는 파일을 변경해 주시기 바랍니다.", + "1585859194": "Deriv 피아트와 {{platform_name_mt5}} 계정, Deriv 피아트와 {{platform_name_derivez}} 계정, 그리고 Deriv 피아트와 {{platform_name_dxtrade}} 계정 간에 서로 다른 통화로 이체하는 경우 1%의 이체 수수료가 부과됩니다.", "1587046102": "해당 국가에서 나온 문서들은 현재 지원되지 않습니다 — 다른 문서 종류로 시도해보세요", "1589640950": "이 계약의 재판매는 제공되지 않습니다.", "1589702653": "주소증명", + "1591933071": "Resubmit document", "1593010588": "지금 로그인하세요", "1594147169": "다시 돌아와 주세요", "1594322503": "판매가 가능합니다", @@ -1280,7 +1279,6 @@ "1605222432": "저는 거래에 대한 지식과 경험이 전혀 없습니다.", "1605292429": "최대 총 손실", "1612105450": "부분열 받기", - "1613273139": "귀하의 신원 및 주소를 다시 제출하세요", "1613633732": "간격은 10분에서 60분 사이여야 합니다", "1615897837": "시그널 지수이동평균 기간 {{ input_number }}", "1618809782": "최대 인출", @@ -1324,7 +1322,6 @@ "1665272539": "기억하세요: 귀하께서는 선택된 날짜까지 귀하의 계좌로 로그인 하실 수 없습니다.", "1665738338": "잔액", "1665756261": "라이브챗으로 가기", - "1667395210": "귀하의 신분 증명이 성공적으로 제출되었습니다", "1668138872": "계좌 설정 수정", "1670016002": "승수: {{ multiplier }}", "1670426231": "종료 시간", @@ -1332,7 +1329,7 @@ "1675030608": "이 계정을 생성하기 위해 먼저 귀하께서 귀하의 주소 증명을 다시 제출하셔야 합니다.", "1677027187": "외환", "1677990284": "나의 앱들", - "1680666439": "이름, 계좌 번호, 거래 내역이 표시된 은행 명세서를 업로드하세요.", + "1680666439": "귀하의 성명, 계좌 번호, 거래 내역이 표시된 은행 명세서를 업로드하세요.", "1682409128": "이름없는 전략", "1682636566": "해당 시간 이후에 이메일 재전송", "1683963454": "{{timestamp}} 의 {{date}} 에서 다음의 가능한 자산 가격으로 귀하의 계약이 자동적으로 종료될 것입니다.", @@ -1349,6 +1346,7 @@ "1694517345": "새로운 이메일 주소를 입력하세요", "1695807119": "구글 드라이브 블록을 로드하지 못했습니다", "1700233813": "{{selected_value}} 에서의 송금이 허용되지 않습니다, 드롭다운에서 다른 계좌를 선택해주시기 바랍니다", + "1701447705": "귀하의 주소를 업데이트 하시기 바랍니다", "1704656659": "CFD 거래 경험이 얼마나 있습니까?", "1708413635": "귀하의 {{currency_name}} ({{currency}}) 계좌", "1709859601": "출구부 시간", @@ -1419,6 +1417,7 @@ "1778893716": "여기를 클릭하세요", "1779519903": "유효한 숫자여야 합니다.", "1780770384": "이 블록은 귀하에게 0.0과 1.0 사이에 있는 한 무작위 분수를 제공합니다.", + "1781393492": "Deriv 피아트와 {{platform_name_mt5}} 계정, Deriv 피아트와 {{platform_name_derivez}} 계정, 그리고 Deriv 피아트와 {{platform_name_dxtrade}} 계정 간에 동일한 통화로 이체하는 경우에는 이체 수수료가 부과되지 않습니다.", "1782308283": "빠른 전략", "1782395995": "마지막 숫자 예측", "1782690282": "블록 메뉴", @@ -1429,11 +1428,12 @@ "1788966083": "01-07-1999", "1789497185": "귀하의 여권 상세정보가 흐릿하거나 반사되는 부분 없이 명확하게 읽힐 수 있도록 해주세요", "1790770969": "FX-메이저 (스탠다드/마이크로 랏), FX-마이너, 원자재, 암호화폐", + "1791017883": "<0>사용 설명서를 확인하세요.", "1791432284": "국가 검색", "1791971912": "최근", "1793913365": "자금을 예금하기 위해서는, 귀하의 {{currency_symbol}} 계좌로 변경해주시기 바랍니다.", "1794815502": "귀하의 거래 내역을 다운로드하세요.", - "1796787905": "다음 문서를 업로드하십시오.", + "1796787905": "다음의 문서(들) 을 업로드하시기 바랍니다.", "1798943788": "입금만 가능합니다.", "1801093206": "캔들 목록 받기", "1801927731": "{{platform_name_dxtrade}} 계좌들", @@ -1549,6 +1549,7 @@ "1918832194": "경험 없음", "1919030163": "좋은 자가촬영사진을 찍기 위한 팁", "1919594496": "{{website_name}} 는 그 어떠한 결제 에이전트와도 제휴되어있지 않습니다. 고객분들은 위험을 단독적으로 감수하고 결제 에이전트와 거래합니다. 고객분들께서는 결제 에이전트의 서비스를 이용하기 이전에 결제 에이전트에 대한 모든 정보의 정확도 및 신용을 확인 ({{website_name}} 또는 다른 곳) 하실 것을 조언받습니다.", + "1919694313": "To start trading, transfer funds from your Deriv account into this account.", "1920217537": "비교", "1920468180": "SMA 블록 활용 방법", "1921634159": "몇몇 인적 세부사항", @@ -1655,8 +1656,9 @@ "2037481040": "귀하의 계좌에 자금을 충전하기 위해 하나의 방식을 선택하세요", "2037665157": "모든 블록들을 확장하기", "2037906477": "#로부터 하부 목록 받기", + "2042023623": "We’re reviewing your documents. This should take about 5 minutes.", "2042050260": "- 매입 가격: 해당 계약의 매입 가격 (지분)", - "2042115724": "이름, 계좌 번호, 전화번호, 이메일 주소가 포함된 계정 및 개인 정보 페이지의 스크린샷을 업로드하세요.", + "2042115724": "귀하의 성명, 계좌 번호, 전화 번호, 이메일 주소가 포함되어 있는 개인 정보 페이지와 계좌의 스크린샷을 업로드하세요.", "2042778835": "때때로 변경될 수 있는 이 불만사항 정책은 {{legal_entity_name}} 을 통해 등록되어 있는 귀하의 계좌에 적용됩니다.", "2044086432": "종료시점은 종료시간에서의 또는 그 이전의 가장 마지막 틱입니다. 만약 귀하께서 특정 종료시간을 선택하셨다면, 종료시간은 선택되어진 시간입니다.", "2046273837": "바로 직전의 틱", @@ -1702,7 +1704,7 @@ "2096456845": "출생일*", "2097170986": "테더 소개 (옴니)", "2097381850": "한 기간과 함께 하나의 목록으로부터 단순이동평균선을 계산합니다", - "2097932389": "<0>https://app.astropay.com/profile 을 통해 개인 정보 페이지와 계정 페이지에서 별도의 스크린샷 2장을 업로드하세요.", + "2097932389": "<0>https://app.astropay.com/profile을 통해 개인 정보 페이지와 계정 페이지에서 별도의 스크린샷 2장을 업로드하세요", "2100713124": "계좌", "2101972779": "이는 틱 리스트를 활용하며 상위 예시와 같습니다.", "2102572780": "숫자 코드의 길이는 반드시 6 문자여야 합니다.", @@ -1802,7 +1804,7 @@ "-1237843731": "투자 수입", "-777506574": "자산의 판매", "-1161338910": "이름은 필수 입력사항입니다", - "-1161818065": "성은 글자 수가 2개와 50개 사이여야 합니다.", + "-1161818065": "성은 2~50자 사이여야 합니다.", "-1281693513": "생일은 필수 입력사항입니다.", "-26599672": "시민권은 필수입력 사항입니다", "-912174487": "전화번호는 필수 입력사항입니다.", @@ -1821,7 +1823,7 @@ "-922751756": "1년 미만", "-542986255": "없음", "-1337206552": "이해하시겠지만, CFD 거래를 통해 다음을 수행하실 수 있습니다", - "-456863190": "결과가 고정수익이거나 아예 없는 자산의 가격 변동에 포지션을 설정하세요.", + "-456863190": "결과가 고정수익이거나 또는 수익이 전혀 없는 자산 가격 변동에 포지션을 설정하세요.", "-1314683258": "수익 보장을 위해 장기 투자를 하세요.", "-1546090184": "레버리지는 CFD 거래에 어떤 영향이 있나요?", "-1636427115": "레버리지는 위험을 완화하는 데 도움이 됩니다.", @@ -1937,18 +1939,18 @@ "-1214803297": "대시보드 전용 패스", "-526636259": "404 에러", "-1030759620": "공무원", - "-1196936955": "개인 정보 섹션에서 이름과 이메일 주소의 스크린샷을 업로드하세요.", - "-1286823855": "이름과 전화번호가 표시된 모바일 청구서 명세서를 업로드하세요.", - "-1309548471": "이름과 계좌 세부 정보가 표시된 은행 거래 내역서를 업로드하세요.", - "-1410396115": "이름과 카드 번호의 처음 6자리 및 마지막 4자리가 표시된 사진을 업로드하세요.카드에 이름이 표시되지 않는 경우 거래 내역에 이름과 카드 번호가 표시된 은행 명세서를 업로드하십시오.", - "-3805155": "다음 중 하나의 스크린샷을 업로드하여 거래를 처리하십시오.", - "-1523487566": "- 웹사이트의 계정 프로필 섹션", + "-1196936955": "개인 정보 항목에서 귀하의 성명과 이메일 주소의 스크린샷을 업로드하세요.", + "-1286823855": "귀하의 성명과 전화번호가 표시되어 있는 휴대전화 청구 명세서를 업로드하세요.", + "-1309548471": "귀하의 성명과 계좌 세부 정보가 표시되어 있는 은행 거래 내역서를 업로드하세요.", + "-1410396115": "귀하의 성명과 카드 번호의 처음 6자리 및 마지막 4자리가 나와있는 사진을 업로드하세요. 카드에귀하의 성명이 표시되어 있지 않는 경우에는, 거래 내역에 성명과 카드 번호가 표시되어 있는 은행 명세서를 업로드하세요.", + "-3805155": "다음 중 하나의 스크린샷을 업로드하여 거래를 처리하세요:", + "-1523487566": "- 웹사이트에서 귀하의 계정 프로필 항목", "-613062596": "- 앱의 계정 정보 페이지", - "-1718304498": "유저 ID", - "-609424336": "웹사이트의 앱 또는 계정 프로필 섹션에 있는 개인 정보 섹션에서 이름, 계좌 번호, 이메일 주소의 스크린샷을 업로드하세요.", - "-1954436643": "<0>https://onlinenaira.com/members/index.htm 일반 정보 페이지에 사용자 이름의 스크린샷을 업로드하세요.", - "-79853954": "은행 계좌/모바일 지갑 페이지 <0>https://onlinenaira.com/members/bank.htm 에 계좌 번호와 전화번호의 스크린샷을 업로드하세요.", - "-1192882870": "개인 정보 섹션에서 이름과 계좌 번호의 스크린샷을 업로드하세요.", + "-1718304498": "사용자 ID", + "-609424336": "앱의 개인 정보 항목 또는 웹사이트의 계정 프로필 항목에서 귀하의 성명, 계좌 번호, 이메일 주소의 스크린샷을 업로드하세요.", + "-1954436643": "<0>https://onlinenaira.com/members/index.htm의 일반 정보 페이지에 나와 있는 귀하의 사용자명의 스크린샷을 업로드하세요", + "-79853954": "<0>https://onlinenaira.com/members/bank.htm의 은행 계좌/모바일 지갑 페이지에서 귀하의 계좌번호와 전화번호의 스크린샷을 업로드하세요", + "-1192882870": "개인 정보 항목에서 귀하의 성명과 계좌 번호의 스크린샷을 업로드하세요.", "-612752984": "우리가 귀하의 계좌에 적용하는기본적인 제한이 있습니다.", "-1598263601": "거래 제한과 거래 제한이 어떻게 적용되는지 더 알고싶으시면, <0>헬프센터로 가시기 바랍니다.", "-1340125291": "완료", @@ -2002,7 +2004,7 @@ "-1543016582": "이로써 저는 제가 제공해드린 세금 정보가 진실이고 완전하다는 것을 확신합니다. 저는 또한 이 정보에 대한 그 어떠한 변경이라도 {{legal_entity_name}} 에 알릴 것입니다.", "-1387062433": "계좌 개설 이유", "-1088324715": "저희는 귀하의 문서를 검토한 후 해당 상태를 영업일 기준으로 1~3일 이내로 공지해 드리겠습니다.", - "-684271315": "확인", + "-329713179": "예", "-1176889260": "문서의 종류를 선택해 주시기 바랍니다.", "-1515286538": "귀하의 문서 번호를 입력해 주시기 바랍니다. ", "-1785463422": "귀하의 신분을 인증받으세요", @@ -2016,7 +2018,6 @@ "-841187054": "재시도하기", "-2097808873": "우리는 귀하께서 제공하신 세부정보로 귀하의 ID를 검증할 수 없었습니다. ", "-228284848": "우리는 귀하께서 제공하신 세부정보와 함께 귀하의 ID를 검증할 수 없었습니다.", - "-1443800801": "귀하의 ID 번호는 성공적으로 제출되었습니다", "-1391934478": "귀하의 ID는 검증되었습니다. 귀하께서는 귀하의 주소증명 또한 제출하셔야 합니다.", "-118547687": "ID가 검증되었습니다", "-200989771": "세부 인적사항으로 가기", @@ -2039,20 +2040,19 @@ "-1725454783": "실패되었습니다", "-839094775": "이전", "-856213726": "귀하께서는 반드시 주소증명 또한 제출하셔야 합니다.", - "-987011273": "소유권 증명은 필요하지 않습니다.", - "-808299796": "지금은 소유권 증명을 제출할 필요가 없습니다.향후 소유권 증명이 필요한 경우 알려 드리겠습니다.", - "-179726573": "소유권 증명을 받았습니다.", - "-813779897": "소유권 증명 확인이 통과되었습니다.", + "-987011273": "귀하의 소유권 증명은 필요하지 않습니다.", + "-808299796": "지금은 소유권 증명을 제출하실 필요가 없습니다. 향후 소유권 증명이 필요한 경우에 알려드리겠습니다.", + "-179726573": "저희는 귀하의 소유권 증명을 받았습니다.", + "-813779897": "소유권 증명 검증이 통과되었습니다.", "-1389323399": "귀하꼐서는 문자수 {{min_number}}-{{max_number}} 사이로 입력하셔야 합니다.", "-1313806160": "새로운 비밀번호를 요청해주시고 새로운 토큰을 위해 귀하의 이메일을 확인해주시기 바랍니다.", - "-329713179": "예", "-1598167506": "성공", "-1077809489": "귀하께서는 웹과 모바일 앱에서 귀하의 {{platform}} 계좌로 로그인 하시기 위한 새로운 {{platform}} 비밀번호가 있습니다.", "-2068479232": "{{platform}} 비밀번호", "-1332137219": "강력한 비밀번호는 대문자 및 소문자와 숫자 및 기호들을 포함한 적어도 8개의 문자를 포함합니다.", "-2005211699": "생성하기", "-1597186502": "{{platform}} 비밀번호 재설정", - "-638756912": "직불/신용 카드 앞면에 표시된 카드 번호의 7~12자리 숫자를 검게 표시합니다.", + "-638756912": "귀하의 직불/신용 카드 앞면에 표시되어 있는 카드 번호의 7 ~ 12자리 숫자를 검게 가리세요.", "-848721396": "이 트레이딩 제한은 선택사항이며 귀하께서는 트레이딩 제한을 그 언제든지 강화시킬 수 있습니다. 만약 귀하께서 특정한 제한을 설정하는 것을 원하시지 않으시면, 해당 항목을 빈칸으로 놔두어주시기 바랍니다. 만약 귀하께서 영국에 거주하신다면, 고객지원은 오직 해당 요청이 받아진 이후 24시간이 지나고 나서 귀하의 거래 제한을 제거하거나 약화시킬 수 있습니다. 만약 귀하께서 맨섬에서 거주하신다면, 고객지원은 귀하의 거래제한 기간이 만료된 이후에만 귀하의 거래 제한을 오직 제거 또는 완화시킬 수 있습니다.", "-469096390": "이 거래 제한들은 선택사항이며, 귀하께서는 그 언제든지 제한을 강화시킬 수 있습니다. 만약 귀하께서 특정한 제한을 설정하고 싶지 않으시다면, 해당 항목을 빈칸으로 놔두어 주시기 바랍니다. 고객 지원은 해당 신청이 받아들여진 이후 24시간이 지난 후 귀하의 거래 제한을 오직 제거 또는 완화시킬 수 있습니다.", "-42808954": "귀하께서는 명시된 기간동안 완전한 자가제한을 하실 수 있습니다. 이는 단지 귀하의 자가제한이 만료되는 경우에만 자가제한을 해제하실 수 있습니다. 귀하의 자가제한 기간이 만료된 이후 거래를 진행하시고 싶으시면, 귀하께서는 해당 자가제한을 제거하기 위해 <0>+447723580049로 연락하셔서 고객 지원으로 반드시 연락하셔야 합니다. 챗 또는 이메일을 통한 연락은 하실 수 없습니다. 귀하께서 거래를 다시 시작하시기 이전에 24시간의 냉각기간이 있을 것입니다.", @@ -2093,6 +2093,7 @@ "-680528873": "귀하의 계좌는 {{legal_entity_name}} 을 통해 개설될 것이며 사모아의 법률에 따를 것입니다.", "-1125193491": "계좌 추가", "-2068229627": "저는 PEP가 아니며 지난 12개월간 PEP가 된 적이 없습니다.", + "-684271315": "확인", "-1720468017": "당사는 귀하에게 서비스를 제공할 때, 해당 상품 또는 서비스가 귀하에게 적합한지 여부를 평가하기 위해 귀하로부터 정보를 수집해야 합니다.", "-186841084": "귀하의 로그인 이메일을 변경하세요", "-907403572": "귀하의 이메일 주소를 변경하기 위해서는, 먼저 귀하의 {{identifier_title}} 계정과 이메일 주소의 연결을 해제해야 합니다.", @@ -2185,10 +2186,10 @@ "-716361389": "정확하고 완전한 주소는 귀하의 인증 절차를 더 빠르게 할 수 있도록 도와줍니다.", "-890084320": "저장 및 제출", "-902076926": "귀하의 서류를 업로드하시기 이전에, 귀하의 인적세부정보가 귀하의 신분증과 일치하도록 업데이트된 것임을 확인해 주시기 바랍니다. 이는 검증 절차에서 처리가 늦어지는 점을 피할 수 있도록 도움이 됩니다.", - "-1592318047": "예제 보기", - "-1376950117": "해당 파일 형식은 지원되지 않습니다..pdf, .png, .jpg 또는.jpeg 파일만 업로드하십시오.", - "-1272489896": "이 필드를 작성해 주세요.", - "-397487797": "전체 카드 번호를 입력하세요", + "-1592318047": "예시 보기", + "-1376950117": "해당 파일 형식은 지원되지 않습니다. .pdf, .png, .jpg, 또는 .jpeg 형식의 파일만 업로드하시기 바랍니다.", + "-1272489896": "이 항목을 완료해 주시기 바랍니다.", + "-397487797": "카드 번호 전체를 입력하세요", "-1411635770": "계좌 한도에 대해 더 배워보세요", "-516397235": "이 토큰을 누구와 공유하는지에 대해 주의하시기 바랍니다. 이 토큰을 가진 사람들은 귀하의 계좌를 대신하여 누구나 다음의 작업을 수행할 수 있습니다.", "-989216986": "계좌 추가", @@ -2225,6 +2226,7 @@ "-38915613": "저장되지 않은 변경사항", "-2137450250": "귀하께서는 변경사항을 저장하지 않으셨습니다. 변경사항을 취소하시고 이 창에서 나가고 싶으신가요?", "-1067082004": "설정에서 나가기", + "-1982432743": "귀하의 문서에 있는 주소가 귀하의 Deriv 프로필에 있는 주소와 일치하지 않는 것으로 보입니다. 올바른 주소로 귀하의 개인 세부 정보를 업데이트 하시기 바랍니다.", "-1451334536": "계속 거래하기", "-1525879032": "귀하의 주소증명을 위한 서류가 만기되었습니다. 다시 제출해주시기 바랍니다.", "-1425489838": "주소증명의 인증이 필요하지 않습니다", @@ -2243,7 +2245,6 @@ "-639677539": "암호화폐를 구매하세요", "-1560098002": "피아트 온램프를 통해 암호화폐를 구입하세요", "-541870313": "결제 에이전트를 통한 예금", - "-72314872": "귀하의 국가에서 다른 동료 트레이더들과 함께 피어 투 피어 거래를 통하여 귀하의 지역 통화로 예금하세요.", "-58126117": "암호화폐로 쉽게 접근하실 수 있습니다. 암호화폐를 거래 및 구매하실 수 있는 빠르고 안전한 방법입니다. 24시간 7일 내내 라이브 챗이 지원됩니다.", "-1705887186": "귀하의 예금이 성공적입니다.", "-142361708": "처리중입니다", @@ -2334,7 +2335,7 @@ "-1059419768": "공지", "-316545835": "귀하께서 송금하시기 이전에 <0>모든 세부정보가 <0>정확한지를 확인해주세요.", "-949073402": "저는 고객의 송금정보를 확인했고 검증했다는 사실을 확인합니다.", - "-1752211105": "지금 송금하기", + "-1752211105": "지금 이체하기", "-598073640": "테더 소개 (이더리움)", "-275902914": "이더리움에서의 테더 (eUSDT)", "-1188009792": "옴니레이어 (USDT) 에서의 테더", @@ -2345,8 +2346,11 @@ "-2056016338": "귀하꼐서는 귀하의 Deriv 피아트 및 {{platform_name_mt5}} 계좌들 사이에 같은 통화로 되어 있는 송금에 대해서는 송금 비용이 청구되지 않을 것입니다.", "-599632330": "저희는 귀하의 Deriv 피아트와 {{platform_name_mt5}} 계좌들 사이 그리고 귀하의 Deriv 피아트 및 {{platform_name_dxtrade}} 계좌들 사이에 이루어지는 송금에 대하여 1%의 송금 비용을 청구할 것입니다.", "-1196994774": "귀하의 Deriv 암호화폐 계좌들 간에 이루어지는 송금에 대하여, 저희는 2% 송금 비용 또는 {{minimum_fee}} {{currency}} 중에서 더 높은 금액을 청구할 것입니다.", + "-1361372445": "Deriv 암호화폐와 Deriv MT5 계정, Deriv 암호화폐와 {{platform_name_derivez}} 계정, Deriv 암호화폐와 {{platform_name_dxtrade}} 계정간의 이체에 대하여 2% 이체 수수료 또는 {{minimum_fee}} {{currency}} 둘 중에서 더 높은 비용이 부과됩니다.", "-993556039": "저희는 귀하의 Deriv 암호화폐와 Deriv MT5 계좌들간 그리고 귀하의 Deriv 암호화폐와 {{platform_name_dxtrade}} 계좌들간에 진행되는 송금에 대하여 2%의 송금료 또는 {{minimum_fee}} {{currency}} 중에 더 높은 금액을 청구할 것입니다.", "-1382702462": "저희는 귀하의 Deriv 암호화폐와 Deriv MT5 계좌들간에 진행되는 송금에 대하여 2%의 송금료 또는 {{minimum_fee}} {{currency}} 중에 더 높은 금액을 청구할 것입니다.", + "-1995859618": "Deriv 피아트, 암호화폐, {{platform_name_mt5}}, {{platform_name_derivez}} 그리고 {{platform_name_dxtrade}} 계정간에 이체하실 수 있습니다.", + "-545616470": "일일당 허용되는 이체 수의 경우, Deriv 계정간에는 최대{{ allowed_internal }}, Deriv와 {{platform_name_mt5}} 간에는 최대 {{ allowed_mt5 }}, Deriv와 {{platform_name_derivez}} 간에는 최대 {{ allowed_derivez }}, 그리고 Deriv와 {{platform_name_dxtrade}} 계좌 사이에는 최대 {{ allowed_dxtrade }} 만큼 허용됩니다.", "-1151983985": "송금한도는 환율에 따라 변동될 수 있습니다.", "-1747571263": "몇몇의 송금은 가능하지 않을 수도 있다는 점을 아시기 바랍니다.", "-757062699": "외환 시장이 닫히면 높은 변동성 또는 기술적인 문제로 인해 송금이 불가능할 수도 있습니다.", @@ -2377,7 +2381,7 @@ "-451858550": "'계속하기'를 클릭함으로써 귀하께서는 제 3자 결제 서비스 제공자인 {{ service }} 로 재연결될 것입니다. {{ service }} 에 의해 제공되는 컨텐츠 또는 서비스에 대해서 {{ website_name }} 는 책임이 없다는 것을 아시기 바랍니다. 귀하께서 만약 {{ service }} 서비스와 관련된 문제를 접하시면, 귀하께서는 반드시 바로 {{ service }} 로 연락하셔야 합니다.", "-2005265642": "피아트 온램프는 귀하의 Deriv 크립토 계좌를 충전하기 위해 귀하께서 피아트 통화를 암호화폐로 변환하실 수 있도록 해주는 캐셔 서비스입니다. 여기에 나열되어 있는곳은 제 3자 암호화폐 거래소들입니다. 귀하께서는 이들의 서비스를 이용하시기 위해 이 거래소들을 통해 계좌를 생성하셔야 합니다.", "-1593063457": "결제 채널을 선택하세요", - "-953082600": "일부 결제 수단은 여기에 나열되어 있지 않을 수 있지만 결제 대행사가 여전히 제공할 수 있습니다. 선호하는 방법을 찾을 수 없는 경우 결제 담당자에게 직접 문의하여 자세히 확인하세요.", + "-953082600": "일부 결제 수단은 여기에 나열되어 있지 않을 수 있지만 결제 에이전트가 이를 여전히 제공할 수 있습니다. 선호하는 방법을 찾을 수 없는 경우 결제 담당자에게 직접 문의하여 자세히 확인하세요.", "-2004264970": "귀하의 지갑 주소는 문자수가 25에서 64개이여야 합니다.", "-1707299138": "귀하의 {{currency_symbol}} 지갑 주소", "-38063175": "{{account_text}} 지갑", @@ -2440,7 +2444,7 @@ "-184183432": "최대 기간: {{ max }}", "-749186458": "귀하의 봇이 실행되고 있을 때에는 계좌를 전환하는 것이 중지 됩니다. 계좌를 전환하기 이전에 귀하의 봇을 중지시켜 주시기 바랍니다.", "-662836330": "귀하의 현재 계약을 유지 또는 종료하시고 싶으십니까? 유지하시기로 결정하신다면, 귀하께서는 이후에 <0>리포트 페이지에서 확인하시고 해당 계약을 종료하실 수 있습니다.", - "-597939268": "나의 계약 유지하기", + "-597939268": "내 계약 유지하기", "-1322453991": "봇을 실행시키기 위해 로그인하셔야 합니다.", "-1483938124": "이 전략은 DBot과 호환될 수 없습니다.", "-236548954": "계약 업데이트 오류", @@ -2631,6 +2635,7 @@ "-328128497": "금융", "-533935232": "금융 BVI", "-565431857": "금융 라부안", + "-1290112064": "Deriv EZ", "-1669418686": "AUD/CAD", "-1548588249": "AUD/CHF", "-1552890620": "AUD/JPY", @@ -2663,7 +2668,7 @@ "-1925264914": "변동성 25 지수", "-708579504": "변동성 50 지수", "-975255670": "변동성75 지수", - "-1736314513": "Crash 300 지수", + "-1736314513": "크래시 (crash) 300 지수", "-342128411": "Crash 500 지수", "-9704319": "Crash 1000 지수", "-465860988": "강세장 지수", @@ -2671,7 +2676,7 @@ "-280323742": "EUR 바스켓", "-563812039": "변동성 10 (1s) 지수", "-764111252": "변동성 100 (1s) 지수", - "-1374309449": "Volatility 200 (1s) 지수", + "-1374309449": "변동성 (Volatility) 200 (1초) 지수", "-1164978320": "Jump 10 지수", "-575272887": "BCH/USD", "-295406873": "BTC/ETH", @@ -2745,6 +2750,7 @@ "-1125797291": "비밀번호가 업데이트되었습니다.", "-157145612": "귀하의 업데이트된 비밀번호로 로그인해주시기 바랍니다.", "-1728185398": "주소 증명 재제출", + "-612396514": "Please resubmit your proof of address.", "-1519764694": "귀하의 주소 증명이 확인되었습니다.", "-1961967032": "신분 증명 재제출", "-117048458": "귀하의 신원 증명을 제출해 주시기 바랍니다.", @@ -2767,11 +2773,15 @@ "-1719731099": "2단계 보안 인증을 통해 귀하께서는 비밀번호와 귀하의 휴대폰을 통해 귀하의 계좌를 더욱 보호하실 수 있습니다 - 이를 통하여 만약 다른 누군가가 귀하의 비밀번호를 알더라도 오직 귀하께서만 귀하의 계좌에 접근하실 수 있습니다.", "-2087822170": "귀하께서는 오프라인입니다", "-1669693571": "귀하의 연결을 확인해주세요.", - "-1706642239": "<0>소유권 증명 <1>필요", + "-1706642239": "<0>소유권 증명 이 <1>필요합니다", "-553262593": "<0><1>계정이 현재 잠겼습니다<2>. <4>소유권 <3>증명을 업로드하여 계정을 잠금 해제하세요.<5>", "-1834929362": "내 문서 업로드", - "-1043638404": "<0>소유권 증명 <1>확인 실패", - "-1766760306": "<0><2>정확한 세부 정보가 포함된 <1>문서를 업로드하십시오.<3>", + "-1043638404": "<0>소유권 증명 <1>검증이 실패되었습니다", + "-1766760306": "<0><2>올바른 세부 정보가 포함되어 있는 <1>문서를 업로드하시기 바랍니다. <3>", + "-2142540205": "귀하의 문서에 나와있는 주소가 귀하의 Deriv 프로필에 있는 주소와 일치하지 않는 것으로 보입니다. 귀하의 개인 세부정보를 지금 올바른 주소로 업데이트하시기 바랍니다.", + "-482715448": "개인 세부 정보로 이동", + "-2072411961": "귀하의 주소 증명이 인증되었습니다", + "-384887227": "프로필에서 주소를 업데이트하세요.", "-1998049070": "귀하께서 저희의 쿠키 활용에 동의하신다면, 동의하기 버튼을 클릭하세요. 더 많은 정보를 위해서는, <0>우리의 정책을 확인해주세요.", "-402093392": "Deriv 계정 추가", "-277547429": "Deriv 계좌를 통해 귀하의 MT5 계좌(들) 에 자금을 입금하실 수 있습니다 (그리고 출금하실 수 있습니다).", @@ -2873,7 +2883,7 @@ "-1976089791": "귀하의 Deriv 계정이 귀하의 {{social_identity_provider}} 계정에서 연결이 해제되었습니다. 이제 귀하의 새로운 이메일 주소와 비밀번호를 사용하여 Deriv에 로그인 하실 수 있습니다.", "-505449293": "귀하의 Deriv 계좌에 대해 새로운 비밀번호를 입력하세요.", "-703818088": "이 보안 링크를 통해서만 계정에 로그인하세요, 다른 곳에서는 하지 마십시오.", - "-1235799308": "가짜 링크에는 'Deriv'처럼 보이는 단어가 포함되는 경우가 많지만 이러한 차이점을 주의하세요.", + "-1235799308": "가짜 링크에는 \"Deriv\"처럼 보이는 단어가 포함되는 경우가 종종 있지만 이러한 차이점에 주의하세요.", "-2102997229": "예시", "-82488190": "상기 내용을 주의깊게 읽었습니다,", "-97775019": "가짜 웹사이트, 광고 또는 또는 이메일로 귀하의 자격증명을 제공하시거나 신뢰하지 말아주세요.", @@ -2882,11 +2892,11 @@ "-1787820992": "플랫폼", "-1793883644": "맞춤형이며 이용하기 쉬운 트레이딩 플랫폼에서 FX와 CFD를 거래하세요.", "-184713104": "옵션을 통해 고정된 지불금을 받으시거나, 또는 제한된 위험으로 귀하의 이익을 확대시키기 위해 승수를 거래하세요.", - "-1571775875": "우리의 플래그십 옵션 및 승수 트레이딩 플랫폼.", - "-1107320163": "귀하의 트레이딩을 자동화하세요, 코딩이 필요없습니다.", + "-1571775875": "우리의 플래그십 옵션 및 승수 거래 플랫폼.", + "-1107320163": "코팅 필요 없이 귀하의 거래를 자동화하세요.", "-820028470": "옵션 & 승수", - "-895091803": "귀하께서 CFD를 찾고 계신다면", - "-1447215751": "확실하지 않으신가요? 다음을 시도해보세요", + "-895091803": "CFD를 찾고 계신다면", + "-1447215751": "확실하지 않으세요? 이렇게 해 보세요", "-2338797": "귀하께서 투자하신 금액보다 <0>더 많은 위험을 감수함으로써 <0>보상을 최대화하세요.", "-1682067341": "귀하께서 투자하신 금액만큼의 <0>위험만 감수하시고 <0>고정된 보상을 획득하세요.", "-1744351732": "어디서부터 시작하실지 확신이 없으신가요?", @@ -2913,6 +2923,10 @@ "-429248139": "5. 고지사항", "-818926350": "금융 위원회는 사건 발생일로부터 45일간만 항소를 받아들이며 해당 트레이더가 해당 문제를 해당 회사와 직접적으로 통해 해결하려고 한 이후에만 받아들여집니다.", "-358055541": "훌륭한 새 도구로 귀하의 거래를 강화하세요", + "-29496115": "당사는 MT5용의 직관적인 거래 도구 모음을 제공하기 위해 Acuity와 파트너 관계를 맺었으며 귀하께서는 시장 이벤트와 트렌드를 무료로 추적할 수 있습니다!<0/><0/>", + "-648669944": "Acuity 제품군을 다운로드하시고 귀하의 MT5 터미널을 떠나지 않고도 <1>거시 경제 캘린더, 시장 알림, 리서치 터미널, 및 <1>시그널 센터 거래 아이디어를 활용하세요.<0/><0/>", + "-794294380": "이 제품군은 Windows에서만 사용할 수 있으며, 금융 자산에 가장 추천됩니다.", + "-922510206": "Acuity 사용에 도움이 필요하신가요?", "-815070480": "주의 공지: Acuity에서 제공되는 거래 서비스 및 정보는 투자 및/또는 거래를 권유하는 것으로 해석되어서는 안 됩니다. Deriv는 투자 자문을 제공하지 않습니다. 과거는 미래의 성과에 대한 지침이 아니며, 과거에 효과가 있었던 전략은 미래에는 효과가 없을 수도 있습니다.", "-2111521813": "Acuity 다운로드", "-175369516": "Deriv X에 오신 것을 환영합니다", @@ -2923,11 +2937,11 @@ "-243985555": "레버리지를 통해 외환, 주식, 주식지수, 합성 지수, 암호화폐 및 원자재에 대하여 CFD를 거래하세요.", "-2030107144": "외환, 주식 & 주식 지수, 원자재 및 암호화폐에서 CFD를 거래하세요.", "-781132577": "레버리지", - "-1264604378": "1:1000 까지", + "-1264604378": "최대 1:1000 까지", "-637908996": "100%", "-1420548257": "20+", "-1373949478": "50+", - "-1686150678": "1:100까지", + "-1686150678": "최대 1:100까지", "-1382029900": "70+", "-1493055298": "90+", "-1056874273": "25개 이상의 자산: 합성", @@ -2944,65 +2958,68 @@ "-1752249490": "Malta Financial", "-2068980956": "최대 1:30 레버리지", "-2098459063": "영국령 버진 아일랜드", - "-1434036215": "데모 금융", + "-1434036215": "데모 파이낸셜 (Financial)", "-1416247163": "금융 STP", "-1882063886": "데모 CFD", "-1347908717": "Demo Financial SVG", "-1780324582": "SVG", - "-785625598": "웹사이트와 모바일 앱에서 귀하의 {{platform}} 계좌에 로그인 하시기 위해 이 크리덴셜들을 이용하세요.", - "-997127433": "비밀번호를 변경하세요", - "-162753510": "실제계좌 추가하기", + "-785625598": "웹 사이트 및 모바일 앱에서 귀하의 {{platform}} 계정에 로그인 하기 위해 이 자격 증명을 사용하세요.", + "-997127433": "비밀번호 변경", + "-162753510": "실제 계정 추가", "-1300381594": "Acuity 트레이딩 도구 받기", "-860609405": "비밀번호", "-742647506": "자금 이체", "-1972393174": "당사의 합성, 바스켓 및 파생 FX로부터 CFD를 거래하세요.", "-1357917360": "웹 터미널", - "-1454896285": "MT5 데스크탑 앱은 윈도우 XP, 윈도우 2003 및 윈도우 비스타에서는 지원이 되지 않습니다.", + "-1454896285": "MT5 데스크톱 앱은 윈도우 XP, 윈도우 2003 및 윈도우 비스타에서는 지원되지 않습니다.", "-810388996": "Deriv X 모바일 앱을 다운 받으세요", "-1727991510": "QR 코드를 스캔하셔서 Deriv X 모바일 앱을 다운받으세요", "-1302404116": "최대 레버리지", - "-511301450": "특정한 계좌에 대해 암호화폐 트레이딩의 이용 가능성을 나타냅니다.", - "-2102641225": "은행 롤오버시에는 외환 시장에서의 유동성이 감소되며 고객 주문에 대하여 스프레드와 처리 시간이 증가될 수 있습니다. 이는 일광절약시간제(서머타임)에 21:00 GMT 정도에 일어나며, 일광절약시간제가 아닐 시에는 22:00 GMT에 일어납니다.", - "-495364248": "마진 콜 및 스탑아웃 레벨은 시장 상태에 따라 때때로 변동될 것입니다.", - "-536189739": "시장 개설 갭으로 인한 불리한 시장동향으로부터 귀하의 포트폴리오를 보호하기 위해서, 우리는 시장이 종료되기 이전에 금융 계좌들을 위해 제공된 모든 심볼들에 대하여 레버리지를 감소시키고 시장이 개설된 이후 다시 증가시킬 권리를 가지고 있습니다. 귀하의 포지션들을 항상 지원할 수 있도록 귀하의 {{platform}} 계좌에 충분한 자금이 있도록 확실히 해주시기를 바랍니다.", + "-511301450": "특정 계정에서 암호화폐 거래가 가능한지를 나타냅니다.", + "-2102641225": "은행 롤오버 시에는 외환 시장의 유동성이 감소하고 고객 주문의 스프레드 및 처리시간이 늘어날 수 있습니다. 이는 서머타임 시간대인 경우 21:00 GMT 무렵과 서머타임이 아닌 시간대인 경우 22:00 GM 경에 발생합니다.", + "-495364248": "마진콜 및 스탑아웃 레벨은 시장 상황에 따라 수시로 변경됩니다.", + "-536189739": "시장 개장의 차이로 인한 불리한 시장 움직임으로부터 귀하의 포트폴리오를 보호하기 위해 당사는 시장 마감 전에 금융 계정에 제공되는 모든 종목에 대한 레버리지를 줄이고 시장 개장 후 다시 늘릴 권리가 있습니다. 귀하의 포지션을 항상 지원할 수 있는 충분한 자금이 귀하의 {{platform}} 계정에 있는지 확인하시기 바랍니다.", "-712681566": "피어 투 피어 거래", "-1267880283": "{{field_name}} 은 필수입력 사항입니다", "-2084509650": "{{field_name}} 이 올바른 형식으로 되어 있지 않습니다.", - "-1779241732": "주소의 첫번째 줄이 올바른 형식으로 되어 있지 않습니다.", + "-222283483": "Account opening reason*", + "-1779241732": "주소의 첫 번째 줄이 올바른 형식으로 되어 있지 않습니다.", "-188222339": "글자수는 {{max_number}} 을 초과할 수 없습니다.", - "-1673422138": "주/지방이 올바른 형식으로 되어 있지 않습니다.", + "-1673422138": "도/지방이 올바른 형식으로 되어 있지 않습니다.", "-1580554423": "실제 세계의 시장 동향을 시뮬레이션 하는 저희의 합성 지수에서 CFD를 거래하세요.", - "-1385484963": "귀하의 {{platform}} 비밀번호를 변경하기 위해 확인하세요", - "-1990902270": "이는 귀하의 모든 {{platform}} 계좌들의 비밀번호를 바꿀 것입니다.", - "-673424733": "데모 계좌", + "-1385484963": "귀하의 {{platform}} 비밀번호 변경 확인", + "-1990902270": "이는 귀하의 모든 {{platform}} 계정들의 비밀번호를 바꿀 것입니다.", + "-673424733": "데모 계정", "-1986258847": "서버 관리는 매 일요일마다 01:00 GMT에 시작하며 이 절차는 완료되기까지 최대 2시간까지 걸릴 수 있습니다. ㅇ 시간에 서비스는 방해받을 수 있습니다.", "-1199152768": "우리의 다른 플랫폼들도 둘러보시기 바랍니다.", "-205020823": "{{platform_name_trader}} 둘러보기", "-1982499699": "{{platform_name_dbot}} 둘러보기", "-1567989247": "귀하의 신분 및 주소 증명 제출", "-184453418": "귀하의 {{platform}} 비밀번호를 입력하세요", + "-393388362": "We’re reviewing your documents. This should take about 1 to 3 days.", + "-790488576": "비밀번호를 잊으셨나요?", + "-926547017": "귀하의 {{platform}} 비밀번호를 입력하셔서 {{platform}} {{account}} {{jurisdiction_shortcode}} 계정을 추가하세요.", + "-1190393389": "{{platform}} {{account}} 계정을 추가하기 위해 귀하의 {{platform}} 비밀번호를 입력하세요.", + "-2057918502": "힌트: 귀하의 {{platform}} 비밀번호와는 다른 Deriv 비밀번호를 입력하셨을 수 있습니다.", "-1769158315": "실제", "-700260448": "데모", - "-1980366110": "축하드립니다. 귀하께서는 귀하의 {{category}} {{platform}} <0>{{type}} 계정을 성공적으로 생성하셨습니다.", - "-790488576": "비밀번호를 잊어버리셨나요?", - "-926547017": "귀하의 {{platform}} 비밀번호를 입력하셔서 {{platform}} {{account}} {{jurisdiction_shortcode}} 계정을 추가하세요.", - "-1190393389": "{{platform}} {{account}} 계좌를 추가하기 위해 귀하의 {{platform}} 비밀번호를 입력하세요.", - "-2057918502": "알림: 귀하께서는 귀하의 Deriv 비밀번호를 입력하신 것일 수 있으며 이는 귀하의 {{platform}} 비밀번호와 다릅니다.", + "-1936102840": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} account. ", + "-1570793523": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} account.", "-1928229820": "Deriv X 투자자 비밀번호 재설정", "-1087845020": "주요", "-1950683866": "투자자", "-1874242353": "자금 완전 충전", "-89838213": "만약 귀하의 잔액이 <0>거나 또는 이보다 적을 경우 추가적인 <1>으로 귀하의 데모 계좌를 충전하실 수 있습니다.", - "-1211122723": "{{ platform }} {{ account_title }} 계좌", + "-1211122723": "{{ platform }} {{ account_title }} 계정", "-78895143": "현재 잔액", "-149993085": "새 현재 잔액", "-490244964": "외환, 주식, 주식 지수, 암호화폐", "-1368041210": ", 합성 지수", "-877064208": "EUR", - "-1284221303": "만약 귀하의 계좌 잔액이 스탑아웃 수준에 가깝게 떨어지면 귀하께서는 마진콜이라고 불리는 경고를 받게 될 것입니다.", - "-1848799829": "스탑아웃을 이애하기 위해서 귀하께서는 귀하의 지분 (해당되는 때에 귀하의 모든 포지션을 닫았을 때 귀하께서 보유하시게 되는 총 잔액) 과 그 때 귀하께서 활용하시는 마진의 비율인 마진 레벨에 대하여 배우셔야 할 필요가 있습니다. 만약 귀하의 마진 레벨이 우리의 스탑아웃 레벨 아래로 떨어지는 경우, 귀하의 포지션들은 추가적인 손실로부터 귀하를 보호하기 위해 자동적으로 종료될 수 있습니다.", + "-1284221303": "귀하의 계정 잔액이 스톱아웃 수준에 가까워지면 마진 콜이라는 경고를 받게 될 것입니다.", + "-1848799829": "스톱아웃을 이해하려면 먼저 마진 레벨에 대해 아셔야 합니다. 마진 레벨은 현재 사용 중인 마진에 대한 귀하의 지분 (해당 시점에 귀하께서 모든 포지션을 청산할 경우 보유하게 되는 총 잔고) 의 비율입니다. 마진 레벨이 스톱아웃 레벨 아래로 떨어지면 추가 손실을 방지하기 위해 귀하의 포지션이 자동으로 마감될 수 있습니다.", "-224051432": "24/7", - "-1591882610": "종합", + "-1591882610": "합성", "-70716111": "FX-주요 (기준/마이크로 랏), FX-마이너, 바스켓 지수, 원자재, 암호화폐 및 주식 및 주식 지수들", "-1041629137": "FX-메이저, FX-마이너, FX-이국, 및 암호화폐", "-287097947": "FX-메이저 (스탠다드/마이크로 랏), FX-마이너, 원자재, 암호화폐 (영국 제외)", @@ -3013,26 +3030,16 @@ "-161656683": "현재의 투자자 비밀번호", "-374736923": "새로운 투자자 비밀번호", "-1793894323": "투자자 비밀번호를 생성 또는 재설정하세요", - "-1124208206": "실제 계정으로 전환하여 DMT5 {{account_title}} {{type_title}} 계정을 만드세요.", - "-1576792859": "신분 및 주소의 증명이 요구됩니다", - "-104382603": "귀하의 주소 증명을 확인하세요", - "-793684335": "귀하의 신원 증명을 확인하세요", "-1271218821": "계좌가 추가되었습니다", - "-599621079": "Deriv (SVG) LLC (회사 번호. 273 LLC 2020) 아래에 귀하의 {{account_type}} 계정을 추가하세요.", - "-1302969276": "영국령 버진아일랜드 금융 서비스 위원회 (라이선스 번호. SIBA/{{line_break}}L/18/1114)의 규제를 받는 Deriv (BVI) Ltd를 통해 귀하의 Deriv MT5 {{account_type}} 계정을 추가하세요.", - "-1422519943": "바누아투 금융 서비스 위원회의 규제를 받는 Deriv (V) Ltd를 통해 귀하의 DMT5 {{account_type}} 계정을 추가하세요.", - "-1731304187": "몰타 금융 서비스 당국 (MFSA) 의 규제를 받는 (라이센스 번호. IS/70156) Deriv Investments (Europe) Limited 아래 귀하의 Deriv MT5 CFD를 추가하세요.", - "-16048185": "이 계좌를 생성하기 위해 저희는 먼저 귀하의 신분과 주소의 증명이 필요합니다.", - "-1627989291": "이 계좌를 생성하기 위해 귀하께서 먼저 귀하의 신분 증명을 다시 제출하셔야 합니다.", - "-1389025684": "이 계정을 생성하기 위해서 저희는 먼저 귀하께서 귀하의 신분 및 주소 증명을 다시 제출하실 것을 요구합니다.", - "-1615750576": "귀하께서 제출하신 문서들이 인증되면 이 계정을 개설하실 수 있습니다.", - "-724308541": "귀하의 Deriv MT5 CFD 계좡에 대한 관할권", - "-479119833": "귀하의 Deriv MT5 {{account_type}} 계정의 관할 지역을 선택하세요", + "-1576792859": "신분 및 주소의 증명이 요구됩니다", "-1931257307": "귀하께서는 신원 증명을 제출하셔야 합니다", "-2026018074": "Deriv (SVG) LLC (회사 번호. 273 LLC 2020) 아래 귀하의 Deriv MT5 <0>{{account_type_name}} 계정을 추가하세요.", "-162320753": "영국령 버진 제도 금융 서비스 위원회(라이센스 번호. SIBA/L/18/1114). 의 규제를 받는 Deriv (BVI) Ltd 아래 귀하의 Deriv MT5 <0>{{account_type_name}}를 추가하세요.", + "-1731304187": "몰타 금융 서비스 당국 (MFSA) 의 규제를 받는 (라이센스 번호. IS/70156) Deriv Investments (Europe) Limited 아래 귀하의 Deriv MT5 CFD를 추가하세요.", + "-724308541": "귀하의 Deriv MT5 CFD 계좡에 대한 관할권", + "-479119833": "귀하의 Deriv MT5 {{account_type}} 계정의 관할 지역을 선택하세요", "-450424792": "실제 Deriv MT5 계정을 만들기 위해서는 Deriv에 실제 계정 (법정통화 또는 암호화폐) 이 필요합니다.", - "-1760596315": "Deriv 계좌 생성하기", + "-1760596315": "Deriv 계정 생성하기", "-705682181": "몰타", "-194969520": "상대방 회사", "-1131400885": "Deriv Investments (Europe) Limited", @@ -3052,8 +3059,8 @@ "-2123571162": "다운로드", "-941636117": "MetaTrader 5 리눅스 앱", "-2019704014": "QR 코드를 스캔하여 Deriv MT5 다운로드", - "-648956272": "웹과 모바일 앱에서 귀하의 Deriv X 계좌에 로그인하시기 위해 이 비밀번호를 이용하세요.", - "-1814308691": "귀하의 {{platform}} 비밀번호를 변경하기 위해 이메일에 있는 링크를 클릭해주세요.", + "-648956272": "이 비밀번호를 사용하여 웹 및 모바일 앱에서 Deriv X 계정에 로그인하세요.", + "-1814308691": "귀하의 {{platform}} 비밀번호를 변경하기 위해서 이메일에 있는 링크를 클릭하시기 바랍니다.", "-1282933308": "{{barrier}} 아님", "-968190634": "{{barrier}} 일치", "-1747377543": "{{barrier}} 아래", @@ -3355,8 +3362,8 @@ "-702370957": "날짜/시간으로 변경하기", "-982729677": "타임 스탬프로 변경하기", "-311268215": "이 블록은 날짜와 초를 나타내는 텍스트 스트링을 유닉스 에포크 (1970 1월 1일)부터 경과된 초로 변환합니다. 시간과 시간대는 오프셋은 최적화 되어 있습니다. 예시: 2019-01-01 21:03:45 GMT+0800은 1546347825로 변환될 것입니다.", - "-1797602591": "스탑 로스: {{ currency }} {{ stop_loss }}", - "-1214929127": "손실제한은 반드시 양의 수여야 합니다.", + "-1797602591": "스톱로스: {{ currency }} {{ stop_loss }}", + "-1214929127": "스톱로스는 반드시 양수여야 합니다.", "-780745489": "계약 종류가 \"둘 다\"인 경우, 구매 조건은 \"조건부 블록\"을 이용하여 상승과 하강이 모두 포함되어야 합니다", "-2142851225": "승수 거래 옵션", "-625636913": "금액은 반드시 양의 수여야 합니다.", diff --git a/packages/translations/src/translations/pl.json b/packages/translations/src/translations/pl.json index 69e6183d5c13..1e64742c2c3a 100644 --- a/packages/translations/src/translations/pl.json +++ b/packages/translations/src/translations/pl.json @@ -70,10 +70,8 @@ "98972777": "element losowy", "100239694": "Prześlij skan przodu dowodu osobistego ze swojego komputera", "102226908": "Pole nie może być puste", - "107206831": "Sprawdzimy Twój dokument i powiadomimy Cię o statusie w ciągu 1-3 dni.", "108916570": "Czas trwania: {{duration}} dni", "109073671": "Skorzystaj z e-portfela, który został użyty poprzednio do dokonania wpłaty. Upewnij się, że ten e-portfel posiada opcje wypłat. <0>Tutaj możesz zobaczyć listę e-portfeli obsługujących wypłaty.", - "110261653": "Gratulacje, Twoje konto {{category}} {{platform}} <0>{{type}} {{jurisdiction_selected_shortcode}} zostało utworzone. Aby rozpocząć handlowanie, prześlij swoje środki z konta Deriv na to konto.", "111215238": "Odsuń się od bezpośredniego światła", "111718006": "Data zakończenia", "111931529": "Całkowita maks. stawka w ciągu 7 dni", @@ -182,6 +180,7 @@ "248909149": "Wyślij bezpieczny link na swój telefon", "249908265": "Czy jesteś obywatelem tego kraju: {{- residence}}?", "251134918": "Informacje o koncie", + "251322536": "Deriv EZ accounts", "251445658": "Ciemny motyw", "251882697": "Dziękujemy! Twoja odpowiedź została zapisana w naszym systemie.<0/><0/> Kliknij „OK”, aby kontynuować.", "254912581": "Ten blok jest podobny do EMA, tylko że daje całą linię EMA w oparciu o listę wejściową i wybrany okres czasu.", @@ -197,6 +196,7 @@ "265644304": "Typy zakładów", "267992618": "Na platformach brakuje podstawowych funkcji.", "268940240": "Twoje saldo ({{format_balance}} {{currency}}) jest niższe od obecnie obowiązującej minimalnej kwoty wypłaty ({{format_min_withdraw_amount}} {{currency}}). Zasil swoje konto, aby kontynuować wypłatę.", + "269322978": "Deposit with your local currency via peer-to-peer exchange with fellow traders in your country.", "269607721": "Prześlij", "270339490": "Jeśli wybierzesz „ponad”, zdobędziesz wypłatę, gdy ostatnia cyfra ostatniego ticku będzie większa niż cyfra przewidywana przez Ciebie.", "270610771": "W tym przykładzie cena otwarcia świecy jest przypisana do zmiennej „candle_open_price”.", @@ -212,6 +212,7 @@ "278684544": "uzyskaj listę podrzędną z # od końca", "282319001": "Sprawdź swój obraz", "282564053": "Następnie będziemy potrzebować potwierdzenia adresu.", + "283830551": "Your address doesn’t match your profile", "283986166": "Opcja samo-wykluczenia dostępna na stronie internetowej odnosi się wyłącznie do Twojego konta {{brand_website_name}} i nie obejmuje innych firm czy witryn internetowych.", "284527272": "anty-tryb", "284772879": "Kontrakt", @@ -245,7 +246,6 @@ "327534692": "Wprowadzono niedozwoloną wartość czasu trwania. Aby uruchomić bot, wprowadź wartość {{min}}.", "328539132": "Powtarza wewnętrzne instrukcje określoną liczbę razy", "329404045": "<0>Przejdź na swoje prawdziwe konto,<1> aby utworzyć konto {{platform}} {{account_title}}.", - "332886946": "<1>Potrzebujesz pomocy przy obsłudze Acuity? <0/>Zapoznaj się z tym <2>podręcznikiem użytkownika.", "333456603": "Limity wypłat", "334680754": "Przełącz się na swoje konto rzeczywiste, aby utworzyć konto Deriv MT5", "334942497": "Czas zakupu", @@ -368,7 +368,6 @@ "478280278": "Ten blok wyświetla okno dialogowe, które używa spersonalizowanej wiadomości, aby monitować o dane wejściowe. Dane wejściowe mogą być ciągiem tekstu lub liczbą i można je przypisać do zmiennej. Gdy wyświetlane jest okno dialogowe, Twoja strategia zostaje zatrzymana i jest wznawiana po wprowadzeniu odpowiedzi i kliknięciu „OK”.", "479420576": "Wyższe", "481276888": "Przekroczy", - "483246914": "Dodaj swoje konto Deriv MT5 {{account_type}} STP w firmie Deriv (FX) Ltd, podlegającej regulacjom urzędu Labuan Financial Services Authority (Licencja nr. MB/18/0024).", "483279638": "Ocena zakończona<0/><0/>", "483591040": "Usunąć wszystkie bloki w liczbie {{ delete_count }}?", "485379166": "Zobac transakcje", @@ -419,7 +418,6 @@ "551569133": "Dowiedz się więcej o limitach handlowych", "554410233": "To hasło jest wśród 10 najpopularniejszych", "555351771": "Po określeniu parametrów i opcji zakładu, możesz poinstruować swój bot, aby dokonał zakupu kontraktu, gdy zostaną spełnione określone warunki. Aby to zrobić, możesz użyć bloków warunkowych i wskaźnikowych, które pomogą botowi podjąć decyzję.", - "556095366": "Twoje dane zostaną przetworzone w ciągu kilku minut, po czym otrzymasz powiadomienie o statusie drogą e-mailową.", "556264438": "Odstęp czasu", "559224320": "Nasze klasyczne narzędzie „przeciągnij i upuść” do tworzenia botów handlowych z opcją wyskakujących okienek wykresów handlowych, dla zaawansowanych użytkowników.", "561982839": "Zmień swoją walutę", @@ -576,6 +574,7 @@ "745656178": "Użyj tego bloku, aby sprzedać swój kontrakt po cenie rynkowej.", "745674059": "Zwraca określony znak z danego ciągu tekstu zgodnie z wybraną opcją. ", "746112978": "Aktualizacja może zająć komputerowi kilka sekund", + "750886728": "Switch to your real account to submit your documents", "751692023": "<0>Nie gwarantujemy zwrotu środków w przypadku dokonania złego transferu.", "752024971": "Osiągnięto maksymalną liczbę cyfr", "752633544": "Po osiągnięciu określonych progów będzie konieczne przesłanie dokumentu potwierdzającego tożsamość i adres", @@ -790,7 +789,6 @@ "1023643811": "Ten blok kupuje kontrakt określonego typu.", "1023795011": "Parzysta/nieparzysta", "1024205076": "Działanie logiczne", - "1024760087": "Jesteś zweryfikowanym użytkownikiem, aby dodać to konto", "1025887996": "Ochrona ujemnego salda", "1026046972": "Wprowadź kwotę wypłaty niższą niż {{max_payout}}.", "1027098103": "Dźwignia daje Ci możliwość handlowania większą pozycją przy użyciu Twojego obecnego kapitału. Dźwignia różni się w zależności od symbolu.", @@ -874,6 +872,7 @@ "1112582372": "Czas trwania interwału", "1113119682": "Ten blok daje wartość wybranej świecy z listy świec.", "1113292761": "Mniej niż 8 MB", + "1113433728": "Resubmit your proof of identity and address", "1117863275": "Bezpieczeństwo", "1118294625": "Wybrano opcję samodzielnego wykluczenia na naszej stronie do dnia {{exclusion_end}}. Jeśli nie możesz zawrzeć zakładu lub wpłacić środków po okresie samodzielnego wykluczenia, skontaktuj się z nami przez czat na żywo.", "1119887091": "Weryfikacja", @@ -935,7 +934,6 @@ "1189886490": "Utwórz kolejne konto Deriv, {{platform_name_mt5}} lub {{platform_name_dxtrade}}.", "1191429031": "Kliknij link z wiadomości e-mail, aby zmienić swoje hasło <0>{{platform_name_dxtrade}}.", "1191644656": "Prognozuj kierunek zmian na rynku i wybierz „Wzrost” lub „Spadek”, aby otworzyć pozycję. Naliczymy prowizję w momencie otwarcia pozycji.", - "1191778951": "Sprawdź swój dokument potwierdzający tożsamość i adres", "1192708099": "Jednostka czasu trwania", "1195393249": "Powiadom {{ notification_type }} z dźwiękiem: {{ notification_sound }} {{ input_message }}", "1196006480": "Próg zysków", @@ -1009,7 +1007,6 @@ "1281290230": "Wybierz", "1282951921": "Tylko spadki", "1284522768": "Jeśli została wybrana wartość „Strata”, zwróci wartość „Prawda”, jeśli Twój ostatni zakład wygrał. W przeciwnym wypadku zwróci pusty ciąg.", - "1285686014": "Oczekuje na sprawdzenie potwierdzenia tożsamości", "1286094280": "Wypłać", "1286507651": "Zamknij ekran weryfikacji tożsamości", "1288965214": "Paszport", @@ -1105,7 +1102,6 @@ "1384222389": "Aby odblokować sekcję Kasjer, prześlij ważny dokument tożsamości.", "1385418910": "Przed założeniem nowego konta, ustaw walutę swojego istniejącego prawdziwego konta.", "1387503299": "Logowanie", - "1388770399": "Wymagane jest potwierdzenie tożsamości", "1389197139": "Błąd importowania", "1390792283": "Parametry zakładu", "1391174838": "Potencjalna wypłata:", @@ -1118,6 +1114,7 @@ "1396417530": "Indeks rynku niedźwiedzia", "1397628594": "Niewystarczające środki", "1399620764": "Jesteśmy zobowiązani prawnie do pozyskania Twoich informacji finansowych.", + "1400341216": "We’ll review your documents and notify you of its status within 1 to 3 days.", "1400637999": "(Wszystkie pola są wymagane)", "1400732866": "Widok z aparatu", "1400962248": "Wysoka-Zamknięcia", @@ -1263,9 +1260,11 @@ "1584109614": "Lista ciągu ticków", "1584578483": "Ponad 50 aktywów: forex, akcje, indeksy giełdowe, indeksy syntetyczne i kryptowaluty.", "1584936297": "Plik XML zawiera nieobsługiwane elementy. Sprawdź lub zmień plik.", + "1585859194": "We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts, your Deriv fiat and {{platform_name_derivez}} accounts, and your Deriv fiat and {{platform_name_dxtrade}} accounts.", "1587046102": "Dokumenty z tego kraju nie są obecnie obsługiwane — spróbuj użyć inny rodzaj dokumentu", "1589640950": "Nie można odsprzedać tego kontraktu.", "1589702653": "Potwierdzenie adresu", + "1591933071": "Resubmit document", "1593010588": "Zaloguj teraz", "1594147169": "Wróć za", "1594322503": "Dostępna jest opcja sprzedaży", @@ -1280,7 +1279,6 @@ "1605222432": "Nie mam żadnej wiedzy i doświadczenia w inwestowaniu.", "1605292429": "Maks. całkowita strata", "1612105450": "Uzyskaj ciąg podrzędny", - "1613273139": "Prześlij ponownie potwierdzenie tożsamości i adresu", "1613633732": "Przerwa powinna trwać 10-60 minut", "1615897837": "Sygnał okresu średniej kroczącej {{ input_number }}", "1618809782": "Maksymalna wypłata", @@ -1324,7 +1322,6 @@ "1665272539": "Uwaga: Nie będzie możliwe zalogowanie się do konta aż do wybranej daty.", "1665738338": "Saldo", "1665756261": "Przejdź na czat na żywo", - "1667395210": "Twoje potwierdzenie tożsamości zostało przesłane", "1668138872": "Zmień ustawienia konta", "1670016002": "Mnożniki: {{ multiplier }}", "1670426231": "Czas zakończenia", @@ -1349,6 +1346,7 @@ "1694517345": "Wprowadź nowy adres e-mail", "1695807119": "Nie udało się załadować bloków Dysku Google", "1700233813": "Przelew z konta {{selected_value}} nie jest dozwolony. Wybierz inne konto z rozwijanej listy", + "1701447705": "Please update your address", "1704656659": "Ile masz doświadczenia w inwestowaniu w kontrakty CFD?", "1708413635": "Dla Twojego konta {{currency_name}} ({{currency}})", "1709859601": "Czas punktu wyjściowego", @@ -1419,6 +1417,7 @@ "1778893716": "Kliknij tutaj", "1779519903": "Akceptowane są tylko liczby.", "1780770384": "Ten blok daje losową wartość ułamkową między 0,0 a 1,0.", + "1781393492": "We do not charge a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts, your Deriv fiat and {{platform_name_derivez}} accounts and your Deriv fiat and {{platform_name_dxtrade}} accounts.", "1782308283": "Szybka strategia", "1782395995": "Szacowanie ostatniej cyfry", "1782690282": "Menu bloków", @@ -1429,6 +1428,7 @@ "1788966083": "01-07-1999", "1789497185": "Upewnij się, że dane paszportowe są widoczne i czytelne, nie są zamazane ani prześwietlone", "1790770969": "Główne-FX (standardowe/mikro partie), Drugorzędne-FX, Towary, Kryptowaluty", + "1791017883": "Check out this <0>user guide.", "1791432284": "Szukaj kraju", "1791971912": "Ostatnie", "1793913365": "Aby wpłacić pieniądze, przejdź na swoje konto {{currency_symbol}}.", @@ -1549,6 +1549,7 @@ "1918832194": "Brak doświadczenia", "1919030163": "Wskazówki, jak zrobić dobre zdjęcie selfie", "1919594496": "Strona {{website_name}} nie jest powiązana z żadnym pośrednikiem płatności. Klienci zawierają transakcje z pośrednikami płatności na swoje własne ryzyko. Zaleca się klientom sprawdzenie referencji pośredników płatności i rzetelność wszelkich informacji dot. pośredników płatności (na {{website_name}} lub w innym miejscu) przed skorzystaniem z ich usług.", + "1919694313": "To start trading, transfer funds from your Deriv account into this account.", "1920217537": "Porównaj", "1920468180": "Jak używać bloku SMA", "1921634159": "Kilka informacji osobowych", @@ -1655,6 +1656,7 @@ "2037481040": "Wybierz sposób zasilenia swojego konta", "2037665157": "Rozszerz wszystkie bloki", "2037906477": "uzyskaj listę podrzędną z #", + "2042023623": "We’re reviewing your documents. This should take about 5 minutes.", "2042050260": "- Cena zakupu: cena zakupu (stawka) kontraktu", "2042115724": "Prześlij zrzut ekranu swojego konta i strony danych osobowych ze swoim imieniem i nazwiskiem, numerem konta, numerem telefonu i adresem e-mail.", "2042778835": "Polityka składania skarg, która może ulegać zmianom co jakiś czas, ma zastosowanie w odniesieniu do Twojego konta zarejestrowanego przez {{legal_entity_name}}.", @@ -2002,7 +2004,7 @@ "-1543016582": "Niniejszym potwierdzam, że podane informacje podatkowe są prawdziwe i kompletne. Ponadto poinformuję {{legal_entity_name}} o wszelkich zmianach tych informacji.", "-1387062433": "Powód otwarcia konta", "-1088324715": "Sprawdzimy Twoje dokumenty i powiadomimy Cię o statusie w ciągu 1-3 dni roboczych.", - "-684271315": "OK", + "-329713179": "OK", "-1176889260": "Wybierz rodzaj dokumentu.", "-1515286538": "Wprowadź numer swojego dokumentu. ", "-1785463422": "Potwierdź swoją tożsamość", @@ -2016,7 +2018,6 @@ "-841187054": "Spróbuj ponownie", "-2097808873": "Nie udało się zweryfikować Twojego numeru identyfikacyjnego na podstawie przekazanych danych. ", "-228284848": "Nie udało się zweryfikować Twojego numeru identyfikacyjnego na podstawie przekazanych danych.", - "-1443800801": "Twój numer identyfikacyjny został przesłany", "-1391934478": "Twój dowód tożsamości został zweryfikowany. Musisz też przesłać dowód adresu.", "-118547687": "Zweryfikowano numer identyfikacyjny", "-200989771": "Przejdź do danych osobowych", @@ -2045,7 +2046,6 @@ "-813779897": "Przeszedł dowód weryfikacji własności.", "-1389323399": "Proszę wprowadzić następującą liczbę znaków: {{min_number}}-{{max_number}}.", "-1313806160": "Poproś o nowe hasło i sprawdź swoją skrzynkę e-mail, na którą wysłaliśmy nowy token.", - "-329713179": "OK", "-1598167506": "Udało się", "-1077809489": "Masz nowe hasło {{platform}} do logowania na swoje konta {{platform}} w aplikacji internetowej i na urządzenia mobilne.", "-2068479232": "hasło {{platform}}", @@ -2093,6 +2093,7 @@ "-680528873": "Twoje konto zostanie otwarte przez {{legal_entity_name}}, i będzie podlegać przepisom prawa terytorium Samoa.", "-1125193491": "Dodaj konto", "-2068229627": "Nie jestem osobą zajmującą eksponowane stanowiska polityczne i nie byłem/am taką osobą w ciągu ostatnich 12 miesięcy.", + "-684271315": "OK", "-1720468017": "Świadcząc nasze usługi, jesteśmy zobowiązani do uzyskania od użytkowników informacji w celu oceny, czy dany produkt lub usługa są dla nich odpowiednie.", "-186841084": "Zmień swój adres e-mail", "-907403572": "Aby zmienić swój adres e-mail, najpierw musisz usunąć swój obecny adres e-mail z konta {{identifier_title}}.", @@ -2225,6 +2226,7 @@ "-38915613": "Niezapisane zmiany", "-2137450250": "Masz niezapisane zmiany. Czy na pewno chcesz odrzucić zmiany i opuścić stronę?", "-1067082004": "Opuść sekcję Ustawienia", + "-1982432743": "It appears that the address in your document doesn’t match the address\n in your Deriv profile. Please update your personal details now with the\n correct address.", "-1451334536": "Kontynuuj handlowanie", "-1525879032": "Twój dokument potwierdzający adres jest już nieważny. Prześlij potwierdzenie ponownie.", "-1425489838": "Weryfikacja potwierdzenia adresu nie jest wymagana", @@ -2243,7 +2245,6 @@ "-639677539": "Kup kryptowaluty", "-1560098002": "Kup kryptowaluty przez on-ramp dla waluty fiducjarnej", "-541870313": "Wpłać przez pośrednika płatności", - "-72314872": "Wpłacaj środki w swojej lokalnej walucie, korzystając z wymiany między inwestorami w Twoim kraju.", "-58126117": "Twój łatwy dostęp do kryptowalut. Szybki i bezpieczny sposób kupowania i wymiany kryptowalut. Wsparcie przez czat dostępne 24 godz. na dobę 7 dni w tygodniu.", "-1705887186": "Dokonano wpłaty", "-142361708": "W trakcie", @@ -2345,8 +2346,11 @@ "-2056016338": "Za przelewy w tych samych walutach między kontem Deriv w walucie fiducjarnej a kontem {{platform_name_mt5}} nie pobierana jest opłata.", "-599632330": "Za przelewy w różnych walutach między kontem Deriv w walucie fiducjarnej a kontem {{platform_name_mt5}} lub kontem Deriv w walucie fiducjarnej a kontem {{platform_name_dxtrade}} pobierana jest opłata w wysokości 1% kwoty transferu.", "-1196994774": "Za przelewy między Twoimi kontami Deriv w kryptowalucie pobierana jest opłata w wysokości 2% kwoty transferu lub {{minimum_fee}} {{currency}}, w zależności od tego, która kwota jest wyższa.", + "-1361372445": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts, your Deriv cryptocurrency and {{platform_name_derivez}} accounts, and your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.", "-993556039": "Za przelewy między kontem Deriv w kryptowalucie a kontem Deriv MT5 lub kontem Deriv w kryptowalucie a kontem {{platform_name_dxtrade}} pobierana jest opłata w wysokości 2% kwoty transferu lub {{minimum_fee}} {{currency}}, w zależności od tego, która kwota jest wyższa.", "-1382702462": "Za przelewy między kontem Deriv w kryptowalucie a kontem Deriv MT5 pobierana jest opłata w wysokości 2% kwoty transferu lub {{minimum_fee}} {{currency}}, w zależności od tego, która kwota jest wyższa.", + "-1995859618": "You may transfer between your Deriv fiat, cryptocurrency, {{platform_name_mt5}}, {{platform_name_derivez}} and {{platform_name_dxtrade}} accounts.", + "-545616470": "Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts, up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts, up to {{ allowed_derivez }} transfers between your Deriv and {{platform_name_derivez}} accounts, and up to {{ allowed_dxtrade }} transfers between your Deriv and {{platform_name_dxtrade}} accounts.", "-1151983985": "Limity przelewów mogą się zmieniać w zależności od kursów wymiany walut.", "-1747571263": "Ten przelew może być niemożliwy do zrealizowania.", "-757062699": "Transfery mogą być niedostępne z powodu wysokiej zmienności lub problemów technicznych oraz w okresie zamknięcia giełd walutowych.", @@ -2631,6 +2635,7 @@ "-328128497": "Finansowe", "-533935232": "Finansowe BVI", "-565431857": "Finansowe Labuan", + "-1290112064": "Deriv EZ", "-1669418686": "AUD/CAD", "-1548588249": "AUD/CHF", "-1552890620": "AUD/JPY", @@ -2745,6 +2750,7 @@ "-1125797291": "Zaktualizowano hasło.", "-157145612": "Zaloguj się przy użyciu zaktualizowanego hasła.", "-1728185398": "Prześlij ponownie potwierdzenie adresu", + "-612396514": "Please resubmit your proof of address.", "-1519764694": "Twoje potwierdzenie adresu zostało zweryfikowane.", "-1961967032": "Prześlij ponownie potwierdzenie tożsamości", "-117048458": "Prześlij potwierdzenie tożsamości.", @@ -2772,6 +2778,10 @@ "-1834929362": "Prześlij mój dokument", "-1043638404": "<0>Weryfikacja dowodu własności <1>nie powiodła się", "-1766760306": "<0><1>Prześlij dokument <2>z poprawnymi danymi.<3>", + "-2142540205": "It appears that the address in your document doesn’t match the address in your Deriv profile. Please update your personal details now with the correct address.", + "-482715448": "Go to Personal details", + "-2072411961": "Your proof of address has been verified", + "-384887227": "Update the address in your profile.", "-1998049070": "Jeśli zgadzasz się na wykorzystywanie przez nas plików cookies, kliknij Akceptuję. <0>Przeczytaj naszą politykę, aby uzyskać więcej informacji.", "-402093392": "Dodaj konto Deriv", "-277547429": "Konto Deriv pozwoli Ci wpłacić (i wypłacić) środki z konta MT5.", @@ -2913,6 +2923,10 @@ "-429248139": "5. Zastrzeżenie", "-818926350": "Komisja Finansowa akceptuje odwołania w ciągu 45 dni od daty zdarzenia i wyłącznie do uprzedniej próbie inwestora rozwiązania sprawy bezpośrednio z firmą.", "-358055541": "Umocnij swoje transakcje dzięki nowym narzędziom", + "-29496115": "We've partnered with Acuity to give you a suite of intuitive trading tools for MT5 so you can keep track of market events and trends, free of charge!<0/><0/>", + "-648669944": "Download the Acuity suite and take advantage of the <1>Macroeconomic Calendar, Market Alerts, Research Terminal, and <1>Signal Centre Trade Ideas without leaving your MT5 terminal.<0/><0/>", + "-794294380": "This suite is only available for Windows, and is most recommended for financial assets.", + "-922510206": "Need help using Acuity?", "-815070480": "Zastrzeżenie: Usługi inwestycyjne i informacje dostarczone przez Acuity nie powinny być interpretowane jako zachęcanie do inwestowania i/lub handlu. Deriv nie oferuje porad inwestycyjnych. Przeszłość nie jest przewodnikiem po przyszłych wynikach, a strategie, które działały w przeszłości, mogą nie działać w przyszłości.", "-2111521813": "Pobierz Acuity", "-175369516": "Witaj w Deriv X", @@ -2968,6 +2982,7 @@ "-712681566": "Wymiana między inwestorami", "-1267880283": "Pole {{field_name}} jest wymagane", "-2084509650": "Pole {{field_name}} ma niewłaściwy format.", + "-222283483": "Account opening reason*", "-1779241732": "Pierwsza linijka adresu jest w nieprawidłowym formacie.", "-188222339": "Nie może przekraczać {{max_number}} znaków.", "-1673422138": "Województwo jest w niewłaściwym formacie.", @@ -2981,13 +2996,15 @@ "-1982499699": "Poznaj {{platform_name_dbot}}", "-1567989247": "Prześlij potwierdzenie tożsamości i adresu", "-184453418": "Wprowadź swoje hasło {{platform}}", - "-1769158315": "prawdziwe", - "-700260448": "demo", - "-1980366110": "Gratulacje, Twoje konto {{{category}} {{platform}} <0>{{type}} zostało utworzone.", + "-393388362": "We’re reviewing your documents. This should take about 1 to 3 days.", "-790488576": "Nie pamiętasz hasła?", "-926547017": "Wprowadź swoje hasło {{platform}}, aby dodać konto {{platform}} {{account}} {{jurisdiction_shortcode}}.", "-1190393389": "Wprowadź swoje hasło {{platform}}, aby dodać konto {{platform}} {{account}}.", "-2057918502": "Wskazówka: Możliwe, że wprowadzono hasło Deriv, które różni się od hasła {{platform}}.", + "-1769158315": "prawdziwe", + "-700260448": "demo", + "-1936102840": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} account. ", + "-1570793523": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} account.", "-1928229820": "Zresetuj hasło inwestora Deriv X", "-1087845020": "główne", "-1950683866": "inwestor", @@ -3013,24 +3030,14 @@ "-161656683": "Obecne hasło inwestora", "-374736923": "Nowe hasło inwestora", "-1793894323": "Utwórz lub resetuj hasło inwestora", - "-1124208206": "Przejdź na swoje konto rzeczywiste, aby utworzyć konto DMT5 {{account_title}} {{type_title}}.", - "-1576792859": "Wymagany jesy dokument potwierdzający tożsamość i adres", - "-104382603": "Sprawdź dokument potwierdzający adres", - "-793684335": "Sprawdź dokument potwierdzający tożsamość", "-1271218821": "Konto dodane", - "-599621079": "Dodaj swoje konto Deriv MT5 {{account_type}} w Deriv (SVG) LLC (firma nr 273 LLC 2020).", - "-1302969276": "Dodaj swoje konto Deriv MT5 {{account_type}} w firmie Deriv (BVI) Ltd, która podlega regulacjom komisji British Virgin Islands Financial Services Commission (Licencja nr SIBA/{{line_break}}L/18/1114).", - "-1422519943": "Dodaj swoje konto DMT5 {{account_type}} w firmie Deriv (V) Ltd, podlegającej regulacjom komisji Vanuatu Financial Services Commission.", - "-1731304187": "Dodaj swoje konto CFD na Deriv MT5 w Deriv Investments (Europe) Limited, podlegającej regulacjom Malta Financial Services Authority (MFSA) (nr licencji. JEST/70156).", - "-16048185": "Aby utworzyć to konto, potrzebujemy potwierdzenia Twojej tożsamości i adresu.", - "-1627989291": "Aby utworzyć to konto, musisz ponownie przesłać potwierdzenie tożsamości.", - "-1389025684": "Aby utworzyć to konto, musisz ponownie przesłać potwierdzenie tożsamości i adresu.", - "-1615750576": "Utworzenie tego konta będzie możliwe po zweryfikowaniu przesłanych dokumentów.", - "-724308541": "Jurysdykcja Twojego konta CFD Deriv MT5", - "-479119833": "Wybierz jurysdykcję dla swojego konta Deriv MT5 {{account_type}}", + "-1576792859": "Wymagany jesy dokument potwierdzający tożsamość i adres", "-1931257307": "Musisz dostarczyć również dokument potwierdzający tożsamość", "-2026018074": "Dodaj swoje konto DMT5 <0>{{account_type_name}} w Deriv (SVG) LLC (firma nr 273 LLC 2020).", "-162320753": "Dodaj swoje konto DMT5 <0>{{account_type_name}} w Deriv (BVI) Ltd, która podlega regulacjom komisji British Virgin Islands Financial Services Commission (Licencja nr. SIBA/L/18/1114).", + "-1731304187": "Dodaj swoje konto CFD na Deriv MT5 w Deriv Investments (Europe) Limited, podlegającej regulacjom Malta Financial Services Authority (MFSA) (nr licencji. JEST/70156).", + "-724308541": "Jurysdykcja Twojego konta CFD Deriv MT5", + "-479119833": "Wybierz jurysdykcję dla swojego konta Deriv MT5 {{account_type}}", "-450424792": "Aby utworzyć prawdziwe konto Deriv MT5, musisz mieć prawdziwe konto (waluta fiducjarna lub kryptowaluta) w Deriv.", "-1760596315": "Załóż konto Deriv", "-705682181": "Malta", diff --git a/packages/translations/src/translations/pt.json b/packages/translations/src/translations/pt.json index 5e4eaf558bce..24858b7f5da4 100644 --- a/packages/translations/src/translations/pt.json +++ b/packages/translations/src/translations/pt.json @@ -70,10 +70,8 @@ "98972777": "item aleatório", "100239694": "Enviar a frente da carteira nacional direto do seu computador", "102226908": "O campo não pode estar vazio", - "107206831": "Analisaremos seus documentos e notificaremos você sobre o status dentro de 1 a 3 dias.", "108916570": "Duração: {{duration}} dias", "109073671": "Por favor, use uma carteira eletrônica que você já usou para depósitos anteriores. Assegure-se de que a carteira eletrônica permite o saque. Veja a lista de carteiras eletrônicas que suportam saques <0>aqui.", - "110261653": "Parabéns, você criou com sucesso sua conta {{category}} <0>{{platform}} <1>{{type}} . Para começar a negociar, transfira fundos de sua conta Deriv para esta conta.", "111215238": "Afaste-se da luz direta", "111718006": "Data final", "111931529": "Máx. entrada total em 7 dias", @@ -182,6 +180,7 @@ "248909149": "Envie um link seguro para o seu telefone", "249908265": "Você é cidadão de {{- residence}}?", "251134918": "Informação da conta", + "251322536": "Contas Deriv EZ", "251445658": "Tema escuro", "251882697": "Obrigado(a)! Sua resposta foi registrada em nosso sistema.<0/><0/> Clique em 'OK' para continuar.", "254912581": "Esse bloco é semelhante ao EMA, exceto pelo fato de fornecer toda a linha EMA com base na lista de entrada e no período especificado.", @@ -197,6 +196,7 @@ "265644304": "Tipos de negociações", "267992618": "As plataformas carecem de recursos ou funcionalidades principais.", "268940240": "Seu saldo ({{format_balance}}{{currency}}) é inferior ao valor mínimo permitido no momento ({{{{format_min_withdraw_amount}}{{currency}}). Por favor, deposite em sua conta para continuar com seu saque.", + "269322978": "Deposite em sua moeda local através do câmbio peer-to-peer com outros traders no seu país.", "269607721": "Enviar", "270339490": "Se você selecionar \"Acima\", receberá o Pagamento se o último dígito do último tick for maior que a sua previsão.", "270610771": "Neste exemplo, o preço de abertura de uma vela é atribuído à variável \"candle_open_price\".", @@ -212,6 +212,7 @@ "278684544": "obter sub-lista de # do final", "282319001": "Verifique sua imagem", "282564053": "Seguindo, iremos precisar de seu comprovante de endereço.", + "283830551": "Seu endereço não corresponde ao seu perfil", "283986166": "A autoexclusão neste site apenas se aplica à sua conta {{brand_website_name}} e não inclui outras empresas ou sites.", "284527272": "anti-moda", "284772879": "Contrato", @@ -245,7 +246,6 @@ "327534692": "O valor da duração não é permitido. Para executar o bot, digite {{min}}.", "328539132": "Repete as instruções dentro do número especificado de vezes", "329404045": "<0>Mude para sua conta real<1> para criar uma {{platform}} {{account_title}} conta.", - "332886946": "<1>Precisa de ajuda para usar a Acuity? <0/>Confira o <2>guia do usuário.", "333456603": "Limites de retirada", "334680754": "Mude para sua conta real para criar uma conta Deriv MT5", "334942497": "Data da compra", @@ -368,7 +368,6 @@ "478280278": "Este bloco exibe uma caixa de diálogo que usa uma mensagem personalizada para solicitar uma entrada. A entrada pode ser uma sequência de texto ou um número e pode ser atribuída a uma variável. Quando a caixa de diálogo é exibida, sua estratégia é pausada e só será retomada depois que você inserir uma resposta e clicar em \"OK\".", "479420576": "Terciário", "481276888": "Sai fora", - "483246914": "Adicione a sua conta Deriv MT5 {{account_type}} STP sob abrigo da Deriv (FX) Ltd regulamentada pela Autoridade de Serviços Financeiros de Labuão (Licença nº MB/18/0024).", "483279638": "Avaliação concluída<0/><0/>", "483591040": "Deletar todos {{ delete_count }} blocos?", "485379166": "Exibir transações", @@ -419,7 +418,6 @@ "551569133": "Saiba mais sobre limites de negociação", "554410233": "Esta é uma das 10 senhas mais comuns", "555351771": "Depois de definir os parâmetros de negociação e as opções de negociação, você pode instruir seu bot a comprar contratos quando condições específicas forem atendidas. Para fazer isso, você pode usar blocos condicionais e blocos de indicadores para ajudar seu bot a tomar decisões.", - "556095366": "Processaremos seus dados em poucos minutos e notificaremos o status via e-mail.", "556264438": "Intervalo de tempo", "559224320": "Nossa clássica ferramenta de \"drag-and-drop\" para a criação de bots, apresentando pop-up de gráficos de negociação, para usuários avançados.", "561982839": "Mude sua moeda", @@ -576,6 +574,7 @@ "745656178": "Use este bloco para vender seu contrato pelo preço de mercado.", "745674059": "Retorna o caractere específico de uma determinada sequência de texto de acordo com a opção selecionada. ", "746112978": "O seu computador pode demorar alguns segundos para atualizar", + "750886728": "Switch to your real account to submit your documents", "751692023": "Nós <0>não garantimos um reembolso se você fizer uma transferência errada.", "752024971": "Número máximo de dígitos atingido", "752633544": "Você precisará enviar comprovante de identidade e endereço quando atingir determinados limites", @@ -790,7 +789,6 @@ "1023643811": "Este bloco compra contrato de um tipo especificado.", "1023795011": "Par/Ímpar", "1024205076": "Operação lógica", - "1024760087": "Você foi verificado para adicionar esta conta", "1025887996": "Proteção contra saldos negativos", "1026046972": "Por favor insira um valor de retorno menor que {{max_payout}}.", "1027098103": "A alavancagem permite negociar uma posição maior usando seu capital existente. A alavancagem varia entre diferentes símbolos.", @@ -874,6 +872,7 @@ "1112582372": "Duração do intervalo", "1113119682": "Este bloco fornece o valor de vela selecionado em uma lista de velas.", "1113292761": "Menos de 8MB", + "1113433728": "Resubmit your proof of identity and address", "1117863275": "Segurança e proteção", "1118294625": "Você optou por se excluir da negociação em nosso site até {{exclusion_end}}. Se você não conseguir fazer uma transação ou depósito após o período de auto-exclusão, entre em contato conosco pelo chat.", "1119887091": "Autenticação", @@ -935,7 +934,6 @@ "1189886490": "Crie outra conta Deriv ou {{platform_name_mt5}}, ou {{platform_name_dxtrade}}.", "1191429031": "Clique no link do e-mail para alterar sua senha da <0>{{platform_name_dxtrade}}.", "1191644656": "Preveja a direção do mercado e selecione \"Acima\" ou \"Abaixo\" para abrir uma posição. Cobraremos uma comissão quando você abrir uma posição.", - "1191778951": "Verifique o seu comprovante de identidade e de residência", "1192708099": "Unidade de duração", "1195393249": "Notificar {{ notification_type }} com som: {{ notification_sound }} {{ input_message }}", "1196006480": "Limite de lucro", @@ -1009,7 +1007,6 @@ "1281290230": "Selecionar", "1282951921": "Sempre Abaixo", "1284522768": "Se \"Perda\" for selecionado, ele retornará \"Verdadeiro\" se sua última negociação não tiver êxito. Caso contrário, ele retornará uma string vazia.", - "1285686014": "Comprovante de revisão de endereço pendente", "1286094280": "Retirar", "1286507651": "Fechar tela de verificação de identidade", "1288965214": "Passaporte", @@ -1105,7 +1102,6 @@ "1384222389": "Envie documentos de identidade válidos para desbloquear o caixa.", "1385418910": "Defina uma moeda para sua conta real existente antes de criar outra conta.", "1387503299": "Conectar-se", - "1388770399": "Comprovante de identidade obrigatório", "1389197139": "Erro de importação", "1390792283": "Parâmetros de Negociação", "1391174838": "Retorno potencial:", @@ -1118,6 +1114,7 @@ "1396417530": "Índice Bear Market", "1397628594": "Fundos insuficientes", "1399620764": "Somos obrigados por lei a solicitar suas informações financeiras.", + "1400341216": "We’ll review your documents and notify you of its status within 1 to 3 days.", "1400637999": "(Todos os campos são necessários)", "1400732866": "Vista da câmera", "1400962248": "Fechar-Alto", @@ -1263,9 +1260,11 @@ "1584109614": "Lista String Ticks", "1584578483": "Mais de 50 ativos: forex, ações, índices de ações, índices sintéticos e criptomoedas.", "1584936297": "O arquivo XML contém elementos não suportados. Por favor, verifique ou modifique o arquivo.", + "1585859194": "Cobraremos uma taxa de transferência de 1% para transferências em moedas diferentes entre as suas contas Deriv fiduciárias e {{platform_name_mt5}}, as suas contas Deriv fiduciárias e {{platform_name_derivez}} da Deriv, e suas contas Deriv fiduciárias e {{platform_name_dxtrade}} da Deriv.", "1587046102": "Os documentos desse país não são atualmente suportados - tente outro tipo de documento ", "1589640950": "A revenda deste contrato não é oferecida.", "1589702653": "Comprovante de endereço", + "1591933071": "Resubmit document", "1593010588": "Faça o login agora", "1594147169": "Por favor volte em", "1594322503": "Venda está disponível", @@ -1280,7 +1279,6 @@ "1605222432": "Não tenho nenhum conhecimento e/ou experiência em negociação.", "1605292429": "Máx. perda total", "1612105450": "Obter substring", - "1613273139": "Envie seu comprovante de identidade e endereço", "1613633732": "O intervalo deve ser entre 10-60 minutos", "1615897837": "Período EMA De Sinal {{ input_number }}", "1618809782": "Retirada mín.", @@ -1324,7 +1322,6 @@ "1665272539": "Lembre-se: Você não pode fazer login em sua conta até a data selecionada.", "1665738338": "Saldo", "1665756261": "Vá para o chat", - "1667395210": "Seu comprovante de identidade foi enviado com sucesso", "1668138872": "Modificar configurações da conta", "1670016002": "Multiplicadores: {{ multiplier }}", "1670426231": "Hora final", @@ -1349,6 +1346,7 @@ "1694517345": "Insira um novo endereço de e-mail", "1695807119": "Não foi possível carregar os blocos do Google Drive", "1700233813": "A transferência de {{selected_value}} não é permitida, escolha outra conta no menu suspenso", + "1701447705": "Por favor, atualize o seu endereço", "1704656659": "Quanta experiência você tem na negociação de CFD?", "1708413635": "Para sua {{currency_name}} conta ({{currency}})", "1709859601": "Hora do preço de saída", @@ -1419,6 +1417,7 @@ "1778893716": "Clique aqui", "1779519903": "Deve ser um número válido.", "1780770384": "Esse bloco fornece uma fração aleatória entre 0,0 e 1,0.", + "1781393492": "Não cobramos uma taxa de transferência para transferências na mesma moeda entre as suas contas Deriv fiduciárias e Deriv {{platform_name_mt5}}, as suas contas Deriv fiduciárias e {{platform_name_derivez}} e as suas contas Deriv fiduciárias e {{platform_name_dxtrade}}.", "1782308283": "Estratégia rápida", "1782395995": "Previsão do Último Dígito", "1782690282": "Menu de Blocos", @@ -1429,6 +1428,7 @@ "1788966083": "01-07-1999", "1789497185": "Certifique-se de que todos os detalhes da seu passaporte estejam visíveis, sem borrões ou reflexos", "1790770969": "Pares de Forex Principais (lotes padrão/micro), Pares de Forex Menores, Commodities, Criptomoedas", + "1791017883": "Confira este <0>guia do usuário.", "1791432284": "Pesquise por país", "1791971912": "Recente", "1793913365": "Para depositar dinheiro, mude para sua conta {{currency_symbol}}.", @@ -1549,6 +1549,7 @@ "1918832194": "Nenhuma experiência", "1919030163": "Dicas para tirar uma boa selfie", "1919594496": "O {{website_name}} não é afiliado a nenhum Agente de Pagamento. Os clientes lidam com os agentes de pagamento por seu próprio risco. Os clientes são aconselhados a verificar as credenciais dos agentes de pagamento e a precisão de qualquer informação sobre os agentes de pagamento (no Deriv ou em outro local) antes de transferir fundos.", + "1919694313": "To start trading, transfer funds from your Deriv account into this account.", "1920217537": "Comparar", "1920468180": "Como usar o Bloco SMA", "1921634159": "\nAlguns detalhes pessoais", @@ -1655,6 +1656,7 @@ "2037481040": "Escolha um método de pagamento para depositar", "2037665157": "Expandir Todos Blocos", "2037906477": "obter sub-lista de #", + "2042023623": "We’re reviewing your documents. This should take about 5 minutes.", "2042050260": "- Preço de compra: o preço de compra (Entrada) do contrato", "2042115724": "Carregue uma captura de tela da sua conta e da página de dados pessoais com o seu nome, o número da conta, o número de telefone e o e-mail.", "2042778835": "Esta política de reclamações, que pode mudar de tempos em tempos, se aplica às suas conta registradas com {{legal_entity_name}}.", @@ -2002,7 +2004,7 @@ "-1543016582": "Confirmo, pela presente, que as informações fiscais que forneci são verdadeiras e completas. Também irei informar a {{legal_entity_name}} sobre quaisquer alterações a estas informações.", "-1387062433": "Motivo de abertura de conta", "-1088324715": "Analisaremos seus documentos e lhe notificaremos sobre seu status dentro de 1 a 3 dias.", - "-684271315": "OK", + "-329713179": "Ok", "-1176889260": "Por favor, selecione um tipo de documento.", "-1515286538": "Por favor, digite o número de seu documento. ", "-1785463422": "Verifique sua identidade", @@ -2016,7 +2018,6 @@ "-841187054": "Tente novamente", "-2097808873": "Não foi possível verificar sua identidade com os detalhes que você forneceu. ", "-228284848": "Não foi possível verificar sua identidade com os detalhes que você forneceu.", - "-1443800801": "Seu número de identidade foi enviado com sucesso", "-1391934478": "Seu identidade foi verificada. Você também precisará enviar um comprovante de endereço.", "-118547687": "Verificação de identidade concluída", "-200989771": "Ir para detalhes pessoais", @@ -2045,7 +2046,6 @@ "-813779897": "A verificação da certidão de propriedade foi aprovada.", "-1389323399": "Você deve inserir caracteres {{min_number}}{{max_number}}.", "-1313806160": "Solicite uma nova senha e verifique seu e-mail para obter o novo token.", - "-329713179": "Ok", "-1598167506": "Sucesso", "-1077809489": "Você tem uma nova senha {{platform}} para fazer login em suas contas {{platform}} na web e aplicativos móveis.", "-2068479232": "Senha da {{platform}}", @@ -2093,6 +2093,7 @@ "-680528873": "A sua conta será aberta na {{legal_entity_name}} e estará sujeita às leis de Samoa.", "-1125193491": "Adicionar conta", "-2068229627": "Não sou um PEP e não tenho sido nos últimos 12 meses.", + "-684271315": "OK", "-1720468017": "Ao fornecer os nossos serviços a você, nós precisamos obter informações suas para avaliar se um determinado produto ou serviço é apropriado para você.", "-186841084": "Altere seu e-mail de login", "-907403572": "Para alterar seu endereço de e-mail, primeiro você precisa desvincular seu endereço de e-mail da sua conta {{identifier_title}}.", @@ -2225,6 +2226,7 @@ "-38915613": "Alterações não salvas", "-2137450250": "Você tem alterações não salvas. Tem certeza de que deseja descartar as alterações e sair desta página?", "-1067082004": "Sair das Configurações", + "-1982432743": "Parece que o endereço em seu documento não corresponde ao endereço\n no seu perfil Deriv. Atualize agora os seus dados pessoais com o\n endereço correto.", "-1451334536": "Volte para as negociações", "-1525879032": "Seus documentos para comprovação de endereço expiraram. Por favor envie novamente.", "-1425489838": "Prova de verificação de endereço não necessária", @@ -2243,7 +2245,6 @@ "-639677539": "Compre criptomoedas", "-1560098002": "Compre criptomoedas através da Fiat Onramp", "-541870313": "Depósito via Agente de Pagamento", - "-72314872": "Deposite em sua moeda local por meio de câmbio ponto a ponto com outros negociadores em seu país.", "-58126117": "Seu acesso simples à Crypto. Maneira rápida e segura de trocar e comprar criptomoedas. Suporte por chat ao vivo 24 horas por dia, 7 dias por semana.", "-1705887186": "Seu depósito foi realizado com sucesso.", "-142361708": "Em processo", @@ -2345,8 +2346,11 @@ "-2056016338": "Não será cobrada uma taxa de transferência para transferências na mesma moeda entre suas contas Deriv fiduciária e {{platform_name_mt5}}.", "-599632330": "Cobraremos uma taxa de transferência de 1% para transferências em diferentes moedas entre suas contas Deriv fiat e {{platform_name_mt5}} e entre suas contas Deriv fiat e {{platform_name_dxtrade}}.", "-1196994774": "Cobraremos uma taxa de transferência de 2% ou {{minimum_fee}} {{currency}}, o que for maior, para transferências entre suas contas em criptomoeda Deriv.", + "-1361372445": "Cobraremos uma taxa de transferência de 2% ou {{minimum_fee}} {{currency}}, o que for maior, para transferências entre as suas contas Deriv de criptomoeda e Deriv MT5, as suas contas Deriv de criptomoeda e {{platform_name_derivez}}, e as suas contas Deriv de criptomoeda e {{platform_name_dxtrade}}.", "-993556039": "Cobraremos uma taxa de transferência de 2% ou {{minimum_fee}}{{currency}}, o que for mais alto, para transferências entre suas contas Deriv criptomoeda e Deriv MT5 e entre suas contas Deriv criptomoeda e {{platform_name_dxtrade}}.", "-1382702462": "Cobraremos uma taxa de transferência de 2% ou {{minimum_fee}} {{currency}}, o que for maior, para transferências entre sua criptomoeda Deriv e contas Deriv MT5.", + "-1995859618": "Você pode realizar transferências entre as suas contas Deriv fiduciárias, de criptomoedas, {{platform_name_mt5}}, {{platform_name_derivez}} e {{platform_name_dxtrade}} da Deriv.", + "-545616470": "Todos os dias, você pode efetuar até {{ allowed_internal }} transferências entre suas contas Deriv, até {{ allowed_mt5 }} transferência entre suas contas Deriv e {{platform_name_mt5}} , até {{ allowed_derivez }} transferências entre suas contas Deriv e {{platform_name_derivez}} e até {{ allowed_dxtrade }} transferências entre suas contas Deriv e {{platform_name_dxtrade}} .", "-1151983985": "Os limites de transferência podem variar dependendo das taxas de câmbio.", "-1747571263": "Lembre-se de que algumas transferências podem não ser possíveis.", "-757062699": "As transferências podem não estar disponíveis devido à alta volatilidade ou problemas técnicos e quando os mercados de câmbio estão fechados.", @@ -2631,6 +2635,7 @@ "-328128497": "Financeira", "-533935232": "Financeira BVI", "-565431857": "Financeira Labuan", + "-1290112064": "Deriv EZ", "-1669418686": "AUD/CAD", "-1548588249": "AUD/CHF", "-1552890620": "AUD/JPY", @@ -2745,6 +2750,7 @@ "-1125797291": "Senha atualizada.", "-157145612": "Faça login com sua senha atualizada.", "-1728185398": "Reenviar comprovante de endereço", + "-612396514": "Please resubmit your proof of address.", "-1519764694": "Seu comprovante de endereço foi verificado.", "-1961967032": "Reenviar comprovante de identidade", "-117048458": "Por favor envie seu comprovante de identidade.", @@ -2772,6 +2778,10 @@ "-1834929362": "Carregar meu documento", "-1043638404": "<1>Falha na verificação da certidão de <0>propriedade", "-1766760306": "<0><1>Carregue o seu documento <2>com os dados corretos.<3>", + "-2142540205": "Parece que o endereço em seu documento não corresponde ao endereço no seu perfil Deriv. Atualize agora os seus dados pessoais com o endereço correto.", + "-482715448": "Ir para Dados Pessoais", + "-2072411961": "Seu comprovante de residência foi verificado", + "-384887227": "Atualize o endereço no seu perfil.", "-1998049070": "Se você concorda com o uso de cookies, clique em Aceitar. Para mais informações, <0>consulte nossa política.", "-402093392": "Adicionar conta Deriv", "-277547429": "Uma conta Deriv permitirá que você deposite (e retire) em sua conta MT5.", @@ -2913,6 +2923,10 @@ "-429248139": "5. Isenção de responsabilidade", "-818926350": "A Comissão Financeira aceita recursos por 45 dias após a data do incidente e somente após o negociador ter tentado resolver o problema diretamente com a empresa.", "-358055541": "Potencialize as suas negociações com novas ferramentas incríveis", + "-29496115": "Fizemos uma parceria com a Acuity para oferecer a você um conjunto de ferramentas de negociação intuitivas para o MT5, para que você possa acompanhar os eventos e as tendências do mercado, gratuitamente! <0/><0/>", + "-648669944": "Baixe o pacote Acuity e aproveite o <1>Calendário Macroeconômico, os Alertas de Mercado, o Terminal de Pesquisa e as <1>Signal Centre Trade Ideas sem sair do terminal MT5.<0/><0/>", + "-794294380": "Esse pacote está disponível somente para Windows e é mais recomendado para ativos financeiros.", + "-922510206": "Precisa de ajuda para usar o Acuity?", "-815070480": "Aviso Legal: Os serviços de negociação e as informações fornecidas pela Acuity não devem ser interpretados como uma solicitação para investir e/ou negociar. A Deriv não oferece consultoria de investimento. O passado não é um guia para o desempenho futuro, e as estratégias que funcionaram no passado podem não funcionar no futuro.", "-2111521813": "Baixar a Acuity", "-175369516": "Bem-vindo à Deriv X", @@ -2968,6 +2982,7 @@ "-712681566": "Câmbio peer-to-peer", "-1267880283": "{{field_name}} é obrigatório", "-2084509650": "{{field_name}} não está no formato apropriado.", + "-222283483": "Account opening reason*", "-1779241732": "A primeira linha de endereço não está no formato apropriado.", "-188222339": "Isso não deve exceder {{max_number}} caracteres.", "-1673422138": "Estado não está no formato adequado.", @@ -2981,13 +2996,15 @@ "-1982499699": "Explorar {{platform_name_dbot}}", "-1567989247": "Envie seu comprovante de identidade e endereço", "-184453418": "Digite sua senha da {{platform}}", - "-1769158315": "real", - "-700260448": "demo", - "-1980366110": "Parabéns, você criou com sucesso sua conta {{category}} <0>{{platform}} <1>{{type}} .", + "-393388362": "We’re reviewing your documents. This should take about 1 to 3 days.", "-790488576": "Esqueceu a senha?", "-926547017": "Digite sua senha da {{platform}} para adicionar uma conta da {{platform}}{{account}}.", "-1190393389": "Digite sua senha da {{platform}} para adicionar uma conta da {{platform}}{{account}}.", "-2057918502": "Dica: você pode ter inserido sua senha Deriv, que é diferente de sua senha da {{platform}}.", + "-1769158315": "real", + "-700260448": "demo", + "-1936102840": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} account. ", + "-1570793523": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} account.", "-1928229820": "Redefinir a senha do investidor da Deriv X", "-1087845020": "principal", "-1950683866": "investidor", @@ -3013,24 +3030,14 @@ "-161656683": "Senha atual do investidor", "-374736923": "Nova senha do investidor", "-1793894323": "Criar ou redefinir a senha do investidor", - "-1124208206": "Mude para a sua conta real para criar uma conta DMT5 {{type_title}}{{account_title}}.", - "-1576792859": "Comprovante de identidade e endereço são necessários", - "-104382603": "Verifique o seu comprovante de residência", - "-793684335": "Verifique o seu comprovante de identidade", "-1271218821": "Conta adicionada", - "-599621079": "Adicione a sua conta Deriv MT5 {{account_type}} sob abrigo da Deriv (SVG) LLC (empresa nº 273 LLC 2020).", - "-1302969276": "Adicione a sua conta Deriv MT5 {{account_type}} sob abrigo da Deriv (BVI) Ltd, regulamentada pela Comissão de Serviços Financeiros das Ilhas Virgens Britânicas (Licença nº SIBA/{{line_break}}L/18/1114).", - "-1422519943": "Adicione a sua conta DMT5 {{account_type}} sob abrigo da Deriv (V) Ltd, regulamentada pela Comissão de Serviços Financeiros de Vanuatu.", - "-1731304187": "Adicione sua conta de CFDs DMT5 sob a Deriv Investments (Europe) Limited regulamentada pela Autoridade de Serviços Financeiros de Malta (MFSA) (licença nº. EU/70156).", - "-16048185": "Para criar essa conta, primeiro precisamos do seu comprovante de identidade e endereço.", - "-1627989291": "Para criar essa conta, primeiro precisamos que você reenvie seu comprovante de identidade.", - "-1389025684": "Para criar essa conta, primeiro precisamos que você reenvie seu comprovante de identidade e endereço.", - "-1615750576": "Você poderá abrir essa conta assim que os documentos enviados forem verificados.", - "-724308541": "Jurisdição para sua conta de CFDs DMT5", - "-479119833": "Escolha uma jurisdição para sua conta DMT5 {{account_type}}", + "-1576792859": "Comprovante de identidade e endereço são necessários", "-1931257307": "Você também deve enviar um comprovante de identidade", "-2026018074": "Adicione sua conta DMT5 {{account_type}} em Deriv (SVG) LLC (empresa nº 273 LLC 2020).", "-162320753": "Adicione sua conta DMT5 {{account_type_name}} sob Deriv (BVI) Ltd, regulamentada pela Comissão de Serviços Financeiros das Ilhas Virgens Britânicas (Licença nº. SIBA/{}L/0/0).", + "-1731304187": "Adicione sua conta de CFDs DMT5 sob a Deriv Investments (Europe) Limited regulamentada pela Autoridade de Serviços Financeiros de Malta (MFSA) (licença nº. EU/70156).", + "-724308541": "Jurisdição para sua conta de CFDs DMT5", + "-479119833": "Escolha uma jurisdição para sua conta DMT5 {{account_type}}", "-450424792": "Você precisa de uma conta real (moeda fiduciária ou criptomoeda) na Deriv para criar uma conta DMT5 real.", "-1760596315": "Crie uma conta Deriv", "-705682181": "Malta", diff --git a/packages/translations/src/translations/ru.json b/packages/translations/src/translations/ru.json index 49d90352585e..ccc41002e19c 100644 --- a/packages/translations/src/translations/ru.json +++ b/packages/translations/src/translations/ru.json @@ -70,10 +70,8 @@ "98972777": "случайный элемент", "100239694": "Загрузите лицевую сторону карты со своего компьютера", "102226908": "Поле не может быть пустым", - "107206831": "Мы проверим ваш документ и сообщим об их статусе в течение 1-3 дней.", "108916570": "Длительность: {{duration}} дн.", "109073671": "Используйте тот же электронный кошелек, который использовали для пополнения счета. Убедитесь, что электронный кошелек поддерживает вывод средств. Список поддерживаемых электронных кошельков можно найти <0>здесь.", - "110261653": "Поздравляем, вы успешно открыли счет {{category}} {{platform}} <0>{{type}} {{jurisdiction_selected_shortcode}}. Чтобы начать торговлю, переведите средства со своего счета Deriv на этот счет.", "111215238": "Отойдите от прямого света", "111718006": "Дата окончания", "111931529": "Макс. общая ставка за 7 дней", @@ -182,6 +180,7 @@ "248909149": "Отправьте защищенную ссылку на свой телефон", "249908265": "Вы гражданин {{- residence}}?", "251134918": "Информация о счете", + "251322536": "Счета Deriv EZ", "251445658": "Темная тема", "251882697": "Спасибо! Ваш ответ записан в нашу систему.<0/><0/> Нажмите «ОК», чтобы продолжить.", "254912581": "Этот блок дает вам линию EMA, построенную на основе выбранного периода и списка значений.", @@ -197,6 +196,7 @@ "265644304": "Типы контрактов", "267992618": "Платформы недостаточно функциональны.", "268940240": "Ваш баланс ({{format_balance}} {{currency}}) меньше текущей минимально допустимой суммы вывода ({{format_min_withdraw_amount}} {{currency}}). Пополните счет, чтобы продолжить вывод средств.", + "269322978": "Пополняйте счет в местной валюте через одноранговый обмен с другими трейдерами в вашей стране.", "269607721": "Загрузить", "270339490": "Если вы выбираете \"Больше\", вы выигрываете, если последняя десятичная последней котировки будет больше вашего прогноза.", "270610771": "В этом примере цена открытия свечи присваивается переменной \"candle_open_price\".", @@ -212,6 +212,7 @@ "278684544": "получить подсписок от # с конца", "282319001": "Проверьте свое изображение", "282564053": "Далее нам понадобится ваше подтверждение адреса.", + "283830551": "Адрес не совпадает с указанным в профиле", "283986166": "Самоисключение на этом сайте применимо только к вашему счету {{brand_website_name}} и не распространяется на другие сайты или компании.", "284527272": "антимода", "284772879": "Контракт", @@ -245,7 +246,6 @@ "327534692": "Недопустимое значение длительности. Для запуска бота, пожалуйста, введите {{min}}.", "328539132": "Повторяет находящиеся в нем инструкции указанное количество раз", "329404045": "<0>Перейдите на реальный счет,<1> чтобы открыть {{account_title}} счет {{platform}}.", - "332886946": "<1>Нужна помощь с Acuity? <0/>Ознакомьтесь с <2>руководством пользователя.", "333456603": "Лимиты на вывод", "334680754": "Перейдите на свой реальный счет, чтобы открыть счет Deriv MT5", "334942497": "Время покупки", @@ -368,7 +368,6 @@ "478280278": "Этот блок отображает диалоговое окно с настраиваемым сообщением для запроса ввода. Ввод может быть либо текстовой строкой, либо числом и может быть назначен переменной. Когда отобразится диалоговое окно, ваша стратегия будет приостановлена и возобновится только после ввода ответа и нажатия «ОК».", "479420576": "Высшее", "481276888": "Выйдет за пределы", - "483246914": "Этот {{account_type}} STP счет Deriv MT5 будет открыт в Deriv (FX). Компания регулируется управлением финансовых услуг Лабуана (лицензия # MB/18/0024).", "483279638": "Оценка завершена<0/><0/>", "483591040": "Удалить блоки ({{ delete_count }})?", "485379166": "Смотреть транзакции", @@ -419,7 +418,6 @@ "551569133": "Узнайте больше о торговых лимитах", "554410233": "Это один из 10 наиболее распространенных паролей.", "555351771": "После определения торговых параметров и опций, вы можете проинструктировать своего бота покупать контракты при соблюдении определенных условий. Используйте условные блоки и блоки индикаторов, чтобы помочь вашему боту принимать решения.", - "556095366": "Мы обработаем ваши данные в течение нескольких минут и сообщим их статус по электронной почте.", "556264438": "Врем. интервал", "559224320": "Наш классический инструмент “drag-and-drop” для создания торговых ботов с всплывающими торговыми графиками для опытных пользователей.", "561982839": "Изменить валюту", @@ -566,7 +564,7 @@ "724203548": "Вы можете отправить жалобу на платформу <0>онлайн-урегулирования споров (ODR) Европейской Комиссии. Это не относится к клиентам из Великобритании.", "728042840": "Чтобы продолжить торговать у нас, пожалуйста, подтвердите свое место жительства.", "728824018": "Испанский индекс", - "729651741": "Выберите фотографию", + "729651741": "Выберите фото", "730473724": "Этот блок выполняет логическую операцию «И» или «ИЛИ» с заданными значениями.", "731382582": "BNB/USD", "734390964": "Недостаточно средств на счете", @@ -576,6 +574,7 @@ "745656178": "Используйте этот блок, чтобы продать контракт по рыночной цене.", "745674059": "Возвращает определенный символ из заданной строки текста в соответствии с выбранной опцией. ", "746112978": "Вашему компьютеру может потребоваться несколько секунд на обновление.", + "750886728": "Switch to your real account to submit your documents", "751692023": "Мы <0>не гарантируем возврат средств в случае ошибочного перевода.", "752024971": "Достигнуто максимальное количество цифр", "752633544": "Нужно будет предоставить подтверждение личности и адреса, как только вы достигнете определенных порогов", @@ -704,12 +703,12 @@ "905227556": "Надежный пароль состоит как минимум из 8 знаков и комбинации чисел, строчных и заглавных букв.", "905564365": "CFD на MT5", "906049814": "Мы проверим ваши документы и сообщим об их статусе в течение 5 минут.", - "907680782": "Подтверждение права собственности не удалось", + "907680782": "Не удалось подтвердить право собственности", "910888293": "Слишком много попыток", "915735109": "Вернуться на {{platform_name}}", "918447723": "Реальный", "920125517": "Добавить демо-счет", - "921901739": "- данные вашего банковского счета, привязанного к вашему счету", + "921901739": "- данные банковского счета, привязанного к вашему счету", "924046954": "Загрузите документ с вашим именем и номером банковского счета или реквизитами счета.", "926813068": "Фиксированный/переменный", "929608744": "Вы не можете выводить средства", @@ -778,7 +777,7 @@ "1006664890": "Беззвучный", "1009032439": "За все время", "1010198306": "Этот блок создает список со строками и числами.", - "1010337648": "Нам не удалось проверить ваше подтверждение права собственности.", + "1010337648": "Нам не удалось подтвердить ваше право собственности.", "1012102263": "Вы не сможете войти на свой счет до этой даты (до 6 недель с сегодняшнего дня).", "1015201500": "Определите параметры контракта, такие как длительность и ставка.", "1016220824": "Вам нужно перейти на реальный счет, чтобы использовать эту функцию.<0/>Вы можете сделать это в <1>меню переключения счетов.", @@ -790,7 +789,6 @@ "1023643811": "Этот блок покупает контракт указанного типа.", "1023795011": "Чётное/Нечётное", "1024205076": "Логическая операция", - "1024760087": "Вы прошли проверку и можете добавить этот счет", "1025887996": "Защита от отрицательного баланса", "1026046972": "Введите сумму выплаты ниже {{max_payout}}.", "1027098103": "Кредитное плечо дает вам возможность торговать большую позицию, используя ваш существующий капитал. Кредитное плечо варьируется в зависимости от инструмента.", @@ -855,7 +853,7 @@ "1086118495": "Центр трейдера", "1088138125": "Тик {{current_tick}} - ", "1089085289": "Номер мобильного телефона", - "1096078516": "Мы рассмотрим ваши документы и уведомим вас о их статусе в течение 3 дней.", + "1096078516": "Мы рассмотрим ваши документы и уведомим вас об их статусе в течение 3 дней.", "1096175323": "Вам понадобится счет Deriv", "1098147569": "Приобретайте товары или акции компании.", "1098622295": "«i» начинается со значения 1 и увеличивается на 2 в каждом повторении. Цикл будет повторяться до тех пор, пока «i» не достигнет значения 12, и затем цикл будет прерван.", @@ -874,6 +872,7 @@ "1112582372": "Интервал длительности", "1113119682": "Этот блок отображает значение выбранной свечи из списка свечей.", "1113292761": "Менее 8MB", + "1113433728": "Resubmit your proof of identity and address", "1117863275": "Безопасность", "1118294625": "Вы решили исключить себя из торговли на нашем сайте до {{exclusion_end}}. Если вы не можете купить контракт или пополнить счет после периода самоисключения, свяжитесь с нами через чат.", "1119887091": "Подтверждение", @@ -935,7 +934,6 @@ "1189886490": "Откройте еще один счет Deriv, {{platform_name_mt5}} или {{platform_name_dxtrade}}.", "1191429031": "Нажмите на ссылку в письме, чтобы изменить пароль <0>{{platform_name_dxtrade}}.", "1191644656": "Спрогнозируйте направление рынка и выберите «Вверх» или «Вниз», чтобы открыть позицию. Мы будем взимать комиссию, когда вы открываете позицию.", - "1191778951": "Проверьте подтверждение личности и адреса", "1192708099": "Единица длительности", "1195393249": "Уведомить {{ notification_type }} со звуком: {{ notification_sound }} {{ input_message }}", "1196006480": "Предельная прибыль", @@ -946,7 +944,7 @@ "1201773643": "числовой", "1203297580": "Этот блок отправляет сообщение в Telegram-канал.", "1204223111": "В этом примере цены открытия из списка свечей присваиваются переменной с именем \"candle_list\".", - "1206227936": "Как замаскировать карту?", + "1206227936": "Как скрыть карту?", "1206821331": "Вооруженные силы", "1208729868": "Тики", "1208903663": "Неверный ключ", @@ -1009,7 +1007,6 @@ "1281290230": "Выбрать", "1282951921": "Только вниз", "1284522768": "Если выбран «Убыток», он вернет «Верно», если ваш последний контракт был неудачным. В противном случае он вернет пустую строку.", - "1285686014": "Ожидает проверки подтверждения личности", "1286094280": "Вывод", "1286507651": "Закройте экран подтверждения личности", "1288965214": "Паспорт", @@ -1105,7 +1102,6 @@ "1384222389": "Предоставьте действительные документы, удостоверяющие личность, чтобы разблокировать кассу.", "1385418910": "Пожалуйста, установите валюту для существующего реального счета, прежде чем открыть другой счет.", "1387503299": "Вход", - "1388770399": "Необходимо подтверждение личности", "1389197139": "Ошибка импорта", "1390792283": "Параметры контракта", "1391174838": "Потенциальная выплата:", @@ -1118,6 +1114,7 @@ "1396417530": "Индекс медвежьего рынка", "1397628594": "Недостаточно средств", "1399620764": "Мы юридически обязаны запросить вашу финансовую информацию.", + "1400341216": "We’ll review your documents and notify you of its status within 1 to 3 days.", "1400637999": "(Все поля обязательны для заполнения)", "1400732866": "Вид с камеры", "1400962248": "Макс.-Закрытие", @@ -1192,7 +1189,7 @@ "1481977420": "Помогите нам верифицировать ваш запрос на вывод средств.", "1484336612": "Этот блок используется для завершения или продолжения цикла и может быть размещен в любом месте блока цикла.", "1487086154": "Ваши документы успешно отправлены", - "1488548367": "Загрузите снова", + "1488548367": "Загрузить снова", "1490583127": "DBot пока не готов к использованию на реальных счетах", "1491392301": "<0>Продано за: {{sold_for}}", "1492686447": "Ваш счет MT5 Финансовый STP будет открыт в Deriv (FX) Ltd. Все операции на этом счете регулируются правилами и руководящими принципами Управления финансовых услуг Лабуана (LFSA). Правила и принципы Управления финансовых услуг Лабуана (LFSA) не распространяются ни на один из ваших других счетов, включая счет Deriv.", @@ -1234,7 +1231,7 @@ "1540585098": "Отклонить", "1541969455": "Оба", "1544642951": "Выбрав \"Только вверх\", вы получите выплату, если несколько тиков подряд будут расти по отношению к котировке на входе. Если любой тик покажет снижение или будет равен одному из предыдущих тиков, вы не получите выплату.", - "1547148381": "Этот файл слишком велик (разрешено не более 8 МБ). Пожалуйста, загрузите еще один файл.", + "1547148381": "Файл слишком большой (разрешено не более 8 МБ). Попробуйте другой файл.", "1548765374": "Не удалось верифицировать номер документа", "1549098835": "Общая сумма вывода", "1551172020": "Индекс AUD", @@ -1263,9 +1260,11 @@ "1584109614": "Строка тиков Список", "1584578483": "50+ активов: forex, акции, криптовалюты, фондовые и синтетические индексы.", "1584936297": "XML-файл содержит неподдерживаемые элементы. Пожалуйста, перепроверьте или отредактируйте файл.", + "1585859194": "We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts, your Deriv fiat and {{platform_name_derivez}} accounts, and your Deriv fiat and {{platform_name_dxtrade}} accounts.", "1587046102": "Документы из этой страны в настоящее время не поддерживаются - попробуйте другой тип документа", "1589640950": "Перепродажа этого контракта невозможна.", "1589702653": "Подтверждение адреса", + "1591933071": "Resubmit document", "1593010588": "Войти", "1594147169": "Пожалуйста, зайдите через", "1594322503": "Продажа доступна", @@ -1280,7 +1279,6 @@ "1605222432": "У меня вообще нет знаний и опыта в торговле.", "1605292429": "Макс. размер потерь", "1612105450": "Получить подстроку", - "1613273139": "Отправьте подтверждение личности и адреса повторно", "1613633732": "Интервал должен быть от 10 до 60 минут", "1615897837": "Период сигнальной EMA {{ input_number }}", "1618809782": "Максимальный вывод", @@ -1324,7 +1322,6 @@ "1665272539": "Помните: вы не сможете войти на свой счет до выбранной даты.", "1665738338": "Баланс", "1665756261": "Перейти в чат", - "1667395210": "Документ, удостоверяющий вашу личность, получен", "1668138872": "Изменить настройки счета", "1670016002": "Мультипликатор: {{ multiplier }}", "1670426231": "Время окончания", @@ -1349,6 +1346,7 @@ "1694517345": "Введите новый адрес эл. почты", "1695807119": "Не удалось загрузить блоки из Google Drive", "1700233813": "Перевод с {{selected_value}} не разрешен. Выберите другой счет из выпадающего списка.", + "1701447705": "Пожалуйста, обновите адрес", "1704656659": "Какой у вас опыт торговли CFD?", "1708413635": "Для вашего счета в {{currency_name}} ({{currency}})", "1709859601": "Время выходной котировки", @@ -1419,6 +1417,7 @@ "1778893716": "Нажмите здесь", "1779519903": "Введите правильное число.", "1780770384": "Этот блок дает вам случайную долю от 0.0 до 1.0.", + "1781393492": "We do not charge a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts, your Deriv fiat and {{platform_name_derivez}} accounts and your Deriv fiat and {{platform_name_dxtrade}} accounts.", "1782308283": "Быстрая стратегия", "1782395995": "Прогноз последней десятичной", "1782690282": "Меню блоков", @@ -1429,11 +1428,12 @@ "1788966083": "01-07-1999", "1789497185": "Убедитесь, что паспортные данные четко видны, читаемы, без размытия или бликов.", "1790770969": "Основные валютные пары (стандартные/микро лоты), минорные валютные пары, сырьевые товары, криптовалюты", + "1791017883": "Check out this <0>user guide.", "1791432284": "Искать страну", "1791971912": "Недавние", "1793913365": "Чтобы внести средства, перейдите на свой счет {{currency_symbol}}.", "1794815502": "Загрузить историю транзакций.", - "1796787905": "Пожалуйста, загрузите следующие документы.", + "1796787905": "Загрузите следующие документы.", "1798943788": "Вы можете делать только депозиты.", "1801093206": "Получить список свечей", "1801927731": "счета {{platform_name_dxtrade}}", @@ -1549,6 +1549,7 @@ "1918832194": "Нет опыта", "1919030163": "Советы, как сделать хорошее селфи", "1919594496": "{{website_name}} не связан ни с одним платежным агентом. Клиенты имеют дело с платежными агентами на свой страх и риск. Клиентам рекомендуется проверять учетные данные платежных агентов и достоверность любой информации о платежных агентах (на {{website_name}} или в другом месте), прежде чем пользоваться их услугами.", + "1919694313": "To start trading, transfer funds from your Deriv account into this account.", "1920217537": "Сравнить", "1920468180": "Как пользоваться блоком SMA", "1921634159": "Некоторые личные данные", @@ -1655,8 +1656,9 @@ "2037481040": "Выберите способ пополнить счет", "2037665157": "Развернуть все блоки", "2037906477": "получить подсписок из #", + "2042023623": "We’re reviewing your documents. This should take about 5 minutes.", "2042050260": "- Цена покупки: цена покупки (ставка) контракта", - "2042115724": "Загрузите скриншот своей учетной записи и страницы личных данных со своим именем, номером счета, номером телефона и адресом электронной почты.", + "2042115724": "Загрузите скриншот своего счета и страницы личных данных со своим именем, номером счета, номером телефона и адресом электронной почты.", "2042778835": "Данная политика рассмотрения жалоб, которая может время от времени меняться, применяется к вашему счету, открытому в {{legal_entity_name}}.", "2044086432": "Закрытие ‒ это последний тик на момент или до времени окончания. Если вы выбираете определённое время окончания, временем окончания будет указанный момент.", "2046273837": "Последний тик", @@ -1679,7 +1681,7 @@ "2067903936": "Водительские права", "2070002739": "Не принимать", "2070752475": "Информация о регулировании", - "2071043849": "Просматривать", + "2071043849": "Обзор", "2074235904": "Необходимо указать фамилию.", "2074497711": "Произошла ошибка при отправке уведомления через Telegram", "2080553498": "3. Получите ID чата, используя REST API Telegram (подробнее: https://core.telegram.org/bots/api#getupdates)", @@ -1702,7 +1704,7 @@ "2096456845": "Дата рождения*", "2097170986": "О Tether (Omni)", "2097381850": "Рассчитывает простую скользящую среднюю (ПСС) из списка с периодом", - "2097932389": "Загрузите 2 отдельных скриншота со страницы личных данных и страницы учетной записи через <0>https://app.astropay.com/profile", + "2097932389": "Загрузите 2 отдельных скриншота со страницы личных данных и страницы счета через <0>https://app.astropay.com/profile", "2100713124": "счет", "2101972779": "В данном примере в качестве входного списка используется список тиков.", "2102572780": "Длина цифрового кода должна быть 6 символов.", @@ -1938,15 +1940,15 @@ "-526636259": "Ошибка 404", "-1030759620": "Гос. служащие", "-1196936955": "Загрузите скриншот своего имени и адреса электронной почты из раздела личной информации.", - "-1286823855": "Загрузите выписку со счета за мобильный телефон, указав свое имя и номер телефона.", + "-1286823855": "Загрузите счет за мобильную связь, на котором указано ваше имя и номер телефона.", "-1309548471": "Загрузите банковскую выписку с указанием вашего имени и реквизитов счета.", - "-1410396115": "Загрузите фотографию с вашим именем и первыми шестью и последними четырьмя цифрами номера карты. Если на карте не указано ваше имя, загрузите банковскую выписку с указанием вашего имени и номера карты в истории транзакций.", - "-3805155": "Загрузите скриншот одного из следующих изображений для обработки транзакции:", - "-1523487566": "- раздел профиля вашей учетной записи на сайте", - "-613062596": "- страница «Информация об учетной записи» в приложении", - "-1718304498": "Идентификатор пользователя", - "-609424336": "Загрузите скриншот своего имени, номера счета и адреса электронной почты из раздела личных данных приложения или раздела профиля своей учетной записи на веб-сайте.", - "-1954436643": "Загрузите скриншот своего имени пользователя на странице «Общая информация» по адресу <0>https://onlinenaira.com/members/index.htm", + "-1410396115": "Загрузите фотографию карты с вашим именем и первыми шестью и последними четырьмя цифрами номера карты. Если на карте не указано имя, загрузите банковскую выписку с указанием вашего имени и номера карты в истории транзакций.", + "-3805155": "Загрузите одно из следующих изображений для обработки транзакции:", + "-1523487566": "- раздел профиля вашего счета на сайте", + "-613062596": "- страница «Информация о счете» в приложении", + "-1718304498": "ID пользователя", + "-609424336": "Загрузите скриншот со своим именем, номером счета и адресом электронной почты из раздела личных данных приложения или раздела профиля на сайте.", + "-1954436643": "Загрузите скриншот раздела «Общая информация» с именем пользователя на странице <0>https://onlinenaira.com/members/index.htm", "-79853954": "Загрузите скриншот номера своего счета и номера телефона на странице «Банковский счет/мобильный кошелек» по адресу <0>https://onlinenaira.com/members/bank.htm", "-1192882870": "Загрузите скриншот своего имени и номера счета из раздела личных данных.", "-612752984": "Это лимиты по умолчанию, которые мы применяем к вашим счетам.", @@ -2002,7 +2004,7 @@ "-1543016582": "Настоящим я подтверждаю, что предоставленная мной налоговая информация является точной и достоверной. Также я обязуюсь уведомить {{legal_entity_name}} о любых изменениях в данной информации.", "-1387062433": "Причина открытия счёта", "-1088324715": "Мы проверим ваши документы и сообщим об их статусе в течение 1-3 рабочих дней.", - "-684271315": "OK", + "-329713179": "Ok", "-1176889260": "Выберите тип документа.", "-1515286538": "Введите номер документа. ", "-1785463422": "Подтвердите личность", @@ -2016,7 +2018,6 @@ "-841187054": "Повторить", "-2097808873": "Нам не удалось подтвердить вашу личность по предоставленным вами данным. ", "-228284848": "Нам не удалось подтвердить вашу личность по предоставленным вами данным.", - "-1443800801": "Номер вашего удостоверения личности успешно отправлен", "-1391934478": "Ваша личность подтверждена. Вам также необходимо будет предоставить подтверждение адреса.", "-118547687": "Подтверждение личности успешно", "-200989771": "Перейдите в Личные данные", @@ -2040,19 +2041,18 @@ "-839094775": "Назад", "-856213726": "Вам также необходимо предоставить подтверждение адреса.", "-987011273": "Подтверждение права собственности не требуется.", - "-808299796": "В настоящее время вы не обязаны предоставлять подтверждение права собственности. Мы сообщим вам, потребуется ли подтверждение права собственности в будущем.", + "-808299796": "В настоящее время вам не нужно предоставлять подтверждение права собственности. Мы сообщим, если такое подтверждение\nпотребуется в будущем.", "-179726573": "Мы получили ваше подтверждение права собственности.", "-813779897": "Подтверждение права собственности пройдено.", "-1389323399": "Вы должны ввести {{min_number}}-{{max_number}} символа(ов).", "-1313806160": "Пожалуйста, запросите новый пароль и проверьте свою электронную почту, чтобы получить новый ключ.", - "-329713179": "Ok", "-1598167506": "Готово", "-1077809489": "У вас теперь новый пароль для входа на счета {{platform}} с веб-браузеров и мобильных приложений.", "-2068479232": "Пароль {{platform}}", "-1332137219": "Надежный пароль состоит как минимум из 8 знаков с комбинацией чисел, символов, строчных и заглавных букв.", "-2005211699": "Создать", "-1597186502": "Сбросить пароль {{platform}}", - "-638756912": "Зачеркните цифры от 7 до 12 номера карты, указанного на лицевой стороне вашей дебетовой/кредитной карты.", + "-638756912": "Зачеркните/закройте с 7-й по 12-ю цифры номера вашей дебетовой/кредитной карты.", "-848721396": "Эти торговые лимиты не являются обязательными, и вы можете усилить их в любое время. Если вы не хотите устанавливать конкретный лимит, оставьте поле пустым. Если вы живете в Соединенном Королевстве, служба поддержки может удалить или ослабить ваши торговые лимиты только через 24 часа после получения запроса. Если вы живете на острове Мэн, служба поддержки может удалить ваши торговые лимиты только после истечения срока их действия.", "-469096390": "Эти торговые лимиты не являются обязательными, и вы можете усилить их в любое время. Если вы не хотите устанавливать конкретный лимит, оставьте поле пустым. Служба поддержки может удалить или ослабить ваши торговые лимиты только через 24 часа после получения запроса.", "-42808954": "Вы также можете полностью исключить себя на определенный срок. Самоисключение можно будет удалить только по истечении указанного срока. Если вы хотите возобновить трейдинг по истечении периода самоисключения, вы должны связаться со службой поддержки по телефону <0>+447723580049 и сделать соответствующий запрос. Запросы в чате или по электронной почте не будут рассматриваться. Прежде чем вы сможете возобновить торговлю, потребуется 24-часовой таймаут.", @@ -2093,6 +2093,7 @@ "-680528873": "Ваш счет будет открыт в компании {{legal_entity_name}} и будет регулироваться законами Самоа.", "-1125193491": "Добавить счёт", "-2068229627": "Я не являюсь ПЗЛ и не являлся ПЗЛ в течение последних 12 месяцев.", + "-684271315": "OK", "-1720468017": "Предоставляя вам свои услуги, мы обязаны получать от вас информацию, чтобы оценить, подходит ли вам данный продукт или услуга.", "-186841084": "Изменить логин", "-907403572": "Чтобы изменить адрес электронной почты, сначала нужно отвязать старый адрес от счета {{identifier_title}} .", @@ -2186,7 +2187,7 @@ "-890084320": "Сохранить и отправить", "-902076926": "Перед загрузкой документа убедитесь, что ваши личные данные обновлены и соответствуют вашему удостоверению личности. Это поможет избежать задержек в процессе верификации.", "-1592318047": "См. пример", - "-1376950117": "Этот формат файла не поддерживается. Загружайте только файлы в форматах.pdf, .png, .jpg или .jpeg.", + "-1376950117": "Этот формат не поддерживается. Загружайте только файлы в форматах .pdf, .png, .jpg или .jpeg.", "-1272489896": "Пожалуйста, заполните это поле.", "-397487797": "Введите полный номер карты", "-1411635770": "Узнайте больше о лимитах счета", @@ -2225,6 +2226,7 @@ "-38915613": "Несохраненные изменения", "-2137450250": "У вас есть несохраненные изменения. Вы уверены, что хотите отменить изменения и покинуть эту страницу?", "-1067082004": "Выйти из Настроек", + "-1982432743": "It appears that the address in your document doesn’t match the address\n in your Deriv profile. Please update your personal details now with the\n correct address.", "-1451334536": "Продолжить торговлю", "-1525879032": "Истек срок действия документа, подтверждающего адрес. Пожалуйста, отправьте новый документ.", "-1425489838": "Верификация подтверждения адреса не требуется", @@ -2243,7 +2245,6 @@ "-639677539": "Купить криптовалюту", "-1560098002": "Покупка криптовалют через fiat onramp", "-541870313": "Пополнение через платежных агентов", - "-72314872": "Пополняйте счет в местной валюте через одноранговый обмен с другими трейдерами в вашей стране.", "-58126117": "Простой доступ к крипто. Быстрый и безопасный обмен и покупка криптовалют. Круглосуточная поддержка в чате.", "-1705887186": "Пополнение прошло успешно.", "-142361708": "В процессе", @@ -2345,8 +2346,11 @@ "-2056016338": "Мы не взимаем комиссию за переводы в одной и той же валюте между вашим фиатным счетом Deriv и счетом {{platform_name_mt5}}.", "-599632330": "Мы взимаем комиссию в размере 1% за переводы в разных валютах между вашим фиатным счетом Deriv и счетом {{platform_name_mt5}}, и вашим фиатным счетом Deriv и счетом {{platform_name_dxtrade}}.", "-1196994774": "За переводы между вашими криптовалютными счетами Deriv мы взимаем комиссию в размере 2% или {{minimum_fee}} {{currency}}, в зависимости от того, какая сумма больше.", + "-1361372445": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts, your Deriv cryptocurrency and {{platform_name_derivez}} accounts, and your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.", "-993556039": "За переводы между вашими криптовалютными счетами Deriv и счетом Deriv MT5, или криптовалютными счетами Deriv и счетом {{platform_name_dxtrade}} мы взимаем комиссию в размере 2% или {{minimum_fee}} {{currency}}, в зависимости от того, какая сумма больше.", "-1382702462": "За переводы между вашими криптовалютными счетами Deriv и счетом Deriv MT5 мы взимаем комиссию в размере 2% или {{minimum_fee}} {{currency}}, в зависимости от того, какая сумма больше.", + "-1995859618": "Вы можете переводить средства между своим фиатным и криптовалютными счетами Deriv, счетом {{platform_name_mt5}}, {{platform_name_derivez}} и {{platform_name_dxtrade}}.", + "-545616470": "Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts, up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts, up to {{ allowed_derivez }} transfers between your Deriv and {{platform_name_derivez}} accounts, and up to {{ allowed_dxtrade }} transfers between your Deriv and {{platform_name_dxtrade}} accounts.", "-1151983985": "Лимиты на перевод могут варьироваться, в зависимости от текущих валютных курсов.", "-1747571263": "Имейте в виду, что некоторые переводы могут быть невозможны.", "-757062699": "Переводы могут быть недоступны во время высокой волатильности, из-за технических проблем или когда рынки закрыты.", @@ -2631,6 +2635,7 @@ "-328128497": "Финансовый", "-533935232": "Финансовый BVI", "-565431857": "Финансовый Лабуан", + "-1290112064": "Deriv EZ", "-1669418686": "AUD/CAD", "-1548588249": "AUD/CHF", "-1552890620": "AUD/JPY", @@ -2745,6 +2750,7 @@ "-1125797291": "Пароль обновлен.", "-157145612": "Пожалуйста, войдите на счет, используя обновленный пароль.", "-1728185398": "Подтвердить адрес еще раз", + "-612396514": "Please resubmit your proof of address.", "-1519764694": "Ваше подтверждение адреса принято.", "-1961967032": "Подтвердить личность еще раз", "-117048458": "Пожалуйста, предоставьте удостоверение личности.", @@ -2767,11 +2773,15 @@ "-1719731099": "Благодаря двухфакторной аутентификации ваш счет будет защищен не только паролем, но и вашим телефоном, поэтому только вы сможете получить доступ к счету, даже если кто-то знает ваш пароль.", "-2087822170": "Вы оффлайн", "-1669693571": "Проверьте подключение к интернету.", - "-1706642239": "<1>Требуется <0>подтверждение права собственности", - "-553262593": "<0><1>Ваша учетная запись в настоящее время заблокирована.<2> <3>Загрузите документ, подтверждающий <4>право собственности, чтобы разблокировать учетную запись.<5>", - "-1834929362": "Загрузите мой документ", - "-1043638404": "<0>Подтверждение права собственности <1>не удалось", - "-1766760306": "<0><1>Пожалуйста, загрузите документ <2>с правильными данными.<3>", + "-1706642239": "<1>Требуется <0>подтверждение собственности", + "-553262593": "<0><1>Ваш счет заблокирован. <2><3>Загрузите документ, подтверждающий <4>право собственности, чтобы разблокировать счет. <5>", + "-1834929362": "Загрузить документ", + "-1043638404": "<1>Не удалось <0>подтвердить право собственности", + "-1766760306": "<0><1>Загрузите документ <2>с правильными данными. <3>", + "-2142540205": "It appears that the address in your document doesn’t match the address in your Deriv profile. Please update your personal details now with the correct address.", + "-482715448": "Перейдите в Личные данные", + "-2072411961": "Ваше подтверждение адреса принято", + "-384887227": "Обновите адрес в своем профиле.", "-1998049070": "Если вы согласны на использование нами файлов cookie, нажмите Принять. Для получения дополнительной информации <0>см. нашу политику.", "-402093392": "Добавить счет Deriv", "-277547429": "Счет Deriv позволит вам пополнять (и выводить средства) со своего счета (ов) MT5.", @@ -2913,6 +2923,10 @@ "-429248139": "5. Оговорка", "-818926350": "Финансовая комиссия принимает жалобы в течение 45 дней с даты инцидента и только после того, как трейдер попытается решить проблему напрямую с компанией.", "-358055541": "Усильте свои сделки с помощью новых крутых инструментов", + "-29496115": "We've partnered with Acuity to give you a suite of intuitive trading tools for MT5 so you can keep track of market events and trends, free of charge!<0/><0/>", + "-648669944": "Download the Acuity suite and take advantage of the <1>Macroeconomic Calendar, Market Alerts, Research Terminal, and <1>Signal Centre Trade Ideas without leaving your MT5 terminal.<0/><0/>", + "-794294380": "This suite is only available for Windows, and is most recommended for financial assets.", + "-922510206": "Need help using Acuity?", "-815070480": "Отказ от ответственности: торговые услуги и информация, предоставляемые Acuity, не должны восприниматься как предложение инвестировать и/или торговать. Deriv не предоставляет инвестиционных консультаций. Прошлое не является ориентиром для будущих результатов, а стратегии, успешные в прошлом, могут не сработать в будущем.", "-2111521813": "Скачать Acuity", "-175369516": "Добро пожаловать на Deriv X", @@ -2968,6 +2982,7 @@ "-712681566": "Одноранговый (P2P) обмен", "-1267880283": "{{field_name}} является обязательным", "-2084509650": "Поле {{field_name}} в неправильном формате.", + "-222283483": "Account opening reason*", "-1779241732": "Первая строка адреса в неправильном формате.", "-188222339": "Не должно превышать {{max_number}} символов.", "-1673422138": "Штат/Регион в неправильном формате.", @@ -2981,13 +2996,15 @@ "-1982499699": "Открыть {{platform_name_dbot}}", "-1567989247": "Отправьте подтверждение личности и адреса", "-184453418": "Введите пароль {{platform}}", - "-1769158315": "реальный", - "-700260448": "демо", - "-1980366110": "Поздравляем, вы успешно открыли счет {{category}} {{platform}} <0>{{type}}.", + "-393388362": "We’re reviewing your documents. This should take about 1 to 3 days.", "-790488576": "Забыли пароль?", "-926547017": "Введите пароль {{platform}}, чтобы добавить {{account}} счет {{platform}} {{jurisdiction_shortcode}}.", "-1190393389": "Введите пароль {{platform}}, чтобы добавить {{account}} счет {{platform}}.", "-2057918502": "Подсказка: возможно, вы ввели свой пароль Deriv, который отличается от вашего пароля {{platform}}.", + "-1769158315": "реальный", + "-700260448": "демо", + "-1936102840": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} account. ", + "-1570793523": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} account.", "-1928229820": "Сбросить инвесторский пароль Deriv X", "-1087845020": "основной", "-1950683866": "инвестор", @@ -3013,24 +3030,14 @@ "-161656683": "Текущий инвесторский пароль", "-374736923": "Новый инвесторский пароль", "-1793894323": "Создать или сбросить инвесторский пароль", - "-1124208206": "Перейдите на реальный счет, чтобы открыть {{type_title}} счет DMT5 {{account_title}}.", - "-1576792859": "Необходимо подтверждение личности и адреса", - "-104382603": "Проверить подтверждение адреса", - "-793684335": "Проверить подтверждение личности", "-1271218821": "Счет добавлен", - "-599621079": "Этот {{account_type}} счет Deriv MT5 будет открыт в Deriv (SVG) LLC (компания # 273 LLC 2020).", - "-1302969276": "Этот {{account_type}} счет Deriv MT5 будет открыт в Deriv (BVI) Ltd. Компания регулируется комиссией по финансовым услугам Британских Виргинских островов (лицензия # SIBA/{{line_break}}L/18/1114).", - "-1422519943": "Этот {{account_type}} счет DMT5 будет открыт в Deriv (V) Ltd. Компания регулируется комиссией по финансовым услугам Вануату.", - "-1731304187": "Этот {{account_type}} счет CFD Deriv MT5 будет открыт в Deriv Investments (Europe) Limited. Компания регулируется управлением финансовых услуг Мальты (MFSA) (лицензия # IS/70156).", - "-16048185": "Чтобы открыть этот счет, нам нужно подтвердить вашу личность и адрес.", - "-1627989291": "Чтобы открыть этот счет, нужно повторно отправить подтверждение личности.", - "-1389025684": "Чтобы открыть этот счет, нужно повторно отправить подтверждение личности и адреса.", - "-1615750576": "Вы сможете открыть этот счет после проверки предоставленных документов.", - "-724308541": "Юрисдикция вашего счета CFD Deriv MT5", - "-479119833": "Выберите юрисдикцию для вашего счета Deriv MT5 {{account_type}}", + "-1576792859": "Необходимо подтверждение личности и адреса", "-1931257307": "Вам необходимо предоставить подтверждение личности", "-2026018074": "Этот <0>{{account_type_name}} счет Deriv MT5 будет открыт в Deriv (SVG) LLC (компания # 273 LLC 2020).", "-162320753": "Этот <0>{{account_type_name}} счет Deriv MT5 будет открыт в Deriv (BVI) Ltd. Компания регулируется комиссией по финансовым услугам Британских Виргинских островов (лицензия # SIBA/L/18/1114).", + "-1731304187": "Этот {{account_type}} счет CFD Deriv MT5 будет открыт в Deriv Investments (Europe) Limited. Компания регулируется управлением финансовых услуг Мальты (MFSA) (лицензия # IS/70156).", + "-724308541": "Юрисдикция вашего счета CFD Deriv MT5", + "-479119833": "Выберите юрисдикцию для вашего счета Deriv MT5 {{account_type}}", "-450424792": "Вам нужен реальный счет Deriv (в фиатной валюте или криптовалюте), чтобы открыть реальный счет Deriv MT5.", "-1760596315": "Открыть счет Deriv", "-705682181": "Мальта", diff --git a/packages/translations/src/translations/th.json b/packages/translations/src/translations/th.json index b2fb527430ee..69fefb7241f8 100644 --- a/packages/translations/src/translations/th.json +++ b/packages/translations/src/translations/th.json @@ -70,10 +70,8 @@ "98972777": "รายการสุ่ม", "100239694": "โปรดอัปโหลดด้านหน้าของบัตรจากคอมพิวเตอร์ของคุณ", "102226908": "ช่องนี้ไม่สามารถเว้นให้ว่างได้", - "107206831": "เราจะตรวจสอบเอกสารของคุณและแจ้งให้คุณทราบถึงสถานะของเอกสารภายใน 1-3 วันทำการ", "108916570": "ระยะเวลา {{duration}} วัน", "109073671": "โปรดใช้อีวอลเล็ทที่คุณได้ใช้สำหรับการฝากเงินก่อนหน้านี้ โปรดตรวจสอบให้แน่ใจว่าอีวอลเล็ทนั้นรองรับการถอนเงินได้ โดยคุณสามารถไปดูรายการอีวอลเล็ทที่รองรับการถอนเงินได้ <0>ที่นี่", - "110261653": "ขอแสดงความยินดีด้วย คุณได้สร้างบัญชี {{category}} {{platform}} <0>{{type}} {{jurisdiction_selected_shortcode}} สำเร็จแล้ว และเพื่อเริ่มต้นทำการซื้อขาย โปรดโอนเงินจากบัญชี Deriv ของคุณเข้าไปยังบัญชีนี้", "111215238": "หลีกเลี่ยงแสงที่ส่องมาตรงๆ", "111718006": "เวลาสิ้นสุด", "111931529": "ยอดรวมเงินทุนทรัพย์สูงสุดในรอบ 7 วัน", @@ -182,6 +180,7 @@ "248909149": "ส่งลิงก์ที่ปลอดภัยไปยังโทรศัพท์ของคุณ", "249908265": "คุณเป็นพลเมืองของ {{- residence}} ใช่หรือไม่?", "251134918": "ข้อมูลเกี่ยวกับบัญชี", + "251322536": "บัญชี Deriv EZ", "251445658": "ธีมสีเข้ม", "251882697": "ขอบคุณ! คำตอบของคุณถูกบันทึกไว้ในระบบของเราแล้ว <0/><0/>โปรดกกด ‘ตกลง’ เพื่อดำเนินการต่อ", "254912581": "บล็อกนี้คล้ายกับ EMA เว้นแต่ว่ามันจะให้คุณเห็นสาย EMA ทั้งหมดตามรายการข้อมูลที่ป้อนเข้าไปและในช่วงเวลาที่กำหนดไว้", @@ -197,6 +196,7 @@ "265644304": "ประเภทการซื้อขาย", "267992618": "แพลตฟอร์มเหล่านี้ขาดคุณสมบัติหรือฟังก์ชันที่สำคัญ", "268940240": "ยอดคงเหลือของคุณ ({{format_balance}} {{currency}}) นั้นน้อยกว่าขีดการถอนขั้นต่ำในปัจจุบันที่อนุญาตคือ ({{format_min_withdraw_amount}} {{currency}}) ดังนั้น โปรดเติมเงินในบัญชีของคุณเสียก่อนที่จะดำเนินการถอนต่อไป", + "269322978": "ทำการฝากเงินด้วยสกุลเงินท้องถิ่นของคุณผ่านการแลกเปลี่ยนแบบเพียร์ทูเพียร์กับเทรดเดอร์รายอื่นๆ ในประเทศของคุณ", "269607721": "อัปโหลด", "270339490": "หากคุณเลือก \"สูงกว่าหรือ Over\" คุณจะได้รับเงินผลตอบแทนก็ต่อเมื่อตัวเลขหลักสุดท้ายของค่าจุด tick อันสุดท้ายนั้นมากกว่าตัวเลขที่คุณคาดการณ์ไว้", "270610771": "จากตัวอย่างนี้ ราคาเปิดของกราฟแท่งเทียนนั้นถูกกำหนดให้ขึ้นกับตัวแปร \"candle_open_price\"", @@ -212,6 +212,7 @@ "278684544": "รับรายการย่อยจาก # จากสุดท้าย", "282319001": "ตรวจสอบรูปภาพของคุณ", "282564053": "ขั้นตอนต่อไปคือเราจำเป็นต้องใช้หลักฐานแสดงที่อยู่ของคุณ", + "283830551": "ที่อยู่ของคุณไม่ตรงกับในโปรไฟล์ของคุณ", "283986166": "ระบบการกันตัวเองบนเว็บไซต์จะใช้ได้กับบัญชี {{brand_website_name}} ของคุณเท่านั้นและไม่รวมถึงบริษัทหรือเว็บไซต์อื่นๆ", "284527272": "ตัวเลขที่เกิดน้อยครั้งที่สุดหรือแอนตี้โหมด", "284772879": "สัญญา", @@ -245,7 +246,6 @@ "327534692": "ไม่อนุญาตให้ใช้ค่าระยะเวลา หากต้องการใช้บอท โปรดป้อน {{min}}", "328539132": "ทำซ้ำตามจำนวนครั้งที่ระบุในคำสั่ง", "329404045": "<0>สลับไปยังบัญชีจริงของคุณ<1> เพื่อสร้างบัญชี {{platform}} {{account_title}}", - "332886946": "<1>ต้องการความช่วยเหลือในการใช้ Acuity?<0/>ดู <2>คู่มือผู้ใช้งาน", "333456603": "วงเงินที่จำกัดสำหรับการถอน", "334680754": "สลับไปยังบัญชีจริงของคุณเพื่อสร้างบัญชี Deriv MT5", "334942497": "เวลาที่ซื้อ", @@ -368,7 +368,6 @@ "478280278": "บล็อกนี้แสดงกล่องข้อความโต้ตอบซึ่งใช้ข้อความที่กำหนดเองเพื่อกระตุ้นให้มีการใส่ข้อมูลนำเข้า (input) โดยข้อมูลนำเข้านั้นสามารถจะเป็นได้ทั้งสตริงข้อความหรือตัวเลขและสามารถกำหนดให้กับตัวแปรได้ เมื่อกล่องข้อความโต้ตอบปรากฏขึ้น กลยุทธ์ของคุณจะถูกหยุดไว้ชั่วคราวและจะทำงานต่อหลังจากที่คุณป้อนคำตอบแล้วคลิก \"ตกลง\"", "479420576": "ลำดับที่สาม", "481276888": "ออกนอกขอบเขต", - "483246914": "เพิ่มบัญชี Deriv MT5 {{account_type}} STP ของคุณภายใต้บริษัท Deriv (FX) Ltd ที่ถูกกำกับควบคุมโดยหน่วยงานบริการทางการเงินลาบวน หรือ Labuan Financial Services Authority (ใบอนุญาตเลขที่ MB/18/0024)", "483279638": "การประเมินเสร็จสมบูรณ์<0/><0/>", "483591040": "ต้องการลบ {{ delete_count }} บล็อกทั้งหมดหรือไม่?", "485379166": "ดูธุรกรรมต่างๆ", @@ -419,7 +418,6 @@ "551569133": "เรียนรู้เพิ่มเติมเกี่ยวกับขีดจำกัดการซื้อขาย", "554410233": "นี่คือรหัสผ่านทั่วไป 10 อันดับแรก", "555351771": "หลังจากกำหนดพารามิเตอร์การซื้อขายและตัวเลือกการเทรดต่างๆแล้ว คุณอาจต้องการสั่งให้บอทของคุณทำการซื้อสัญญาเมื่อตรงตามเงื่อนไขเฉพาะที่ตั้งเอาไว้ และคุณสามารถใช้บล็อกเงื่อนไขและบล๊อกตัวบ่งชี้มาช่วยบอทของคุณในการตัดสินใจเพื่อให้คุณทำเช่นนั้นได้", - "556095366": "เราจะประมวลผลรายละเอียดของคุณภายในไม่กี่นาทีและแจ้งสถานะทางอีเมล์", "556264438": "ช่วงเวลา", "559224320": "เครื่องมือ \"ลากแล้ววาง\" แบบคลาสสิกของเราในการสร้างบอทซื้อขายมาพร้อมแผนภูมิการเทรดแบบป๊อปอัปสำหรับผู้ใช้ขั้นสูง", "561982839": "เปลี่ยนสกุลเงินของคุณ", @@ -576,6 +574,7 @@ "745656178": "ใช้บล็อกนี้เพื่อขายสัญญาของคุณในราคาตลาด", "745674059": "ส่งคืนอักขระเฉพาะจากสตริงข้อความที่กำหนด ตามตัวเลือกที่ได้เลือกไว้ ", "746112978": "คอมพิวเตอร์ของคุณอาจใช้เวลาไม่กี่วินาทีเพื่ออัปเดต", + "750886728": "Switch to your real account to submit your documents", "751692023": "เรา <0>ไม่ รับประกันการคืนเงิน หากคุณโอนเงินผิด", "752024971": "ถึงจํานวนตัวเลขสูงสุดแล้ว", "752633544": "คุณจะต้องส่งหลักฐานยืนยันตัวตนและที่อยู่เมื่อถึงเกณฑ์ที่กำหนด", @@ -589,7 +588,7 @@ "759783233": "สําหรับข้อมูลเพิ่มเติมและความช่วยเหลือให้คําปรึกษาและบริการสนับสนุนต่าง โปรดไปที่ <0>begambleaware.org", "760528514": "โปรดทราบว่า การเปลี่ยนค่าของ \"i\" จะไม่เปลี่ยนแปลงค่าของรายการตัวต้นฉบับในลิสต์", "761576760": "ฝากเงินเข้าบัญชีของคุณเพื่อเริ่มทำการซื้อขาย", - "762185380": "<0>ได้ผลตอบแทนเพิ่มทวีคูณ โดย <0>เสี่ยงเพียงเฉพาะ สิ่งที่คุณวางเดิมพัน", + "762185380": "<0>เพิ่มทวีผลที่ได้รับ โดย <0>มีความเสี่ยงเพียงเฉพาะ ทุนทรัพย์ที่คุณลงไป", "762871622": "{{remaining_time}}วินาที", "763019867": "บัญชีเกมของคุณมีกำหนดที่จะถูกปิด", "764366329": "วงเงินในการซื้อขาย", @@ -790,7 +789,6 @@ "1023643811": "บล็อกนี้ใช้ซื้อสัญญาประเภทที่ระบุไว้โดยเฉพาะ", "1023795011": "คู่/คี่", "1024205076": "การดำเนินการทางตรรกะ", - "1024760087": "คุณได้รับการยืนยันให้เพิ่มบัญชีนี้ได้แล้ว", "1025887996": "การป้องกันยอดคงเหลือติดลบ", "1026046972": "โปรดป้อนจำนวนเงินผลตอบแทนที่ต่ำกว่า {{max_payout}}.", "1027098103": "เลเวอเรจช่วยให้คุณสามารถทำการเทรดตำแหน่งการค้าที่ใหญ่ขึ้นได้โดยใช้เงินทุนที่มีอยู่แล้วของคุณ ซึ่งตัวเลเวอเรจจะมีความหลากหลายแตกต่างกันไปในแต่ละสัญลักษณ์", @@ -874,6 +872,7 @@ "1112582372": "ช่วงเวลา", "1113119682": "บล็อกนี้ให้คุณเลือกค่าแท่งเทียนจากลิสต์รายการของแท่งเทียน", "1113292761": "น้อยกว่า 8MB", + "1113433728": "Resubmit your proof of identity and address", "1117863275": "ความมั่นคงปลอดภัย", "1118294625": "คุณได้เลือกที่จะกันตัวเองออกจากการซื้อขายบนเว็บไซต์ของเราจนถึง {{exclusion_end}} หากคุณไม่สามารถทำการซื้อขายหรือฝากเงินได้หลังจากช่วงระยะเวลาการกันตัวเอง โปรดติดต่อเราผ่านแชทสด", "1119887091": "การตรวจสอบยืนยัน", @@ -935,7 +934,6 @@ "1189886490": "โปรดสร้างบัญชี Deriv, {{platform_name_mt5}} หรือ {{platform_name_dxtrade}} อันอื่น", "1191429031": "โปรดคลิกที่ลิงก์ในอีเมล์เพื่อเปลี่ยนรหัสผ่าน <0>{{platform_name_dxtrade}} ของคุณ", "1191644656": "คาดการณ์ทิศทางของตลาดและเลือก \"ขึ้น\" หรือ \"ลง\" เพื่อเปิดตำแหน่งการค้า โดยเราจะเรียกเก็บค่าคอมมิชชั่นเมื่อคุณเปิดตําแหน่ง", - "1191778951": "ตรวจสอบหลักฐานการยืนยันตัวตนและที่อยู่ของคุณ", "1192708099": "หน่วยระยะเวลา", "1195393249": "แจ้งเตือน {{ notification_type }} ด้วยเสียง: {{ notification_sound }} {{ input_message }}", "1196006480": "เกณฑ์กำไร", @@ -1009,7 +1007,6 @@ "1281290230": "เลือก", "1282951921": "ลงเท่านั้น", "1284522768": "หากเลือก \"ขาดทุน\" ระบบจะส่งคืนค่าว่า \"จริง\" หากการซื้อขายครั้งสุดท้ายของคุณไม่สำเร็จ ถ้าไม่อย่างนั้นระบบจะส่งคืนสตริงที่ว่างเปล่า", - "1285686014": "Pending proof of identity review", "1286094280": "ถอนเงิน", "1286507651": "ปิดหน้าจอการยืนยันตัวตน", "1288965214": "หนังสือเดินทาง", @@ -1105,7 +1102,6 @@ "1384222389": "กรุณาส่งเอกสารประจำตัวที่ถูกต้องเพื่อปลดล็อกแคชเชียร์", "1385418910": "โปรดกำหนดสกุลเงินสำหรับบัญชีจริงที่มีอยู่ของคุณ ก่อนที่จะสร้างบัญชีอันอื่น", "1387503299": "เข้าสู่ระบบ", - "1388770399": "ต้องใช้หลักฐานการยืนยันตัวตน", "1389197139": "เกิดข้อผิดพลาดในการนำเข้า", "1390792283": "พารามิเตอร์การซื้อขาย", "1391174838": "เงินผลตอบแทนที่อาจได้:", @@ -1118,6 +1114,7 @@ "1396417530": "ดัชนีตลาดหมี", "1397628594": "เงินทุนไม่เพียงพอ", "1399620764": "เรามีหน้าที่ตามกฎหมายที่จะขอข้อมูลทางการเงินของคุณ", + "1400341216": "We’ll review your documents and notify you of its status within 1 to 3 days.", "1400637999": "(ต้องกรอกข้อมูลทุกช่อง)", "1400732866": "ดูจากกล้อง", "1400962248": "สูง-ปิด", @@ -1263,9 +1260,11 @@ "1584109614": "ลิสต์รายการสตริง Tick", "1584578483": "สินทรัพย์มากกว่า 50 รายการ: ฟอเร็กซ์, หุ้น, ดัชนีหุ้น, ดัชนีสังเคราะห์ และคริปโตเคอเรนซี่", "1584936297": "ไฟล์ XML มีองค์ประกอบที่ไม่ได้รับการสนับสนุน โปรดตรวจสอบหรือแก้ไขไฟล์", + "1585859194": "เราจะเรียกเก็บค่าธรรมเนียมการโอน 1% สำหรับการโอนเงินในสกุลเงินต่างๆระหว่างบัญชีเงินตรารัฐบาล Deriv กับบัญชี {{platform_name_mt5}} ของคุณ บัญชีเงินตรารัฐบาล Deriv กับบัญชี {{platform_name_derivez}} ของคุณ และบัญชีเงินตรารัฐบาล Deriv กับบัญชี {{platform_name_dxtrade}} ของคุณ", "1587046102": "เอกสารจากประเทศนั้นไม่ได้รับการสนับสนุนในปัจจุบัน — กรุณาลองเอกสารชนิดอื่น", "1589640950": "ไม่มีการเสนอขายใหม่ของสัญญานี้", "1589702653": "หลักฐานแสดงที่อยู่", + "1591933071": "Resubmit document", "1593010588": "Login now", "1594147169": "กรุณากลับมาใหม่", "1594322503": "สามารถขายได้", @@ -1280,7 +1279,6 @@ "1605222432": "ฉันไม่มีความรู้และประสบการณ์ในการซื้อขายเลย", "1605292429": "ยอดรวมขาดทุนสูงสุด", "1612105450": "รับสตริงย่อย", - "1613273139": "ส่งหลักฐานยืนยันตัวตนและที่อยู่ของคุณอีกครั้ง", "1613633732": "ช่วงเวลาควรอยู่ระหว่าง 10-60 นาที", "1615897837": "ช่วงเวลาสัญญาณ EMA {{ input_number }}", "1618809782": "ถอนเงินขั้นสูงสุด", @@ -1324,7 +1322,6 @@ "1665272539": "โปรดจําไว้ว่า: คุณจะไม่สามารถเข้าสู่ระบบบัญชีของคุณได้จนกว่าจะถึงวันที่ได้เลือกไว้", "1665738338": "ยอดคงเหลือ", "1665756261": "ไปที่แชทสด", - "1667395210": "หลักฐานยืนยันตัวตนของคุณถูกนำส่งเรียบร้อยแล้ว", "1668138872": "แก้ไขการตั้งค่าบัญชี", "1670016002": "ตัวคูณ: {{ multiplier }}", "1670426231": "เวลาสิ้นสุด", @@ -1349,6 +1346,7 @@ "1694517345": "ป้อนที่อยู่อีเมล์ใหม่", "1695807119": "ไม่สามารถโหลดบล็อกจาก Google Drive", "1700233813": "ไม่อนุญาตให้โอนจาก {{selected_value}} โปรดเลือกบัญชีอื่นจากเมนูด้านล่าง", + "1701447705": "โปรดอัปเดตที่อยู่ของคุณ", "1704656659": "คุณมีประสบการณ์ในการเทรด CFD มากแค่ไหน", "1708413635": "สำหรับบัญชี {{currency_name}} ({{currency}}) ของคุณ", "1709859601": "เวลาจุดออก", @@ -1419,6 +1417,7 @@ "1778893716": "คลิกที่นี่", "1779519903": "ควรเป็นตัวเลขที่ถูกต้อง", "1780770384": "บล็อกนี้จะให้เศษส่วนแบบสุ่มระหว่าง 0.0 ถึง 1.0 แก่คุณ", + "1781393492": "เราจะไม่เรียกเก็บค่าธรรมเนียมการโอนสำหรับการโอนเงินในสกุลเงินเดียวกันระหว่างบัญชีเงินตรารัฐบาล Deriv กับบัญชี {{platform_name_mt5}} ของคุณ บัญชีเงินตรารัฐบาล Deriv กับบัญชี {{platform_name_derivez}} ของคุณ และบัญชีเงินตรารัฐบาล Deriv กับบัญชี {{platform_name_dxtrade}} ของคุณ", "1782308283": "กลยุทธ์ด่วน", "1782395995": "คาดการณ์ตัวเลขหลักสุดท้าย", "1782690282": "เมนูบล็อก", @@ -1429,6 +1428,7 @@ "1788966083": "01-07-1999", "1789497185": "โปรดดูให้แน่ใจว่า รายละเอียดหนังสือเดินทางของคุณสามารถมองเห็นได้ชัดเจน", "1790770969": "สกุลเงินหลัก (ล็อตมาตรฐาน/ไมโครล็อต) สกุลเงินรอง หุ้นโภคภัณฑ์ คริปโตเคอเรนซี่", + "1791017883": "ดู <0>คู่มือผู้ใช้น นี้", "1791432284": "ค้นหาประเทศ", "1791971912": "ล่าสุด", "1793913365": "เพื่อทำการฝากเงิน โปรดสลับไปยังบัญชี {{currency_symbol}} ของคุณ", @@ -1549,6 +1549,7 @@ "1918832194": "ไม่มีประสบการณ์", "1919030163": "เคล็ดลับในการถ่ายภาพเซลฟี่ที่ดี", "1919594496": "{{website_name}} ไม่มีส่วนเกี่ยวข้องกับตัวแทนชำระเงินใดๆ ดังนั้นลูกค้าจะต้องรับผิดชอบความเสี่ยงที่อาจเกิดขึ้นด้วยตัวเองในการใช้บริการของตัวแทนชำระเงิน เราจึงขอแนะนำให้ลูกค้าตรวจสอบข้อมูลหลักฐานอ้างอิงของตัวแทนชำระเงินและตรวจความถูกต้องของข้อมูลใดๆ เกี่ยวกับตัวแทนชำระเงิน (ใน {{website_name}} หรือที่อื่นๆ) ก่อนที่จะใช้บริการ", + "1919694313": "To start trading, transfer funds from your Deriv account into this account.", "1920217537": "เปรียบเทียบ", "1920468180": "วิธีใช้บล็อก SMA", "1921634159": "รายละเอียดส่วนบุคคลเล็กน้อย", @@ -1655,6 +1656,7 @@ "2037481040": "เลือกวิธีฝากเงินเข้าบัญชีของคุณ", "2037665157": "ขยายบล็อคทั้งหมด", "2037906477": "รับรายการย่อยจาก #", + "2042023623": "We’re reviewing your documents. This should take about 5 minutes.", "2042050260": "- ราคาซื้อ: ราคาซื้อ (เงินทุนทรัพย์) ของสัญญา", "2042115724": "อัปโหลดภาพแคปหน้าจอของบัญชีและหน้าแสดงรายละเอียดข้อมูลส่วนตัวของคุณ พร้อมชื่อ หมายเลขบัญชี หมายเลขโทรศัพท์ และที่อยู่อีเมล์ของคุณ", "2042778835": "นโยบายการร้องเรียนนี้ ซึ่งอาจมีการเปลี่ยนแปลงเป็นครั้งคราว จะมีผลบังคับใช้กับบัญชีของคุณที่ลงทะเบียนกับ {{legal_entity_name}}", @@ -2002,7 +2004,7 @@ "-1543016582": "ข้าพเจ้าขอยืนยันในที่นี้ว่าข้อมูลภาษีที่ให้ไว้นั้นถูกต้องและสมบูรณ์ ข้าพเจ้าจะแจ้งแก่ {{legal_entity_name}} ถึงการเปลี่ยนแปลงใดๆ ของข้อมูลนี้ด้วย", "-1387062433": "เหตุผลในการเปิดบัญชี", "-1088324715": "เราจะตรวจสอบเอกสารของคุณและแจ้งให้ทราบถึงสถานะของเอกสารภายใน 1-3 วันทำการ", - "-684271315": "OK", + "-329713179": "ตกลง", "-1176889260": "กรุณาเลือกประเภทเอกสาร", "-1515286538": "กรุณาใส่หมายเลขเอกสารของคุณ ", "-1785463422": "ยืนยันตัวตนของคุณ", @@ -2016,7 +2018,6 @@ "-841187054": "ลองอีกครั้ง", "-2097808873": "เราไม่สามารถตรวจสอบยืนยัน ID ของคุณด้วยรายละเอียดที่คุณให้มา ", "-228284848": "เราไม่สามารถตรวจสอบยืนยัน ID ของคุณด้วยรายละเอียดที่คุณให้มา", - "-1443800801": "หมายเลขประจำตัวของคุณถูกนำส่งเรียบร้อยแล้ว", "-1391934478": "ID ของคุณได้รับการยืนยันแล้ว คุณจะต้องส่งหลักฐานยืนยันที่อยู่ของคุณด้วย", "-118547687": "ผ่านการยืนยันตัวตนแล้ว", "-200989771": "ไปที่รายละเอียดส่วนบุคคล", @@ -2045,7 +2046,6 @@ "-813779897": "ผ่านการตรวจสอบยืนยันการเป็นเจ้าของแล้ว", "-1389323399": "คุณควรป้อน {{min_number}}-{{max_number}} อักขระ", "-1313806160": "โปรดขอรหัสผ่านใหม่และตรวจสอบอีเมล์ของคุณเพื่อรับโทเคนใหม่", - "-329713179": "ตกลง", "-1598167506": "สําเร็จแล้ว", "-1077809489": "คุณมีรหัสผ่าน {{platform}} ใหม่เพื่อใช้เข้าสู่ระบบบัญชี {{platform}} ของคุณบนเว็บและแอปมือถือ", "-2068479232": "รหัสผ่าน {{platform}}", @@ -2093,6 +2093,7 @@ "-680528873": "บัญชีของคุณจะถูกเปิดขึ้นกับ {{legal_entity_name}} และจะอยู่ภายใต้กฎหมายของรัฐเอกราชซามัว", "-1125193491": "เพิ่มบัญชี", "-2068229627": "ฉันไม่ใช่บุคคลที่มีสถานภาพทางการเมืองหรือ PEP และฉันไม่ได้เป็น PEP ในช่วง 12 เดือนที่ผ่านมา", + "-684271315": "OK", "-1720468017": "ในการให้บริการของเราแก่คุณ เราจำเป็นต้องได้รับข้อมูลจากคุณเพื่อประเมินว่าผลิตภัณฑ์หรือบริการนั้นเหมาะสมกับคุณหรือไม่", "-186841084": "เปลี่ยนอีเมล์ที่ใช้เข้าสู่ระบบของคุณ", "-907403572": "หากคุณต้องการเปลี่ยนที่อยู่อีเมล์ ประการแรกคุณจะต้องยกเลิกการเชื่อมโยงที่อยู่อีเมล์ของคุณจากบัญชี {{identifier_title}} เสียก่อน", @@ -2225,6 +2226,7 @@ "-38915613": "การเปลี่ยนแปลงที่ไม่ได้บันทึก", "-2137450250": "คุณมีการเปลี่ยนแปลงที่ไม่ได้บันทึก คุณแน่ใจหรือไม่ว่าคุณต้องการยกเลิกการเปลี่ยนแปลงและออกจากหน้านี้", "-1067082004": "ออกจากการตั้งค่า", + "-1982432743": "ดูเหมือนว่าที่อยู่ในเอกสารของคุณไม่ตรงกับที่อยู่ในโปรไฟล์ Deriv ของคุณ โปรดอัปเดตรายละเอียดส่วนตัวของคุณตอนนี้ด้วยที่อยู่ที่ถูกต้อง", "-1451334536": "ดำเนินการซื้อขายต่อ", "-1525879032": "เอกสารหลักฐานยืนยันที่อยู่ของคุณหมดอายุแล้ว โปรดส่งอีกครั้ง", "-1425489838": "ไม่จําเป็นต้องใช้หลักฐานยืนยันที่อยู่", @@ -2243,7 +2245,6 @@ "-639677539": "ซื้อเงินคริปโต", "-1560098002": "ซื้อคริปโตเคอเรนซี่ผ่านบริการแปลงเงินตรารัฐบาลเป็นคริปโต (Fiat onramp)", "-541870313": "ฝากเงินผ่านตัวแทนชําระเงิน", - "-72314872": "ฝากในสกุลเงินท้องถิ่นของคุณผ่านการแลกเปลี่ยนแบบเพียร์ทูเพียร์กับเทรดเดอร์รายอื่นในประเทศของคุณ", "-58126117": "นี่คือการเข้าถึงคริปโตเคอเรนซี่ของคุณที่ทำได้ง่ายๆ และนับเป็นวิธีที่รวดเร็วและปลอดภัยในการแลกเปลี่ยนและซื้อสกุลเงินดิจิทัล ทั้งนี้เรามีบริการสนับสนุนทางแชทสดทุกวันตลอด 24 ชั่วโมง", "-1705887186": "การฝากเงินของคุณประสบความสําเร็จ", "-142361708": "อยู่ระหว่างดําเนินการ", @@ -2345,8 +2346,11 @@ "-2056016338": "คุณจะไม่ถูกเรียกเก็บค่าธรรมเนียมการโอนสำหรับการโอนเงินในสกุลเงินเดียวกันระหว่างบัญชีเงินตรารัฐบาล Deriv และบัญชี {{platform_name_mt5}} ของคุณ", "-599632330": "เราจะเรียกเก็บค่าธรรมเนียมการโอน 1% สำหรับการโอนเงินในสกุลเงินต่างๆ ระหว่างบัญชีเงินเฟียต Deriv และบัญชี {{platform_name_mt5}} และระหว่างบัญชีเงินเฟียต Deriv และบัญชี {{platform_name_dxtrade}}", "-1196994774": "เราจะเรียกเก็บค่าธรรมเนียมการโอน 2% หรือ {{minimum_fee}} {{currency}} แล้วแต่จำนวนใดจะสูงกว่า สำหรับการโอนเงินระหว่างบัญชีสกุลเงินดิจิทัล Deriv ของคุณ", + "-1361372445": "เราจะเรียกเก็บค่าธรรมเนียมการโอนเงิน 2% หรือ {{minimum_fee}} {{currency}} แล้วแต่จำนวนใดที่สูงกว่า สำหรับการโอนเงินระหว่างบัญชี Deriv MT5 กับคริปโตเคอร์เรนซี Deriv ของคุณ บัญชี {{platform_name_derivez}} กับบัญชีคริปโตเคอร์เรนซี Deriv ของคุณ และบัญชี {{platform_name_dxtrade}} กับบัญชีริปโตเคอร์เรนซี Deriv ของคุณ", "-993556039": "เราจะเรียกเก็บค่าธรรมเนียมการโอน 2% หรือ {{minimum_fee}} {{currency}} โดยแล้วแต่ว่าจำนวนใดจะสูงกว่ากัน สำหรับการโอนเงินระหว่างบัญชีสกุลเงินดิจิทัล Deriv และบัญชี DMT5 ของคุณและระหว่างบัญชีสกุลเงินดิจิทัล Deriv และบัญชี {{platform_name_dxtrade}} ของคุณ", "-1382702462": "เราจะเรียกเก็บค่าธรรมเนียมการโอน 2% หรือ {{minimum_fee}} {{currency}} โดยแล้วแต่ว่าจำนวนใดจะสูงกว่ากัน สำหรับการโอนเงินระหว่างบัญชีสกุลเงินดิจิทัล Deriv และบัญชี DMT5 ของคุณ", + "-1995859618": "คุณสามารถโอนระหว่างบัญชีเงินตรารัฐบาล Deriv บัญชีคริปโตเคอเรนซี่ บัญชี {{platform_name_mt5}} บัญชี {{platform_name_derivez}} และบัญชี {{platform_name_dxtrade}} ของคุณได้", + "-545616470": "ในแต่ละวันคุณสามารถโอนเงินได้มากถึง {{ allowed_internal }} ครั้งระหว่างบัญชี Deriv ต่างๆของคุณ, มากถึง {{ allowed_mt5 }} ครั้งระหว่างบัญชี Deriv กับบัญชี {{platform_name_mt5}} ของคุณ, มากถึง {{ allowed_derivez }} ครั้งระหว่างบัญชี Deriv กับบัญชี {{platform_name_derivez}} ของคุณ, และมากถึง {{ allowed_dxtrade }} ครั้งระหว่างบัญชี Deriv กับบัญชี {{platform_name_dxtrade}} ของคุณ", "-1151983985": "วงเงินสำหรับการโอนอาจแตกต่างกันไปขึ้นอยู่กับอัตราแลกเปลี่ยน", "-1747571263": "โปรดทราบว่า บางการโอนอาจจะไม่สามารถทำได้", "-757062699": "การโอนอาจจะไม่สามารถใช้ได้เนื่องจากความผันผวนสูงหรือปัญหาทางเทคนิคและเมื่อตลาดแลกเปลี่ยนปิดทำการ", @@ -2631,6 +2635,7 @@ "-328128497": "Financial", "-533935232": "Financial BVI", "-565431857": "ทางการเงิน ลาบวน", + "-1290112064": "Deriv EZ", "-1669418686": "AUD/CAD", "-1548588249": "AUD/CHF", "-1552890620": "AUD/JPY", @@ -2745,6 +2750,7 @@ "-1125797291": "อัพเดตรหัสผ่านแล้ว", "-157145612": "โปรดเข้าสู่ระบบด้วยรหัสผ่านล่าสุด", "-1728185398": "ส่งหลักฐานแสดงที่อยู่อีกครั้ง", + "-612396514": "Please resubmit your proof of address.", "-1519764694": "หลักฐานแสดงที่อยู่ของคุณได้รับการยืนยันแล้ว", "-1961967032": "ส่งหลักฐานการยืนยันตัวตนอีกครั้ง", "-117048458": "โปรดส่งหลักฐานการยืนยันตัวตนของคุณ", @@ -2772,6 +2778,10 @@ "-1834929362": "อัปโหลดเอกสารของฉัน", "-1043638404": "<0>หลักฐานการเป็นเจ้าของ <1>ไม่ผ่านการตรวจสอบยืนยัน", "-1766760306": "<0><1>กรุณาอัปโหลดเอกสารของคุณ <2>พร้อมรายละเอียดที่ถูกต้อง<3>", + "-2142540205": "ดูเหมือนว่าที่อยู่ในเอกสารของคุณไม่ตรงกับที่อยู่ในโปรไฟล์ Deriv ของคุณ โปรดอัปเดตรายละเอียดส่วนตัวของคุณตอนนี้กับที่อยู่ที่ถูกต้อง", + "-482715448": "ไปที่รายละเอียดส่วนบุคคล", + "-2072411961": "หลักฐานยืนยันที่อยู่ของคุณได้รับการยืนยันแล้ว", + "-384887227": "อัปเดตที่อยู่ในโปรไฟล์ของคุณ", "-1998049070": "หากคุณยอมรับการใช้งานคุกกี้ของเราให้คลิกที่ยอมรับ สำหรับข้อมูลเพิ่มเติม <0>ดูนโยบายของเรา", "-402093392": "เพิ่มบัญชี Deriv", "-277547429": "บัญชี Deriv จะอนุญาตให้คุณฝากเงินเข้า (และถอนเงินออกจาก) บัญชี MT5 ของคุณได้", @@ -2888,7 +2898,7 @@ "-895091803": "หากคุณกำลังมองหาสัญญาการซื้อขายส่วนต่าง", "-1447215751": "ไม่แน่ใจ? ลองนี่สิ", "-2338797": "<0>เพิ่มผลตอบแทนสูงสุด โดย <0>เสี่ยงมากกว่า สิ่งที่คุณวางเดิมพัน", - "-1682067341": "รับ <0>ผลตอบแทนอัตราคงที่ โดย <0>เสี่ยงเพียง สิ่งที่คุณวางเดิมพัน", + "-1682067341": "รับ <0>ผลที่ได้รับในอัตราคงที่ โดย <0>เสี่ยงเพียง ทุนทรัพย์ที่คุณลงไป", "-1744351732": "ไม่แน่ใจว่าจะเริ่มต้นที่ไหน?", "-943710774": "นโยบายการร้องเรียนนี้ซึ่งอาจมีการเปลี่ยนแปลงเป็นครั้งคราว มีผลบังคับใช้กับบัญชีของคุณที่ลงทะเบียนกับ {{legal_entity_name}} ซึ่งมีที่อยู่สำนักงานที่จดทะเบียนไว้ที่ First Floor, Millennium House, Victoria Road, Douglas, Isle of Man, IM2 4RW บริษัทนี้ได้รับใบอนุญาตและถูกกำกับควบคุมตามกฎหมายโดย (1) Gambling Supervision Commission ในเกาะไอล์ออฟแมน (ปัจจุบัน <0>ใบอนุญาต ออกเมื่อวันที่ 31 สิงหาคม ค. ศ. 2017) และ (2) Gambling Commission ในสหราชอาณาจักร (<1>ใบอนุญาตเลขที่ 39172)", "-255056078": "นโยบายการร้องเรียนนี้ซึ่งอาจมีการเปลี่ยนแปลงเป็นครั้งคราว มีผลบังคับใช้กับบัญชีของคุณที่ลงทะเบียนกับ {{legal_entity_name}} ซึ่งมีที่อยู่สำนักงานที่จดทะเบียนไว้ที่ Level 3, Triq Dun Karm, Birkirkara, BKR 9033 ประเทศมอลตา บริษัทได้รับใบอนุญาตและถูกกำกับควบคุมตามกฎหมายโดย Malta Gaming Authority ในประเทศมอลตาสำหรับผลิตภัณฑ์การพนันเท่านั้น <0>ใบอนุญาตเลขที่ MGA/B2C/102/2000 และสำหรับลูกค้าที่อาศัยอยู่ในสหราชอาณาจักรโดย UK Gambling Commission (เลขที่บัญชี 39495)", @@ -2913,6 +2923,10 @@ "-429248139": "5. ข้อความปฏิเสธความรับผิดชอบ", "-818926350": "คณะกรรมการทางการเงินยอมรับการอุทธรณ์ภายในเวลา 45 วันหลังจากวันที่เกิดเหตุการณ์ และต่อเมื่อภายหลังจากที่เทรดเดอร์ได้พยายามแก้ไขปัญหากับบริษัทโดยตรงแล้วเท่านั้น", "-358055541": "เพิ่มประสิทธิภาพการเทรดของคุณด้วยเครื่องมือใหม่สุดเจ๋ง", + "-29496115": "เราได้ร่วมมือกับบริษัท Acuity เพื่อให้คุณได้รับชุดเครื่องมือการเทรดที่ใช้งานง่ายสำหรับ MT5 เพื่อให้คุณสามารถติดตามเหตุการณ์และเทรนด์ของตลาดได้โดยไม่เสียค่าใช้จ่าย!<0/><0/>", + "-648669944": "ดาวน์โหลดชุดเครื่องมือเทรด Acuity และใช้ประโยชน์จาก <1>ปฏิทินเศรษฐกิจมหภาค การแจ้งเตือนการตลาด เทอร์มินัลวิจัย และ <1>ไอเดียการเทรดต่างๆของศูนย์สัญญาณ โดยไม่ต้องออกจากเทอร์มินัล MT5 ของคุณ<0/><0/>", + "-794294380": "ชุดเครื่องมือเทรดนี้สามารถใช้ได้กับ Windows เท่านั้น และแนะนำใช้สำหรับสินทรัพย์ทางการเงินมากที่สุด", + "-922510206": "ต้องการความช่วยเหลือในการใช้ชุดเครื่องมือเทรด Acuity ไหม", "-815070480": "ข้อความปฏิเสธความรับผิดชอบ: บริการและข้อมูลการซื้อขายที่นำเสนอในชุดเครื่องมือเทรด Acuity นั้นไม่ควรจะถูกตีความว่าเป็นการชักชวนให้มาลงทุน และ/หรือทำการเทรด ทั้งนี้ Deriv ไม่ได้ให้คำปรึกษาในการลงทุนใดๆ นอกจากนี้ อดีตไม่ใช่คู่มือที่จะแสดงถึงผลประกอบการในอนาคตเสมอไปและกลยุทธ์ต่างๆที่อาจได้ผลในอดีตอาจจะไม่ได้ผลในอนาคต", "-2111521813": "ดาวน์โหลดชุดเครื่องมือเทรด Acuity", "-175369516": "ยินดีต้อนรับสู่ Deriv X", @@ -2968,6 +2982,7 @@ "-712681566": "การแลกเปลี่ยนจากบุคคลหนึ่งยังอีกคนหรือ P2P", "-1267880283": "{{field_name}} นั้นจำเป็นต้องมี", "-2084509650": "{{field_name}} อยู่ในรูปแบบที่ไม่ถูกต้อง", + "-222283483": "Account opening reason*", "-1779241732": "บรรทัดแรกของที่อยู่ไม่ได้อยู่ในรูปแบบที่ถูกต้อง", "-188222339": "ไม่ควรเกิน {{max_number}} อักขระ", "-1673422138": "รัฐ/จังหวัด อยู่ในรูปแบบที่ไม่ถูกต้อง", @@ -2981,13 +2996,15 @@ "-1982499699": "สำรวจดู {{platform_name_dbot}}", "-1567989247": "ส่งหลักฐานการยืนยันตัวตนและที่อยู่ของคุณ", "-184453418": "ใส่รหัสผ่าน {{platform}} ของคุณ", - "-1769158315": "จริง", - "-700260448": "ทดลอง", - "-1980366110": "ขอแสดงความยินดีด้วย คุณได้สร้างบัญชี {{category}} {{platform}} <0>{{type}} เรียบร้อยแล้ว", + "-393388362": "We’re reviewing your documents. This should take about 1 to 3 days.", "-790488576": "ลืมรหัสผ่าน?", "-926547017": "ใส่รหัสผ่าน {{platform}} ของคุณเพื่อเพิ่มบัญชี {{platform}} {{account}} {{jurisdiction_shortcode}} ของคุณ", "-1190393389": "ใส่รหัสผ่าน {{platform}} ของคุณเพื่อเพิ่มบัญชี {{platform}} {{account}} ของคุณ", "-2057918502": "คําบอกใบ้: คุณอาจป้อนรหัสผ่าน Deriv ของคุณซึ่งต่างจากรหัสผ่าน {{platform}} ของคุณ", + "-1769158315": "จริง", + "-700260448": "ทดลอง", + "-1936102840": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} account. ", + "-1570793523": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} account.", "-1928229820": "ตั้งรหัสผ่านใหม่ของนักลงทุน Deriv X", "-1087845020": "หลัก", "-1950683866": "นักลงทุน", @@ -3013,24 +3030,14 @@ "-161656683": "รหัสผ่านนักลงทุนปัจจุบัน", "-374736923": "รหัสผ่านนักลงทุนอันใหม่", "-1793894323": "สร้างหรือรีเซ็ตรหัสผ่านนักลงทุน", - "-1124208206": "สลับไปยังบัญชีจริงของคุณเพื่อสร้างบัญชี DMT5 {{account_title}} {{type_title}}", - "-1576792859": "ต้องแสดงหลักฐานการยืนยันตัวตนและที่อยู่", - "-104382603": "ตรวจสอบหลักฐานแสดงที่อยู่ของคุณ", - "-793684335": "ตรวจสอบหลักฐานการยืนยันตัวตนของคุณ", "-1271218821": "บัญชีที่เพิ่มเข้ามา", - "-599621079": "เพิ่มบัญชี Deriv MT5 {{account_type}} ของคุณภายใต้บริษัท Deriv (SVG) LLC (หมายเลขบริษัท 273 LLC 2020)", - "-1302969276": "เพิ่มบัญชี Deriv MT5 {{account_type}} ของคุณภายใต้บริษัท Deriv (BVI) Ltd ซึ่งถูกกำกับควบคุมโดยคณะกรรมการบริการทางการเงินหมู่เกาะบริติชเวอร์จิน (ใบอนุญาตเลขที่ SIBA/{{line_break}}L/18/1114)", - "-1422519943": "เพิ่มบัญชี DMT5 {{account_type}} ของคุณภายใต้บริษัท Deriv (V) Ltd ซึ่งกำกับควบคุมโดยคณะกรรมาธิการบริการทางการเงินวานูอาตู", - "-1731304187": "เพิ่มบัญชี Deriv MT5 CFDs ของคุณภายใต้บริษัท Deriv Investments (Europe) Limited ซึ่งถูกกำกับควบคุมโดยหน่วยงานบริการทางการเงินมอลตา (MFSA) (ใบอนุญาตเลขที่. IS/70156)", - "-16048185": "ในการสร้างบัญชีนี้ ก่อนอื่นเราต้องการหลักฐานการยืนยันตัวตนและที่อยู่ของคุณ", - "-1627989291": "ในการสร้างบัญชีนี้ ก่อนอื่นเราจำเป็นต้องให้คุณส่งหลักฐานการยืนยันตัวตนของคุณอีกครั้ง", - "-1389025684": "ในการสร้างบัญชีนี้ ก่อนอื่นเราจำเป็นต้องให้คุณส่งหลักฐานการยืนยันตัวตนและที่อยู่ของคุณอีกครั้ง", - "-1615750576": "คุณจะสามารถเปิดบัญชีนี้ได้เมื่อเอกสารที่คุณส่งมาได้รับการยืนยันแล้ว", - "-724308541": "เขตอำนาจรับผิดชอบสำหรับบัญชี Deriv MT5 CFDs ของคุณ", - "-479119833": "เลือกเขตอำนาจรับผิดชอบสำหรับบัญชี DMT5 {{account_type}} ของคุณ", + "-1576792859": "ต้องแสดงหลักฐานการยืนยันตัวตนและที่อยู่", "-1931257307": "คุณจำเป็นจะต้องส่งหลักฐานการยืนยันตัวตน", "-2026018074": "เพิ่มบัญชี Deriv MT5 <0>{{account_type_name}} ของคุณภายใต้ Deriv (SVG) LLC (หมายเลขบริษัท 273 LLC 2020)", "-162320753": "เพิ่มบัญชี Deriv MT5 <0>{{account_type_name}} ของคุณภายใต้บริษัท Deriv (BVI) Ltd ซึ่งถูกกำกับควบคุมโดยคณะกรรมการบริการทางการเงินหมู่เกาะบริติชเวอร์จิน (ใบอนุญาตเลขที่ SIBA/L/18/1114)", + "-1731304187": "เพิ่มบัญชี Deriv MT5 CFDs ของคุณภายใต้บริษัท Deriv Investments (Europe) Limited ซึ่งถูกกำกับควบคุมโดยหน่วยงานบริการทางการเงินมอลตา (MFSA) (ใบอนุญาตเลขที่. IS/70156)", + "-724308541": "เขตอำนาจรับผิดชอบสำหรับบัญชี Deriv MT5 CFDs ของคุณ", + "-479119833": "เลือกเขตอำนาจรับผิดชอบสำหรับบัญชี DMT5 {{account_type}} ของคุณ", "-450424792": "คุณจำเป็นต้องมีบัญชีจริง (สกุลเงินตรารัฐบาลหรือเงินดิจิทัล) ใน Deriv เพื่อสร้างบัญชี Deriv MT5 จริง", "-1760596315": "สร้างบัญชี Deriv", "-705682181": "มอลตา", @@ -3216,7 +3223,7 @@ "-313112159": "บล็อกนี้จะคล้ายกับบล็อกด้านบน แต่ต่างกันที่ว่าบล๊อกนี้จะส่งคืนค่ามาอันหนึ่ง โดยค่าที่ส่งคืนนั้นสามารถถูกกำหนดให้กับตัวแปรที่คุณเลือกได้", "-1783320173": "คืนค่าภายในฟังก์ชันก่อนกําหนด", "-1485521724": "การส่งคืนตามเงื่อนไข", - "-1482801393": "ผลตอบแทน", + "-1482801393": "ผลที่ได้รับ", "-46453136": "ได้รับ", "-1838027177": "อย่างแรก", "-1182568049": "รับรายการในลิสต์", diff --git a/packages/translations/src/translations/tr.json b/packages/translations/src/translations/tr.json index c04fba77f4a4..cdc6c2aa5031 100644 --- a/packages/translations/src/translations/tr.json +++ b/packages/translations/src/translations/tr.json @@ -70,10 +70,8 @@ "98972777": "rastgele madde", "100239694": "Bilgisayarınızdan kartın ön tarafını yükleyin", "102226908": "Alan boş bırakılamaz", - "107206831": "Belgenizi inceleyeceğiz ve 1-3 gün içinde durumunu size bildireceğiz.", "108916570": "Süre: {{duration}} gün", "109073671": "Lütfen daha önce para yatırmak için kullandığınız bir e-cüzdan kullanın. E-cüzdanın para çekme işlemini desteklediğinden emin olun. Para çekme işlemlerini destekleyen e-cüzdanların listesini <0>burada bulabilirsiniz.", - "110261653": "Congratulations, you have successfully created your {{category}} {{platform}} <0>{{type}} {{jurisdiction_selected_shortcode}} account. To start trading, transfer funds from your Deriv account into this account.", "111215238": "Direkt ışıktan uzaklaşın", "111718006": "Bitiş tarihi", "111931529": "7 gün boyunca maksimum toplam bahis", @@ -182,6 +180,7 @@ "248909149": "Telefonunuza güvenli bir bağlantı gönder", "249908265": "{{- residence}} vatandaşı mısınız?", "251134918": "Hesap bilgileri", + "251322536": "Deriv EZ accounts", "251445658": "Koyu tema", "251882697": "Teşekkür ederim! Cevabınız sistemimize kaydedildi. Devam etmek için<0/><0/> lütfen 'Tamam' düğmesine tıklayın.", "254912581": "Bu blok EMA'ya benziyor, ancak size giriş listesine ve verilen süreye göre tüm EMA hattını verir.", @@ -197,6 +196,7 @@ "265644304": "Ticaret türleri", "267992618": "Platformlarda önemli özellikler veya işlevler yoktur.", "268940240": "Bakiyeniz ({{format_balance}}} {{currency}}), izin verilen geçerli minimum çekilme oranından ({{format_min_withdraw_amount}}} {{currency}}) düşük. Para çekme işlemine devam etmek için lütfen hesabınızın üstünü tamamlayın.", + "269322978": "Deposit with your local currency via peer-to-peer exchange with fellow traders in your country.", "269607721": "Yükle", "270339490": "\"Üzerinde\" seçeneğini belirlerseniz, son tikin son basamağı tahmininizden büyükse ödemeyi kazanırsınız.", "270610771": "Bu örnekte, bir mumun açılış fiyatı \"candle_open_price\" değişkenine atanır.", @@ -212,6 +212,7 @@ "278684544": "sondan # dan alt listesi alın", "282319001": "Resminizi kontrol edin", "282564053": "Ardından, adres kanıtınıza ihtiyacımız olacak.", + "283830551": "Your address doesn’t match your profile", "283986166": "Web sitesinde kendini-dışlama yalnızca {{brand_website_name}} hesabınız için geçerlidir ve diğer şirketleri ve web sitelerini içermez.", "284527272": "antimode", "284772879": "Sözleşme", @@ -245,7 +246,6 @@ "327534692": "Süre değerine izin verilmiyor. Botu çalıştırmak için lütfen {{min}} girin.", "328539132": "Talimatların içinde belirli sayıda yinelenir", "329404045": "<1>{{platform}} {{account_title}} hesabı oluşturmak içingerçek hesabınıza geçin<0>", - "332886946": "<1>Acuity\"yi kullanma konusunda yardıma mı ihtiyacınız var? <0/>Bu <2>kullanım kılavuzuna göz atın.", "333456603": "Para çekme limitleri", "334680754": "Switch to your real account to create a Deriv MT5 account", "334942497": "Satın alma zamanı", @@ -368,7 +368,6 @@ "478280278": "Bu blok, bir giriş isteyen özelleştirilmiş bir mesaj kullanan bir iletişim kutusu görüntüler. Giriş bir metin dizesi veya sayı olabilir ve bir değişkene atanabilir. Bir iletişim kutusu görüntülendiğinde, stratejiniz duraklatılır ve yalnızca bir yanıt girip \"TAMAM\"a tıkladıktan sonra devam eder.", "479420576": "Üçüncü derece", "481276888": "Goes Outside", - "483246914": "Deriv MT5\"inizi ekleyin {{account_type}} Deriv altındaki STP hesabı (FX) Labuan Financial Services Authority tarafından düzenlenen Ltd (Lisans no. MB/18/0024).", "483279638": "Değerlendirme Tamamlandı<0/><0/>", "483591040": "Tüm {{ delete_count }} blokları silinsin mi?", "485379166": "İşlemleri görüntüle", @@ -419,7 +418,6 @@ "551569133": "İşlem limitleri hakkında daha fazla bilgi edinin", "554410233": "Bu bir top-10 ortak parolasıdır", "555351771": "Ticari parametreleri ve ticaret seçeneklerini tanımladıktan sonra, belirli koşullar karşılandığında botunuza sözleşmeleri satın almasını söylemek isteyebilirsiniz. Bunu yapmak için botunuzun karar vermesine yardımcı olmak için koşullu blokları ve gösterge bloklarını kullanabilirsiniz.", - "556095366": "Bilgilerinizi birkaç dakika içinde işleyeceğiz ve durumunu e-posta ile bilgilendireceğiz.", "556264438": "Zaman aralığı", "559224320": "İleri düzey kullanıcılar için açılır ticaret tablolarına sahip ticari botlar oluşturmak için klasik \"sürükle ve bırak\" aracımız.", "561982839": "Para biriminizi değiştirin", @@ -576,6 +574,7 @@ "745656178": "Sözleşmenizi piyasa fiyatı üzerinden satmak için bu bloğu kullanın.", "745674059": "Seçili seçeneğe göre belirli bir metin dizisinden belirli bir karakteri geri getirir. ", "746112978": "Bilgisayarınızın güncellenmesi birkaç saniye sürebilir", + "750886728": "Switch to your real account to submit your documents", "751692023": "Yanlış bir transfer yaparsanız geri iade garantisi <0>vermiyoruz.", "752024971": "Maksimum basamak sayısına ulaşıldı", "752633544": "Belirli eşiklere ulaştığınızda kimlik ve adres belgesi sunmanız gerekecektir", @@ -790,7 +789,6 @@ "1023643811": "Bu blok, belirtilen türde bir sözleşme satın alır.", "1023795011": "Çift/Tek", "1024205076": "Mantık İşlemi", - "1024760087": "You are verified to add this account", "1025887996": "Negatif denge koruması", "1026046972": "Lütfen {{max_payout}} değerinden daha düşük bir ödeme tutarı girin.", "1027098103": "Kaldıraç, mevcut sermayenizi kullanarak daha büyük bir pozisyon ile ticaret yapma olanağı sağlar. Kaldıraç, farklı semboller arasında değişiklik gösterir.", @@ -874,6 +872,7 @@ "1112582372": "Aralık süresi", "1113119682": "Bu blok, bir mum listesinden seçilen mum değerini verir.", "1113292761": "8 Mb'den az", + "1113433728": "Resubmit your proof of identity and address", "1117863275": "Güvenlik ve emniyet", "1118294625": "{{exclusion_end}} yılına kadar kendinizi web sitemizde işlem yapmayı dışlamayı seçtiniz. Kendini-dışlama döneminizden sonra bir ticaret veya para yatırma işlemi yapamazsınız. Lütfen canlı sohbet yoluyla bizimle iletişime geçin.", "1119887091": "Doğrulama", @@ -935,7 +934,6 @@ "1189886490": "Lütfen başka bir Deriv {{platform_name_mt5}} yada {{platform_name_dxtrade}} hesabı oluşturun.", "1191429031": "<0>{{platform_name_dxtrade}} şifrenizi değiştirmek için lütfen e-postadaki bağlantıya tıklayın.", "1191644656": "Piyasa yönünü tahmin edin ve bir pozisyonu açmak için “Up” veya “Down” seçeneklerinden birini seçin. Bir pozisyon açtığınızda bir komisyon talep edeceğiz.", - "1191778951": "Kimlik kanıtınızı ve adresinizi kontrol edin", "1192708099": "Süre birimi", "1195393249": "{{ notification_type }} bildirin: {{ notification_sound }} {{ input_message }} sesi ile", "1196006480": "Kâr eşiği", @@ -1009,7 +1007,6 @@ "1281290230": "Seç", "1282951921": "Only Downs", "1284522768": "\"Kayıp\" seçili ise, son işlem başarısız olduğunda \"Doğru\" olarak döner. Aksi takdirde, boş bir dize döndürür.", - "1285686014": "Pending proof of identity review", "1286094280": "Para çek", "1286507651": "Kimlik doğrulama ekranını kapat", "1288965214": "Pasaport", @@ -1105,7 +1102,6 @@ "1384222389": "Kasiyerin kilidini açmak için lütfen geçerli kimlik belgeleri gönderin.", "1385418910": "Başka bir hesap oluşturmadan önce lütfen mevcut gerçek hesabınız için bir para birimi ayarlayın.", "1387503299": "Oturum açın", - "1388770399": "Kimlik kanıtı gerekli", "1389197139": "İçe aktarma hatası", "1390792283": "Ticaret parametreleri", "1391174838": "Olası ödeme:", @@ -1118,6 +1114,7 @@ "1396417530": "Ayı Piyasası Endeksi", "1397628594": "Yetersiz fon", "1399620764": "Yasal olarak finansal bilgilerinizi istemek zorundayız.", + "1400341216": "We’ll review your documents and notify you of its status within 1 to 3 days.", "1400637999": "(Tüm alanlar zorunludur)", "1400732866": "Kameradan görünüm", "1400962248": "Yüksek-Kapanış", @@ -1263,9 +1260,11 @@ "1584109614": "Tikler Dizesi Listesi", "1584578483": "50'den fazla varlık: forex, hisse senetleri, hisse senedi endeksleri, sentetik endeksler ve kripto para birimleri.", "1584936297": "XML dosyası desteklenmeyen öğeler içeriyor. Lütfen dosyayı kontrol edin veya değiştirin.", + "1585859194": "We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts, your Deriv fiat and {{platform_name_derivez}} accounts, and your Deriv fiat and {{platform_name_dxtrade}} accounts.", "1587046102": "O ülkedeki belgeler şu anda desteklenmiyor — başka bir belge türü deneyin", "1589640950": "Bu sözleşmenin yeniden satışa sunulması sunulmamaktadır.", "1589702653": "Adres kanıtı", + "1591933071": "Resubmit document", "1593010588": "Login now", "1594147169": "Lütfen tekrar gelin", "1594322503": "Satış yapılabilir", @@ -1280,7 +1279,6 @@ "1605222432": "Ticaret konusunda hiçbir bilgim ve tecrübem yok.", "1605292429": "Maks. toplam kayıp", "1612105450": "Alt dize al", - "1613273139": "Resubmit proof of identity and address", "1613633732": "Aralık 10-60 dakika arasında olmalıdır", "1615897837": "Sinyal EMA Süresi {{ input_number }}", "1618809782": "Maximum withdrawal", @@ -1324,7 +1322,6 @@ "1665272539": "Unutmayın: Seçilen tarihe kadar hesabınızda oturum açamazsınız.", "1665738338": "Bakiye", "1665756261": "Canlı sohbete git", - "1667395210": "Kimlik kanıtınız başarıyla gönderildi", "1668138872": "Hesap ayarlarını değiştir", "1670016002": "Çarpan: {{ multiplier }}", "1670426231": "Bitiş zamanı", @@ -1349,6 +1346,7 @@ "1694517345": "Yeni bir e-posta adresi girin", "1695807119": "Google Drive blokları yüklenemedi", "1700233813": "{{selected_value}} konumundan aktarıma izin verilmiyor. Lütfen açılır listeden başka bir hesap seçin", + "1701447705": "Please update your address", "1704656659": "CFD ticaretinde ne kadar deneyiminiz var?", "1708413635": "{{currency_name}} ({{currency}}) hesabınız için", "1709859601": "Çıkış Noktası Zamanı", @@ -1419,6 +1417,7 @@ "1778893716": "Buraya tıklayın", "1779519903": "Geçerli bir sayı olmalıdır.", "1780770384": "Bu blok size 0.0 ile 1.0 arasında rastgele bir fraksiyon verir.", + "1781393492": "We do not charge a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts, your Deriv fiat and {{platform_name_derivez}} accounts and your Deriv fiat and {{platform_name_dxtrade}} accounts.", "1782308283": "Hızlı strateji", "1782395995": "Son Basamak Tahmini", "1782690282": "Bloklar menüsü", @@ -1429,6 +1428,7 @@ "1788966083": "01-07-1999", "1789497185": "Pasaport ayrıntılarınızın bulanıklık veya parlama olmadan okunabildiğinden emin olun", "1790770969": "FX - majörler (standart/mikro lotlar), FX - minörler, Emtia, Kripto para birimleri", + "1791017883": "Check out this <0>user guide.", "1791432284": "Ülke ara", "1791971912": "Geçmiş", "1793913365": "Para yatırmak için lütfen {{currency_symbol}} hesabınıza geçin.", @@ -1549,6 +1549,7 @@ "1918832194": "Deneyim yok", "1919030163": "İyi bir selfie yapmak için ipuçları", "1919594496": "{{website_name}} is not affiliated with any payment agents. Customers deal with payment agents at their sole risk. Customers are advised to check the credentials of payment agents and the accuracy of any information about payment agents (on {{website_name}} or elsewhere) before using their services.", + "1919694313": "To start trading, transfer funds from your Deriv account into this account.", "1920217537": "Karşılaştır", "1920468180": "SMA bloğu nasıl kullanılır", "1921634159": "Birkaç kişisel detay", @@ -1655,6 +1656,7 @@ "2037481040": "Hesabınızı fonlamak için bir yol seçin", "2037665157": "Tüm Blokları Genişlet", "2037906477": "# dan alt liste alın", + "2042023623": "We’re reviewing your documents. This should take about 5 minutes.", "2042050260": "- Satın alma fiyatı: sözleşmenin satın alma fiyatı (bahisi)", "2042115724": "Hesabınızın ve kişisel bilgiler sayfanızın ekran görüntüsünü adınızla birlikte yükleyin, hesap numarası, telefon numarası, ve e-posta adresi.", "2042778835": "Zaman zaman değişebilen bu şikayet politikası, {{legal_entity_name}} ile kayıtlı hesabınız için geçerlidir.", @@ -2002,7 +2004,7 @@ "-1543016582": "Bu vesile ile verdiğim vergi bilgilerinin doğru ve eksiksiz olduğunu onaylıyorum. Ayrıca bu bilgilerdeki herhangi bir değişiklik hakkında {{legal_entity_name}} tarafını da bilgilendireceğim.", "-1387062433": "Hesap açma nedeni", "-1088324715": "We’ll review your documents and notify you of its status within 1 - 3 working days.", - "-684271315": "TAMAM", + "-329713179": "Tamam", "-1176889260": "Lütfen bir belge türü seçin.", "-1515286538": "Lütfen belge numaranızı girin. ", "-1785463422": "Kimliğinizi doğrulayın", @@ -2016,7 +2018,6 @@ "-841187054": "Tekrar Deneyin", "-2097808873": "Verdiğiniz ayrıntılarla kimliğinizi doğrulayamadık. ", "-228284848": "Kimliğinizi sağladığınız ayrıntılarla doğrulayamadık.", - "-1443800801": "Kimlik numaranız başarıyla gönderildi", "-1391934478": "Kimliğiniz doğrulandı. Ayrıca adres kanıtınızı da göndermeniz gerekir.", "-118547687": "Kimlik doğrulamasını geçti", "-200989771": "Kişisel ayrıntılara git", @@ -2045,7 +2046,6 @@ "-813779897": "Sahiplik doğrulaması kanıtı geçti.", "-1389323399": "{{min_number}} - {{max_number}} karakter girmelisiniz.", "-1313806160": "Lütfen yeni bir parola isteyin ve yeni token için e-postanızı kontrol edin.", - "-329713179": "Tamam", "-1598167506": "Başarı", "-1077809489": "Web ve mobil uygulamalardaki {{platform}} hesaplarınıza giriş yapmak için yeni bir {{platform}} şifreniz var.", "-2068479232": "{{platform}} parolası", @@ -2093,6 +2093,7 @@ "-680528873": "Hesabınız {{legal_entity_name}} ile açılacak ve Samoa yasalarına tabi olacaktır.", "-1125193491": "Hesap ekle", "-2068229627": "PEP değilim ve son 12 ay içinde PEP olmadım.", + "-684271315": "TAMAM", "-1720468017": "Size hizmetlerimizi sağlarken, belirli bir ürün veya hizmetin sizin için uygun olup olmadığını değerlendirmek için sizden bilgi almamız gerekmektedir.", "-186841084": "Change your login email", "-907403572": "To change your email address, you'll first need to unlink your email address from your {{identifier_title}} account.", @@ -2225,6 +2226,7 @@ "-38915613": "Kaydedilmemiş değişiklikler", "-2137450250": "Kaydedilmemiş değişiklikleriniz var. Değişiklikleri iptal etmek ve bu sayfadan çıkmak istediğinizden emin misiniz?", "-1067082004": "Ayarlardan Çık", + "-1982432743": "It appears that the address in your document doesn’t match the address\n in your Deriv profile. Please update your personal details now with the\n correct address.", "-1451334536": "Alım satım işlemine devam et", "-1525879032": "Adres kanıtı belgelerinizin süresi doldu. Lütfen tekrar gönderin.", "-1425489838": "Adres doğrulama belgesi gerekli değil", @@ -2243,7 +2245,6 @@ "-639677539": "Kripto para satın al", "-1560098002": "Fiat onramp ile kripto para satın al", "-541870313": "Ödeme aracıları aracılığıyla para yatırın", - "-72314872": "Ülkenizdeki diğer tüccarlarla uçtan uca değişim ile yerel para biriminize para yatırınız.", "-58126117": "Kriptoya kolay erişiminiz. Kripto para birimlerini hızlı ve güvenli bir şekilde değiştirme ve satın alma yöntemi. 24/7 canlı sohbet desteği.", "-1705887186": "Para yatırmanız başarılı.", "-142361708": "Işlemde", @@ -2345,8 +2346,11 @@ "-2056016338": "Deriv fiat ve {{platform_name_mt5}} hesaplarınız arasında ayrı ayrı para birimindeki transferler için sizden transfer ücreti alınmaz.", "-599632330": "Deriv fiat ve {{platform_name_mt5}} hesaplarınız arasında ve Deriv fiat ve {{platform_name_dxtrade}} hesaplarınız arasında farklı para birimindeki transferler için %1 transfer ücreti alırız.", "-1196994774": "Deriv kripto para hesaplarınız arasındaki transferler için %2 transfer ücreti veya {{minimum_fee}} {{currency}}, hangisi daha yüksekse, tahsil edeceğiz.", + "-1361372445": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts, your Deriv cryptocurrency and {{platform_name_derivez}} accounts, and your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.", "-993556039": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts and between your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.", "-1382702462": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts.", + "-1995859618": "You may transfer between your Deriv fiat, cryptocurrency, {{platform_name_mt5}}, {{platform_name_derivez}} and {{platform_name_dxtrade}} accounts.", + "-545616470": "Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts, up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts, up to {{ allowed_derivez }} transfers between your Deriv and {{platform_name_derivez}} accounts, and up to {{ allowed_dxtrade }} transfers between your Deriv and {{platform_name_dxtrade}} accounts.", "-1151983985": "Transfer limitleri döviz kurlarına bağlı olarak değişiklik gösterebilir.", "-1747571263": "Bazı transferlerin mümkün olmayabileceğini lütfen unutmayın.", "-757062699": "Transferler, yüksek volatilite veya teknik sorunlar nedeniyle ve döviz piyasaları kapalı olduğunda kullanılamayabilir.", @@ -2631,6 +2635,7 @@ "-328128497": "Finansal", "-533935232": "Finansal BVI", "-565431857": "Finansal Labuan", + "-1290112064": "Deriv EZ", "-1669418686": "AUD/CAD", "-1548588249": "AUD/CHF", "-1552890620": "AUD/JPY", @@ -2745,6 +2750,7 @@ "-1125797291": "Parola güncellendi.", "-157145612": "Lütfen güncellenmiş parolanızla oturum açın.", "-1728185398": "Adres kanıtını yeniden gönderin", + "-612396514": "Please resubmit your proof of address.", "-1519764694": "Your proof of address is verified.", "-1961967032": "Kimlik kanıtını yeniden gönderin", "-117048458": "Please submit your proof of identity.", @@ -2772,6 +2778,10 @@ "-1834929362": "Belgemi yükle", "-1043638404": "<0>Sahiplik doğrulaması kanıtı <1>başarısız oldu", "-1766760306": "<0><1>Lütfen belgenizi doğru ayrıntılarla yükleyin<2>.<3>", + "-2142540205": "It appears that the address in your document doesn’t match the address in your Deriv profile. Please update your personal details now with the correct address.", + "-482715448": "Go to Personal details", + "-2072411961": "Your proof of address has been verified", + "-384887227": "Update the address in your profile.", "-1998049070": "Çerezleri kullanmayı kabul ediyorsanız Kabul Et'i tıklayın. Daha fazla bilgi için, <0>politikamıza bakın.", "-402093392": "Deriv Hesabı Ekle", "-277547429": "Bir Deriv hesabı, MT5 hesap(lar) ınıza para yatırmanıza (ve para çekmenize) olanak tanır.", @@ -2913,6 +2923,10 @@ "-429248139": "5. Yasal Uyarı", "-818926350": "Mali Komisyon, olayın tarihinden itibaren 45 gün içerisinde ve ancak ticaret yapan kişi sorunu doğrudan şirketle çözmeye çalıştıktan sonra itirazları kabul eder.", "-358055541": "Harika yeni araçlarla işlemlerinizi güçlendirin", + "-29496115": "We've partnered with Acuity to give you a suite of intuitive trading tools for MT5 so you can keep track of market events and trends, free of charge!<0/><0/>", + "-648669944": "Download the Acuity suite and take advantage of the <1>Macroeconomic Calendar, Market Alerts, Research Terminal, and <1>Signal Centre Trade Ideas without leaving your MT5 terminal.<0/><0/>", + "-794294380": "This suite is only available for Windows, and is most recommended for financial assets.", + "-922510206": "Need help using Acuity?", "-815070480": "Feragatname: Acuity tarafından sağlanan ticaret hizmetleri ve bilgiler, yatırım ve/veya ticaret için bir talep olarak yorumlanmamalıdır. Deriv yatırım tavsiyesi sunmamaktadır. Geçmiş, gelecekteki performans için bir rehber değildir, ve geçmişte işe yarayan stratejiler gelecekte işe yaramayabilir.", "-2111521813": "Indir Acuity", "-175369516": "Deriv X'e hoş geldiniz", @@ -2968,6 +2982,7 @@ "-712681566": "Uçtan uca değişim", "-1267880283": "{{field_name}} gereklidir", "-2084509650": "{{field_name}} düzgün biçimlendirilmemiş.", + "-222283483": "Account opening reason*", "-1779241732": "Adresin ilk satırı doğru biçimde değil.", "-188222339": "Bu, {{max_number}} karakteri aşmamalıdır.", "-1673422138": "Bölge/İl uygun biçimde değil.", @@ -2981,13 +2996,15 @@ "-1982499699": "{{platform_name_dbot}} Keşfedin", "-1567989247": "Kimlik belgenizi ve adresinizi gönderin", "-184453418": "{{platform}} şifrenizi girin", - "-1769158315": "gerçek", - "-700260448": "demo", - "-1980366110": "Congratulations, you have successfully created your {{category}} {{platform}} <0>{{type}} account.", + "-393388362": "We’re reviewing your documents. This should take about 1 to 3 days.", "-790488576": "Şifreni mi unuttun?", "-926547017": "Enter your {{platform}} password to add a {{platform}} {{account}} {{jurisdiction_shortcode}} account.", "-1190393389": "{{platform}} {{account}} hesabı eklemek için {{platform}} şifrenizi girin.", "-2057918502": "İpucu: {{platform}} parolanızdan farklı olan Deriv parolanızı girmiş olabilirsiniz.", + "-1769158315": "gerçek", + "-700260448": "demo", + "-1936102840": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} account. ", + "-1570793523": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} account.", "-1928229820": "Deriv X yatırımcı parolasını sıfırla", "-1087845020": "ana", "-1950683866": "yatırımcı", @@ -3013,24 +3030,14 @@ "-161656683": "Mevcut yatırımcı parolası", "-374736923": "Yeni yatırımcı parolası", "-1793894323": "Yatırımcı parolası oluşturun veya sıfırlayın", - "-1124208206": "Bir DMT5 {{account_title}} {{type_title}} hesabı oluşturmak için gerçek hesabınıza geçin.", - "-1576792859": "Kimlik kanıtı ve adres gereklidir", - "-104382603": "Adres kanıtınızı kontrol edin", - "-793684335": "Kimlik kanıtınızı kontrol edin", "-1271218821": "Hesap eklendi", - "-599621079": "Deriv MT5 {{account_type}} hesabınızı Deriv (SVG) LLC (şirket no. 273 LLC 2020) altına ekleyin.", - "-1302969276": "Deriv MT5 {{account_type}} hesabınızı, İngiliz Virgin Adaları Finansal Hizmetler Komisyonu tarafından düzenlenen Deriv (BVI) Ltd'nin altına ekleyin (Lisans no. SIBA/{{line_break}}L/18/1114).", - "-1422519943": "Vanuatu Finansal Hizmetler Komisyonu tarafından düzenlenen Deriv (V) Ltd altına Deriv MT5 {{account_type}} hesabınızı ekleyin.", - "-1731304187": "Add your Deriv MT5 CFDs account under Deriv Investments (Europe) Limited regulated by the Malta Financial Services Authority (MFSA) (licence no. IS/70156).", - "-16048185": "Bu hesabı oluşturmak için öncelikle kimlik kanıtınıza ve adresinize ihtiyacımız var.", - "-1627989291": "Bu hesabı oluşturmak için öncelikle kimlik kanıtınızı yeniden göndermeniz gerekiyor.", - "-1389025684": "Bu hesabı oluşturmak için öncelikle kimlik kanıtınızı ve adresinizi yeniden göndermeniz gerekiyor.", - "-1615750576": "Gönderdiğiniz belgeler doğrulandıktan sonra bu hesabı açabileceksiniz.", - "-724308541": "Jurisdiction for your Deriv MT5 CFDs account", - "-479119833": "Choose a jurisdiction for your Deriv MT5 {{account_type}} account", + "-1576792859": "Kimlik kanıtı ve adres gereklidir", "-1931257307": "You will need to submit proof of identity", "-2026018074": "Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (SVG) LLC (company no. 273 LLC 2020).", "-162320753": "Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (BVI) Ltd, regulated by the British Virgin Islands Financial Services Commission (License no. SIBA/L/18/1114).", + "-1731304187": "Add your Deriv MT5 CFDs account under Deriv Investments (Europe) Limited regulated by the Malta Financial Services Authority (MFSA) (licence no. IS/70156).", + "-724308541": "Jurisdiction for your Deriv MT5 CFDs account", + "-479119833": "Choose a jurisdiction for your Deriv MT5 {{account_type}} account", "-450424792": "Gerçek bir Deriv MT5 hesabı oluşturmak için Deriv'de gerçek bir hesaba (fiat para birimi veya kriptopara birimi) ihtiyacınız var.", "-1760596315": "Bir Deriv hesabı oluştur", "-705682181": "Malta", diff --git a/packages/translations/src/translations/vi.json b/packages/translations/src/translations/vi.json index aa788099b2a3..8eae233ef118 100644 --- a/packages/translations/src/translations/vi.json +++ b/packages/translations/src/translations/vi.json @@ -70,10 +70,8 @@ "98972777": "mục ngẫu nhiên", "100239694": "Tải mặt trước thẻ của bạn từ máy tính", "102226908": "Phần không thể để trống", - "107206831": "Chúng tôi sẽ xem xét tài liệu và thông báo cho bạn về trạng thái của nó trong vòng 1-3 ngày.", "108916570": "Thời lượng: {{duration}} ngày", "109073671": "Vui lòng chọn loại ví điện tử bạn đã dùng để gửi tiền. Đảm bảo rằng ví đó hỗ trợ việc rút tiền. Xem danh sách các ví điện tử cho phép rút tiền <0>tại đây.", - "110261653": "Chúc mừng, bạn đã tạo thành công tài khoản {{category}} {{platform}} <0>{{type}} {{jurisdiction_selected_shortcode}}. Để bắt đầu giao dịch, hãy chuyển tiền từ tài khoản Deriv của bạn vào tài khoản này.", "111215238": "Tránh khỏi ánh sáng trực tiếp", "111718006": "Ngày kết thúc", "111931529": "Tổng tiền cược tối đa qua 7 ngày", @@ -182,6 +180,7 @@ "248909149": "Gửi đường dẫn an toàn tới điện thoại", "249908265": "Bạn có phải là công dân tại {{- residence}}?", "251134918": "Thông tin tài khoản", + "251322536": "Deriv EZ accounts", "251445658": "Nền tối", "251882697": "Cảm ơn bạn! Phản hồi của bạn đã được ghi lại vào hệ thống của chúng tôi.<0/><0/> Vui lòng nhấp vào “OK” để tiếp tục.", "254912581": "Khung này tương tự như EMA, ngoại trừ việc nó cung cấp cho bạn toàn bộ dòng EMA dựa trên danh sách đầu vào và khoảng thời gian nhất định.", @@ -197,6 +196,7 @@ "265644304": "Kiểu giao dịch", "267992618": "Các nền tảng thiếu các tính năng hoặc chức năng thiết yếu.", "268940240": "Số dư của bạn ({{format_balance}} {{currency}}) ít hơn số tiền tối thiểu được phép rút hiện tại ({{format_min_withdraw_amount}} {{currency}}). Vui lòng nạp tiền vào tài khoản để tiếp tục rút tiền.", + "269322978": "Deposit with your local currency via peer-to-peer exchange with fellow traders in your country.", "269607721": "Tải lên", "270339490": "Nếu bạn chọn \"Trên\", bạn sẽ giành chiến thắng nếu chữ số cuối cùng của tick cuối cùng lớn hơn so với dự đoán bạn đưa ra.", "270610771": "Trong ví dụ này, giá bắt đầu của một nến được gán vào biến \"candle_open_price\".", @@ -212,6 +212,7 @@ "278684544": "lấy danh sách phụ # từ cuối", "282319001": "Hãy kiểm tra ảnh của bạn", "282564053": "Tiếp theo, chúng tôi sẽ cần bằng chứng địa chỉ của bạn.", + "283830551": "Your address doesn’t match your profile", "283986166": "Tự loại trừ trên trang web này chỉ áp dụng cho tài khoản {{brand_website_name}} của bạn và không bao gồm các công ty hoặc trang web khác.", "284527272": "antimode", "284772879": "Hợp đồng", @@ -245,7 +246,6 @@ "327534692": "Giá trị thời lượng không khả dụng. Để chạy được bot, vui lòng nhập {{min}}.", "328539132": "Lặp lại các chỉ dẫn bên trong một số lần xác định", "329404045": "<0>Chuyển sang tài khoản thực của bạn<1> để tạo tài khoản {{account_title}} {{platform}}.", - "332886946": "<1>Bạn cần trợ giúp khi sử dụng Acuity? <0/>Xem <2>hướng dẫn sử dụng này.", "333456603": "Giới hạn rút tiền", "334680754": "Switch to your real account to create a Deriv MT5 account", "334942497": "Thời gian mua", @@ -368,7 +368,6 @@ "478280278": "Khung này hiển thị một hộp thoại sử dụng tin nhẵn tùy chỉnh để yêu cầu một đầu vào. Đầu vào có thể là một chuỗi văn bản hoặc một số và có thể được gán vào một biến. Khi hộp thoại hiển thị, chiến lược của bạn sẽ bị tạm dừng và chỉ tiếp tục sau khi bạn nhập một phản hồi sau đó nhấp vào \"OK\".", "479420576": "Cấp thứ ba", "481276888": "Ra Ngoài", - "483246914": "Thêm tài khoản Deriv MT5 {{account_type}} STP của bạn theo Derov (FX) Ltd được quản lý bởi Cơ quan Dịch vụ Tài chính Labuan (Giấy phép số MB/18/0024).", "483279638": "Đánh giá đã hoàn thành<0/><0/>", "483591040": "Xóa tất cả {{ delete_count }} khung?", "485379166": "Xem giao dịch", @@ -419,7 +418,6 @@ "551569133": "Tìm hiểu thêm về các giới hạn giao dịch", "554410233": "Đây là một trong 10 mật khẩu phổ biến nhất", "555351771": "Sau khi xác định các tham số và tùy chọn giao dịch, bạn có thể hướng dẫn bot của mình mua hợp đồng khi các điều kiện cụ thể được đáp ứng. Để làm điều đó, bạn có thể sử dụng các khối có điều kiện và các \bkhung chỉ số để giúp bot của bạn đưa ra quyết định.", - "556095366": "Chúng tôi sẽ xử lý các thông tin của bạn trong vòng ít phút và thông báo lại qua email.", "556264438": "Khoảng thời gian", "559224320": "Công cụ “kéo và thả” cổ điển của chúng tôi để tạo bot giao dịch, có biểu đồ giao dịch dạng pop-up, dành cho người dùng nâng cao.", "561982839": "Thay đổi loại tiền tệ", @@ -576,6 +574,7 @@ "745656178": "Sử dụng khung này để bán hợp đồng của bạn \btại giá thị trường.", "745674059": "Trả về ký tự cụ thể từ một chuỗi văn bản đã cho theo tùy chọn. ", "746112978": "Máy tính của bạn có thể mất vài giây để cập nhật", + "750886728": "Switch to your real account to submit your documents", "751692023": "Chúng tôi <0>không đảm bảo hoàn tiền nếu bạn chuyển khoản sai.", "752024971": "Đạt số chữ số tối đa", "752633544": "Bạn sẽ cần phải nộp bằng chứng danh tính và địa chỉ khi bạn đạt đến một số ngưỡng nhất định", @@ -790,7 +789,6 @@ "1023643811": "Khung này mua hợp đồng của một loại xác định.", "1023795011": "Chẵn/Lẻ", "1024205076": "Hoạt động lý luận", - "1024760087": "Bạn đã được xác minh để thêm tài khoản này", "1025887996": "Bảo vệ cân bằng số âm", "1026046972": "Vui lòng nhập số tiền thanh toán thấp hơn {{max_payout}}.", "1027098103": "Đòn bẩy cung cấp cho bạn khả năng giao dịch một vị trí lớn hơn bằng cách sử dụng vốn hiện có của bạn. Đòn bẩy thay đổi trên các biểu tượng khác nhau.", @@ -874,6 +872,7 @@ "1112582372": "Khoảng thời gian", "1113119682": "K\u001dhung này cung cấp cho bạn giá trị nến đã chọn từ danh sách nến.", "1113292761": "Ít hơn 8MB", + "1113433728": "Resubmit your proof of identity and address", "1117863275": "Bảo mật và Riêng tư", "1118294625": "Bạn đã chọn loại trừ bản thân khỏi giao dịch trên trang web của chúng tôi cho đến {{exclusion_end}}. Nếu bạn không thể thực hiện giao dịch hoặc ký quỹ sau thời gian tự loại trừ của mình, vui lòng liên hệ với chúng tôi qua trò chuyện trực tuyến.", "1119887091": "Xác minh", @@ -935,7 +934,6 @@ "1189886490": "Vui lòng tạo một tài khoản Deriv, {{platform_name_mt5}}, hoặc {{platform_name_dxtrade}} khác.", "1191429031": "Vui lòng nhấp vào liên kết trong email của bạn để đổi mật khẩu <0>{{platform_name_dxtrade}}.", "1191644656": "Dự đoán hướng đi thị trường \"Lên\" hoặc \"Xuống\" để mở một đơn hàng. Chúng tôi sẽ thu một khoản phí khi bạn mở một đơn hàng.", - "1191778951": "Kiểm tra chứng minh danh tính và địa chỉ của bạn", "1192708099": "Đơn vị thời lượng", "1195393249": "Thông báo {{ notification_type }} với âm thanh: {{ notification_sound }} {{ input_message }}", "1196006480": "Ngưỡng lợi nhuận", @@ -1009,7 +1007,6 @@ "1281290230": "Chọn", "1282951921": "Chỉ Giảm", "1284522768": "Nếu \"Thua\" được chọn, nó sẽ trả về \"Đúng\" nếu giao dịch cuối của bạn không thành công. Nếu không, nó sẽ trả về chuỗi rỗng.", - "1285686014": "Xác nhận danh tính đang được xử lý", "1286094280": "Rút tiền", "1286507651": "Đóng màn hình xác minh danh tính", "1288965214": "Hộ chiếu", @@ -1105,7 +1102,6 @@ "1384222389": "Vui lòng xuất trình giấy tờ tùy thân hợp lệ để mở khóa cho thu ngân.", "1385418910": "Vui lòng đặt một loại tiền tệ cho tài khoản thực hiện tại của bạn trước khi tạo một tài khoản khác.", "1387503299": "Đăng nhập", - "1388770399": "Yêu cầu giấy tờ xác nhận danh tính", "1389197139": "Lỗi nhập", "1390792283": "Thông số giao dịch", "1391174838": "Khoản chi trả tiềm năng:", @@ -1118,6 +1114,7 @@ "1396417530": "Chỉ số thị trường Bear", "1397628594": "Không đủ số dư", "1399620764": "Chúng tôi có nghĩa vụ pháp lý phải yêu cầu các thông tin tài chính của bạn.", + "1400341216": "We’ll review your documents and notify you of its status within 1 to 3 days.", "1400637999": "(Yêu cầu nhập đủ tất cả các ô)", "1400732866": "Xem qua camera", "1400962248": "Cao-Đóng", @@ -1263,9 +1260,11 @@ "1584109614": "Danh sách chuỗi Ticks", "1584578483": "Hơn 50 tài sản: forex, cổ phiếu, chỉ số chứng khoán, chỉ số tổng hợp và cryptocurrencies.", "1584936297": "Tệp XML chứa các yếu tố không được hỗ trợ. Vui lòng kiểm tra hoặc sửa đổi tập tin.", + "1585859194": "We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts, your Deriv fiat and {{platform_name_derivez}} accounts, and your Deriv fiat and {{platform_name_dxtrade}} accounts.", "1587046102": "Tài liệu từ quốc gia này hiện tại chưa được hỗ trợ — thử loại tài liệu khác", "1589640950": "Bán lại hợp đồng này không được hỗ trợ.", "1589702653": "Xác minh địa chỉ", + "1591933071": "Resubmit document", "1593010588": "Login now", "1594147169": "Vui lòng quay lại", "1594322503": "Lựa chọn bán hiện khả dụng", @@ -1280,7 +1279,6 @@ "1605222432": "Tôi không có kiến thức và kinh nghiệm trong giao dịch ở tất cả.", "1605292429": "Tổng mức thua lỗ tối đa", "1612105450": "Nhận chuỗi phụ", - "1613273139": "Nộp lại chứng minh danh tính và địa chỉ", "1613633732": "Thời gian nghỉ nên trong khoảng 10-60 phút", "1615897837": "Thời lượng EMA Dấu hiệu {{ input_number }}", "1618809782": "Maximum withdrawal", @@ -1324,7 +1322,6 @@ "1665272539": "Lưu ý: Bạn không thể đăng nhập vào tài khoản của mình cho đến ngày đã chọn.", "1665738338": "Số dư", "1665756261": "Chuyển tới trò chuyện trực tuyến", - "1667395210": "Chứng minh danh tính của bạn đã được nộp thành công", "1668138872": "Sửa đổi cài đặt tài khoản", "1670016002": "Bội số nhân: {{ multiplier }}", "1670426231": "Thời gian Kết thúc", @@ -1349,6 +1346,7 @@ "1694517345": "Nhập địa chỉ email mới", "1695807119": "Không thể tải các khung Google Drive", "1700233813": "Chuyển tiền từ {{selected_value}} không được phép, Vui lòng chọn một tài khoản khác từ danh sách cuộn", + "1701447705": "Please update your address", "1704656659": "Bạn có bao nhiêu kinh nghiệm trong giao dịch CFD?", "1708413635": "Cho tài khoản {{currency_name}} {{currency}} của bạn", "1709859601": "Thời gian chốt", @@ -1419,6 +1417,7 @@ "1778893716": "Bấm vào đây", "1779519903": "Nên là một số hợp lệ.", "1780770384": "Khung này cung cấp cho bạn một phân số ngẫu nhiên trong khoảng từ 0.0 đến 1.0.", + "1781393492": "We do not charge a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts, your Deriv fiat and {{platform_name_derivez}} accounts and your Deriv fiat and {{platform_name_dxtrade}} accounts.", "1782308283": "Chiến lược nhanh", "1782395995": "Dự đoán Chữ số Cuối cùng", "1782690282": "Menu Khung", @@ -1429,6 +1428,7 @@ "1788966083": "01-07-1999", "1789497185": "Đảm bảo rằng các chi tiết trên hộ chiếu của bạn rõ ràng, không bị mờ hoặc lóa", "1790770969": "Cặp tiền tệ chính (lô tiêu chuẩn/nhỏ), Cặp tiền tệ thứ yếu, Hàng hoá thương mại, Tiền điện tử", + "1791017883": "Check out this <0>user guide.", "1791432284": "Tìm quốc gia của bạn", "1791971912": "Gần đây", "1793913365": "Để gửi tiền, vui lòng chuyển sang tài khoản {{currency_symbol}} của bạn.", @@ -1549,6 +1549,7 @@ "1918832194": "Không có kinh nghiệm", "1919030163": "Các mẹo để có một bức ảnh tự chụp đẹp", "1919594496": "{{website_name}} is not affiliated with any payment agents. Customers deal with payment agents at their sole risk. Customers are advised to check the credentials of payment agents and the accuracy of any information about payment agents (on {{website_name}} or elsewhere) before using their services.", + "1919694313": "To start trading, transfer funds from your Deriv account into this account.", "1920217537": "So sánh", "1920468180": "Cách sử dụng khung SMA", "1921634159": "Một số chi tiết cá nhân", @@ -1655,6 +1656,7 @@ "2037481040": "Chọn một cách để nạp tiền vào tài khoản", "2037665157": "Mở rộng tất cả các Khung", "2037906477": "lấy danh sách phụ từ #", + "2042023623": "We’re reviewing your documents. This should take about 5 minutes.", "2042050260": "- Giá mua: giá mua (mức cược) của hợp đồng", "2042115724": "Tải lên ảnh chụp màn hình tài khoản và trang chi tiết cá nhân của bạn với tên, số tài khoản, số điện thoại và địa chỉ email của bạn.", "2042778835": "Chính sách khiếu nại này có thể thay đổi theo thời gian, áp dụng cho (các) tài khoản của bạn đã đăng ký với {{legal_entity_name}}.", @@ -2002,7 +2004,7 @@ "-1543016582": "Tôi xin xác nhận rằng thông tin thuế tôi cung cấp là đúng sự thật và đầy đủ. Tôi cũng sẽ thông báo cho {{legal_entity_name}} về bất kỳ thay đổi nào để thông tin này.", "-1387062433": "Lý do mở tài khoản", "-1088324715": "Chúng tôi sẽ xem xét tài liệu và thông báo cho bạn về tình trạng của nó trong vòng 1 - 3 ngày.", - "-684271315": "OK", + "-329713179": "Ok", "-1176889260": "Vui lòng chọn một loại văn bản.", "-1515286538": "Vui lòng nhập số văn bản của bạn. ", "-1785463422": "Xác định danh tính của bạn", @@ -2016,7 +2018,6 @@ "-841187054": "Thử lại", "-2097808873": "Chúng tôi không thể xác minh ID của bạn với các chi tiết bạn đã cung cấp. ", "-228284848": "Chúng tôi không thể xác minh ID của bạn với các chi tiết bạn đã cung cấp.", - "-1443800801": "Số ID của bạn đã được gửi thành công", "-1391934478": "ID của bạn đã được xác minh. Bạn cũng sẽ cần phải gửi bằng chứng về địa chỉ của mình.", "-118547687": "Xác minh ID đã được thông qua", "-200989771": "Đi đến chi tiết cá nhân", @@ -2045,7 +2046,6 @@ "-813779897": "Bằng chứng xác minh quyền sở hữu đã được thông qua.", "-1389323399": "Bạn nên nhập vào khoảng {{min_number}}-{{max_number}} ký tự.", "-1313806160": "Vui lòng yêu cầu một mật khẩu mới và kiểm tra email để nhận token mới.", - "-329713179": "Ok", "-1598167506": "Thành công", "-1077809489": "Bạn có một mật khẩu {{platform}} mới để đăng nhập vào tất cả các tài khoản {{platform}} của mình trên web và các ứng dụng dành cho thiết bị di động.", "-2068479232": "Mật khẩu {{platform}}", @@ -2093,6 +2093,7 @@ "-680528873": "Tài khoản của bạn sẽ được mở với {{legal_entity_name}} và sẽ tuân theo luật pháp của Samoa.", "-1125193491": "Thêm tài khoản", "-2068229627": "Tôi hiện tại không phải là PEP, cũng như trong 12 tháng qua.", + "-684271315": "OK", "-1720468017": "Khi cung cấp dịch vụ của chúng tôi cho bạn, chúng tôi được yêu cầu thu thập thông tin từ bạn để đánh giá liệu một sản phẩm hoặc dịch vụ nhất định có phù hợp với bạn hay không.", "-186841084": "Change your login email", "-907403572": "To change your email address, you'll first need to unlink your email address from your {{identifier_title}} account.", @@ -2225,6 +2226,7 @@ "-38915613": "Các thay đổi chưa lưu", "-2137450250": "Bạn có nhiều thay đổi chưa được lưu. Bạn có chắc chắn muốn loại bỏ các thay đổi và rời khỏi trang này?", "-1067082004": "Thoát cài đặt", + "-1982432743": "It appears that the address in your document doesn’t match the address\n in your Deriv profile. Please update your personal details now with the\n correct address.", "-1451334536": "Tiếp tục giao dịch", "-1525879032": "Tài liệu để chứng minh địa chỉ đã hết hạn. Vui lòng gửi lại.", "-1425489838": "Không cần giấy tờ xác minh địa chỉ", @@ -2243,7 +2245,6 @@ "-639677539": "Mua tiền kỹ thuật số", "-1560098002": "Mua tiền kỹ thuật số qua dịch vụ trao đổi tiền pháp định", "-541870313": "Gửi tiền qua đại lý thanh toán", - "-72314872": "Nạp tiền với tiền tệ tại nơi bạn sống qua giao dịch ngang hàng với các người dùng khác tại quốc gia của bạn.", "-58126117": "Cách giúp bạn dễ dàng tham gia vào tiền điện tử. Giúp việc trao đổi và mua cryptocurrencies một cách nhanh chóng và an toàn. Hỗ trợ chat trực tuyến 24/7.", "-1705887186": "Tiền gửi của bạn đã nạp thành công.", "-142361708": "Đang xử lý", @@ -2345,8 +2346,11 @@ "-2056016338": "Bạn sẽ không bị tính phí chuyển tiền đối với các chuyển khoản bằng cùng một loại tiền tệ giữa tài khoản Deriv fiat và {{platform_name_mt5}} của mình.", "-599632330": "Chúng tôi sẽ tính phí chuyển khoản 1% đối với các giao dịch chuyển tiền bằng các đơn vị tiền tệ khác nhau giữa tài khoản tiền pháp định Deriv và {{platform_name_mt5}} cũng như giữa tài khoản tiền pháp định Deriv và {{platform_name_dxtrade}}.", "-1196994774": "Chúng tôi sẽ tính phí chuyển khoản 2% hoặc {{minimum_fee}} {{currency}}, tùy theo mức nào cao hơn, đối với chuyển khoản giữa các tài khoản tiền kỹ thuật số Deriv của bạn.", + "-1361372445": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts, your Deriv cryptocurrency and {{platform_name_derivez}} accounts, and your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.", "-993556039": "Chúng tôi sẽ tính phí chuyển khoản 2% hoặc {{minimum_fee}} {{currency}}, tùy theo mức nào cao hơn, đối với chuyển khoản giữa tài khoản tiền điện tử Deriv và tài khoản Deriv MT5 cũng như giữa tài khoản tiền điện tử Deriv và tài khoản {{platform_name_dxtrade}} của bạn.", "-1382702462": "Chúng tôi sẽ tính phí chuyển khoản 2% hoặc {{minimum_fee}} {{currency}}, tùy theo mức nào cao hơn, đối với chuyển khoản giữa tài khoản tiền điện tử Deriv và tài khoản Deriv MT5 của bạn.", + "-1995859618": "You may transfer between your Deriv fiat, cryptocurrency, {{platform_name_mt5}}, {{platform_name_derivez}} and {{platform_name_dxtrade}} accounts.", + "-545616470": "Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts, up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts, up to {{ allowed_derivez }} transfers between your Deriv and {{platform_name_derivez}} accounts, and up to {{ allowed_dxtrade }} transfers between your Deriv and {{platform_name_dxtrade}} accounts.", "-1151983985": "Giới hạn chuyển khoản có thể thay đổi tùy thuộc vào tỷ giá hối đoái.", "-1747571263": "Xin lưu ý rằng một số chuyển khoản có thể không thực hiện được.", "-757062699": "Việc chuyển tiền có thể không khả dụng do sự biến động cao hoặc các vấn đề kỹ thuật và khi thị trường hối đoái đóng cửa.", @@ -2631,6 +2635,7 @@ "-328128497": "Tài chính", "-533935232": "BVI tài chính", "-565431857": "Tài chính Labuan", + "-1290112064": "Deriv EZ", "-1669418686": "AUD/CAD", "-1548588249": "AUD/CHF", "-1552890620": "AUD/JPY", @@ -2745,6 +2750,7 @@ "-1125797291": "Mật khẩu đã được cập nhật.", "-157145612": "Vui lòng đăng nhập với mật khẩu mới cập nhật.", "-1728185398": "Nộp lại bằng chứng địa chỉ", + "-612396514": "Please resubmit your proof of address.", "-1519764694": "Chứng minh địa chỉ của bạn đã được xác minh.", "-1961967032": "Nộp lại chứng minh danh tính", "-117048458": "Vui lòng nộp xác minh danh tính của bạn.", @@ -2772,6 +2778,10 @@ "-1834929362": "Tải lên tài liệu của tôi", "-1043638404": "<0>Chứng minh quyền sở hữu <1>không thành công", "-1766760306": "<0><1>Vui lòng tải lên tài liệu của bạn <2>với các chi tiết chính xác.<3>", + "-2142540205": "It appears that the address in your document doesn’t match the address in your Deriv profile. Please update your personal details now with the correct address.", + "-482715448": "Go to Personal details", + "-2072411961": "Your proof of address has been verified", + "-384887227": "Update the address in your profile.", "-1998049070": "Nếu bạn đồng ý cho việc sử dụng cookies của chúng tôi, nhấn vào Chấp nhận. Để biết thêm thông tin <0>xem quy định.", "-402093392": "Thêm tài khoản Deriv", "-277547429": "Một tài khoản Deriv sẽ cho phép bạn nạp tiền (và rút tiền) vào tài khoản MT5 của bạn.", @@ -2913,6 +2923,10 @@ "-429248139": "5. Miễn trách nhiệm", "-818926350": "Ủy ban Tài chính chấp nhận kháng cáo trong 45 ngày sau ngày xảy ra vụ việc và chỉ sau khi nhà giao dịch đã cố gắng giải quyết vấn đề trực tiếp với công ty.", "-358055541": "Sức mạnh giao dịch của bạn với các công cụ mới tuyệt vời", + "-29496115": "We've partnered with Acuity to give you a suite of intuitive trading tools for MT5 so you can keep track of market events and trends, free of charge!<0/><0/>", + "-648669944": "Download the Acuity suite and take advantage of the <1>Macroeconomic Calendar, Market Alerts, Research Terminal, and <1>Signal Centre Trade Ideas without leaving your MT5 terminal.<0/><0/>", + "-794294380": "This suite is only available for Windows, and is most recommended for financial assets.", + "-922510206": "Need help using Acuity?", "-815070480": "Disclaimer: Các dịch vụ giao dịch và thông tin được cung cấp bởi Acuity không nên được hiểu là một lời mời đầu tư và/hoặc thương mại. Div không cung cấp lời khuyên đầu tư. Quá khứ không phải là một hướng dẫn cho hiệu suất trong tương lai, và các chiến lược đã làm việc trong quá khứ có thể không hoạt động trong tương lai.", "-2111521813": "Tải về Acuity", "-175369516": "Chào mừng đến với Deriv X", @@ -2968,6 +2982,7 @@ "-712681566": "Trao đổi ngang hàng (P2P)", "-1267880283": "{{field_name}} là bắt buộc", "-2084509650": "{{field_name}} không được định dạng đúng.", + "-222283483": "Account opening reason*", "-1779241732": "Dòng địa chỉ đầu tiên không ở định dạng thích hợp.", "-188222339": "Mục này không được vượt quá {{max_number}} ký tự.", "-1673422138": "Bang/Tỉnh không ở trong một định dạng thích hợp.", @@ -2981,13 +2996,15 @@ "-1982499699": "Khám phá {{platform_name_dbot}}", "-1567989247": "Nộp chứng minh danh tính và địa chỉ", "-184453418": "Nhập mật khẩu {{platform}} của bạn", - "-1769158315": "thực", - "-700260448": "\bdemo", - "-1980366110": "Xin chúc mừng, bạn đã tạo thành công tài khoản {{category}} {{platform}} <0>{{type}} của mình.", + "-393388362": "We’re reviewing your documents. This should take about 1 to 3 days.", "-790488576": "Quên mật khẩu?", "-926547017": "Nhập mật khẩu {{platform}} của bạn để thêm tài khoản {{platform}} {{account}} {{jurisdiction_shortcode}}.", "-1190393389": "Nhập mật khẩu {{platform}} của bạn để thêm tài khoản {{platform}} {{account}}.", "-2057918502": "Gợi ý: Bạn có thể đã nhập mật khẩu Deriv của mình, mật khẩu này khác với mật khẩu {{platform}} của bạn.", + "-1769158315": "thực", + "-700260448": "\bdemo", + "-1936102840": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} account. ", + "-1570793523": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} account.", "-1928229820": "Đặt lại mật khẩu nhà đầu tư Deriv X", "-1087845020": "chính", "-1950683866": "nhà đầu tư", @@ -3013,24 +3030,14 @@ "-161656683": "Mật khẩu nhà đầu tư hiện tại", "-374736923": "Mật khẩu nhà đầu tư mới", "-1793894323": "Tạo hoặc đặt lại mật khẩu nhà đầu tư", - "-1124208206": "Chuyển sang tài khoản thực của bạn để tạo một tài khoản DMT5 {{account_title}} {{type_title}}.", - "-1576792859": "Cần có bằng chứng danh tính và địa chỉ", - "-104382603": "Kiểm tra bằng chứng địa chỉ của bạn", - "-793684335": "Kiểm tra bằng chứng danh tính của bạn", "-1271218821": "Đã thêm tài khoản", - "-599621079": "Thêm tài khoản Deriv MT5 {{account_type}} của bạn dưới Derov (SVG) LLC (công ty số 273 LLC 2020).", - "-1302969276": "Thêm tài khoản Deriv MT5 {{account_type}} của bạn theo Derov (BVI) Ltd, được quy định bởi Ủy ban Dịch vụ Tài chính Quần đảo Virgin thuộc Anh (Giấy phép số SIBA/{{line_break}}L/18/1114).", - "-1422519943": "Thêm tài khoản DMT5 {{account_type}} của bạn theo Deriv (V) Ltd, được quản lý bởi Ủy ban Dịch vụ Tài chính Vanuatu.", - "-1731304187": "Thêm tài khoản Deriv MT5 CFD của bạn theo Deriv Investments (Europe) Limited được quản lý bởi Cơ quan Dịch vụ Tài chính Malta (MFSA) (giấy phép số IS/70156).", - "-16048185": "Để tạo tài khoản này trước tiên, chúng tôi cần chứng minh danh tính và địa chỉ của bạn.", - "-1627989291": "Để tạo tài khoản này trước tiên, chúng tôi cần bạn gửi lại bằng chứng danh tính của mình.", - "-1389025684": "Để tạo tài khoản này trước tiên, chúng tôi cần bạn gửi lại chứng minh danh tính và địa chỉ của bạn.", - "-1615750576": "Bạn sẽ có thể mở tài khoản này sau khi các giấy tờ gửi của bạn đã được xác minh.", - "-724308541": "Thẩm quyền cho tài khoản CFD Deriv MT5 của bạn", - "-479119833": "Chọn một thẩm quyền cho tài khoản Deriv MT5 {{account_type}} của bạn", + "-1576792859": "Cần có bằng chứng danh tính và địa chỉ", "-1931257307": "Bạn sẽ cần phải nộp bằng chứng về danh tính", "-2026018074": "Thêm tài khoản Deriv MT5 <0>{{account_type_name}} của bạn với Deriv (SVG) LLC (công ty số 273 LLC 2020).", "-162320753": "Thêm tài khoản <0>{{account_type_name}} Deriv MT5 của bạn với Deriv (BVI) Ltd, được quản lý bởi Ủy ban Dịch vụ Tài chính Quần đảo Virgin thuộc Anh (Giấy phép số SIBA/L/18/1114).", + "-1731304187": "Thêm tài khoản Deriv MT5 CFD của bạn theo Deriv Investments (Europe) Limited được quản lý bởi Cơ quan Dịch vụ Tài chính Malta (MFSA) (giấy phép số IS/70156).", + "-724308541": "Thẩm quyền cho tài khoản CFD Deriv MT5 của bạn", + "-479119833": "Chọn một thẩm quyền cho tài khoản Deriv MT5 {{account_type}} của bạn", "-450424792": "Bạn cần một tài khoản thực (tiền tệ pháp định hoặc cryptocurrency) trong Derov để tạo một tài khoản Deriv MT5 thực sự.", "-1760596315": "Tạo một tài khoản Deriv", "-705682181": "Malta", diff --git a/packages/translations/src/translations/zh_cn.json b/packages/translations/src/translations/zh_cn.json index 231e2ab7a254..3ab3df532854 100644 --- a/packages/translations/src/translations/zh_cn.json +++ b/packages/translations/src/translations/zh_cn.json @@ -70,10 +70,8 @@ "98972777": "随机项目", "100239694": "从电脑上传卡的正面", "102226908": "字段不可为空", - "107206831": "将审核文件并于1-3天内通知状况。", "108916570": "持续时间:{{duration}} 天", "109073671": "请使用您之前用于存款的电子钱包。确保电子钱包支持提款。<0>此处查看支持提款的电子钱包列表。", - "110261653": "恭喜,您已成功开立 {{category}}{{platform}}<0>{{type}}{{jurisdiction_selected_shortcode}} 账户。请从 Deriv 账户转汇资金入此账户以开始交易。", "111215238": "远离直射光", "111718006": "结束日期", "111931529": "7天内最大总投注金额", @@ -182,6 +180,7 @@ "248909149": "发送安全链接到您的手机", "249908265": "您是 {{- residence}} 的公民吗?", "251134918": "账户信息", + "251322536": "Deriv EZ 账户", "251445658": "深色主题", "251882697": "谢谢!您的回复已记录到系统中。<0/><0/>请单击 “确定” 继续。", "254912581": "此程序块与指数平均数指标(EMA)相似,除此以外,它也根据输入列表和指定周期给您提供整个EMA线。", @@ -197,6 +196,7 @@ "265644304": "交易类型", "267992618": "该平台缺少关键功能。", "268940240": "您的余额 ({{format_balance}} {{currency}}) 低于当前允许的最小提款额 ({{format_min_withdraw_amount}} {{currency}})。请充值账户以继续提款。", + "269322978": "通过与所在国家/地区的其他交易者点对点兑换,以当地货币存款。", "269607721": "上传", "270339490": "如果您选择“大于”期权,只要最新价格的最后一个数字大于您的预测,您将获得赔付。", "270610771": "下例中,烛线开盘价被分配到\"candle_open_price“变量。", @@ -212,6 +212,7 @@ "278684544": "从 # 从尾端获取子列表", "282319001": "查看您的图像", "282564053": "接下来,我们需要您的地址证明.", + "283830551": "地址与个人资料不符", "283986166": "网站上的自我禁止功能仅适用于您的 {{brand_website_name}} 账户, 不包括其他公司或网站。", "284527272": "反众数", "284772879": "合约", @@ -245,7 +246,6 @@ "327534692": "持续时间值是不允许的。要运行机器人,请输入{{min}}。", "328539132": "以指定次数重复内部说明", "329404045": "<0>切换到真实账户<1>以开立{{platform}}{{account_title}} 账户。", - "332886946": "<1>使用 Acuity 时需要帮助吗?<0/>请查看此<2>用户指南。", "333456603": "取款限额", "334680754": "切换到真实账户以开立 Deriv MT5 账户。", "334942497": "买入时间", @@ -368,7 +368,6 @@ "478280278": "此程序块块显示使用定制的消息来提示输入的对话框。输入可以是文本字符串或数字,并且可以分配给变量。显示对话框时,您的策略将暂停,并且仅在您输入响应并单击“确定”后才能恢复。", "479420576": "三级", "481276888": "处于区间之外", - "483246914": "通过由纳闽金融服务管理局监管的 Deriv (FX) 有限公司(许可证编号MB/18/0024) 添加 Deriv MT5 {{account_type}} STP 账户。", "483279638": "评估已完成<0/><0/>", "483591040": "删除所有 {{ delete_count }} 程序块?", "485379166": "查看交易", @@ -419,7 +418,6 @@ "551569133": "了解交易限制的详细信息", "554410233": "这是10个最常用的密码", "555351771": "定义好了交易参数和交易期权以后,当达到特定条件时,您还能指示机器人购入合约。您可使用条件程序块和指示器来帮助机器人做决定,以实现此功能。", - "556095366": "将于数分钟内处理您的信息并将状况以电子邮件通知您。", "556264438": "时间间隔", "559224320": "我们的经典拖放工具为高级用户创建含弹出式交易图表的交易机器人。", "561982839": "更改币种", @@ -576,6 +574,7 @@ "745656178": "用此程序块以市价卖出合约。", "745674059": "根据选定选项从提供的文本字串中返回指定字符。 ", "746112978": "您的电脑更新可能需要数秒钟", + "750886728": "Switch to your real account to submit your documents", "751692023": "如您转账错误,我们<0>不保证退款。", "752024971": "已达到小数点的最大位数", "752633544": "达到特定阈值后需要提交身份和地址证明", @@ -790,7 +789,6 @@ "1023643811": "此程序块买入指定类型的合约。", "1023795011": "偶/奇", "1024205076": "逻辑运作", - "1024760087": "已通过验证,可以添加此账户", "1025887996": "负结余额保护", "1026046972": "请输入小于{{max_payout}} 的赔付额。", "1027098103": "杠杆使您能够以现有资本进行更大头寸交易。杠杆因不同符号而异。", @@ -874,6 +872,7 @@ "1112582372": "间隔期限", "1113119682": "此程序块向您提供自烛形线图列表选定的烛形线值。", "1113292761": "少于 8MB", + "1113433728": "Resubmit your proof of identity and address", "1117863275": "安全和保密", "1118294625": "您已选择在{{exclusion_end}} 前自我禁止在网站交易。如果您在自我禁止期过后无法交易或存款,请通过实时聊天与我们联系。", "1119887091": "验证", @@ -935,7 +934,6 @@ "1189886490": "请开立另一个 Deriv、{{platform_name_mt5}} 或 {{platform_name_dxtrade}} 账户。", "1191429031": "请单击邮件上的链接以更改 <0>{{platform_name_dxtrade}} 密码。", "1191644656": "预测市场走势,然后选择“上涨”或“下跌”以建立头寸。开仓时我们将收取佣金。", - "1191778951": "请检查身份和地址证明", "1192708099": "持续时间单位", "1195393249": "通知 {{ notification_type }} 含声音: {{ notification_sound }} {{ input_message }}", "1196006480": "利润阈值", @@ -1009,7 +1007,6 @@ "1281290230": "选择", "1282951921": "只会持续下跌", "1284522768": "如果选择“亏损”,假设您的最后一笔交易失败,将返回“真”。否则将返回空字符串。", - "1285686014": "等待身份证明审查", "1286094280": "提款", "1286507651": "关闭身份验证屏幕", "1288965214": "护照", @@ -1105,7 +1102,6 @@ "1384222389": "请提交有效的身份证件以解锁收银台。", "1385418910": "开立另一个账户前请为您的现有真实账户设置币种。", "1387503299": "登录", - "1388770399": "需要身份证明", "1389197139": "导入错误", "1390792283": "交易参数", "1391174838": "潜在赔付额:", @@ -1118,6 +1114,7 @@ "1396417530": "熊市指数", "1397628594": "资金不足", "1399620764": "根据法律规定,我们有义务要求您提供财务信息。", + "1400341216": "We’ll review your documents and notify you of its status within 1 to 3 days.", "1400637999": "(全为必填字段)", "1400732866": "从相机观看", "1400962248": "最高值-收盘", @@ -1263,9 +1260,11 @@ "1584109614": "跳动点字符串列表", "1584578483": "50多种资产:外汇、股票、股票指数、综合指数和加密货币。", "1584936297": "XML文件包含不受支持的元素。请检查或修改文件。", + "1585859194": "Deriv 法定货币和 {{platform_name_mt5}} 账户之间、Deriv 法定货币和{{platform_name_derivez}} 账户之间以及 Deriv 法定货币和 {{platform_name_dxtrade}} 账户之间不同货币转账,将收1%转账费。", "1587046102": "当前不支持该国家/地区的文档-尝试其他文档类型", "1589640950": "此合约不提供转售。", "1589702653": "地址证明", + "1591933071": "Resubmit document", "1593010588": "立即登录", "1594147169": "请在下述时间过后返回此处", "1594322503": "可卖出", @@ -1280,7 +1279,6 @@ "1605222432": "我根本没有交易知识和经验。", "1605292429": "最大总亏损金额", "1612105450": "获取子字符串", - "1613273139": "重新提交身份和地址证明", "1613633732": "时间间隔须介于10-60分钟之间", "1615897837": "信号EMA周期 {{ input_number }}", "1618809782": "最大提款额", @@ -1324,7 +1322,6 @@ "1665272539": "切记:在选定日期之前,您无法登录账户。", "1665738338": "余额", "1665756261": "前往实时聊天", - "1667395210": "您的身份证明已成功提交", "1668138872": "账户设置修改", "1670016002": "乘数: {{ multiplier }}", "1670426231": "结束时间", @@ -1349,6 +1346,7 @@ "1694517345": "输入新的的电子邮件地址", "1695807119": "无法加载 Google 云端硬盘块", "1700233813": "不允许来自{{selected_value}} 的转汇,请从下拉菜单中选择另一个账户", + "1701447705": "请更新地址", "1704656659": "您在差价合约交易方面有多少经验?", "1708413635": "用于 {{currency_name}} ({{currency}}) 账户", "1709859601": "退市现价时间", @@ -1419,6 +1417,7 @@ "1778893716": "请单击此处", "1779519903": "必须是有效号码。", "1780770384": "此程序块提供0.0 至 1.0范围内的随机分数.", + "1781393492": "Deriv 法定货币和 {{platform_name_mt5}} 账户之间、Deriv 法定货币和{{platform_name_derivez}} 账户之间以及 Deriv 法定货币和 {{platform_name_dxtrade}} 账户之间相同货币转账,不收转账费。", "1782308283": "快速策略", "1782395995": "最后数字的预测", "1782690282": "程序块菜单", @@ -1429,6 +1428,7 @@ "1788966083": "01-07-1999", "1789497185": "确保您的护照详细信息清晰易读,没有模糊字体或眩光现象", "1790770969": "外汇-主要货币对(标准/微手)、外汇-次要货币对、大宗商品、加密货币", + "1791017883": "查看此<0>用户指南。", "1791432284": "搜索国家", "1791971912": "最近", "1793913365": "要存款,请转换至{{currency_symbol}} 账户。", @@ -1549,6 +1549,7 @@ "1918832194": "没有经验", "1919030163": "好的自拍技巧", "1919594496": "{{website_name}} 与任何付款代理不存在附属关系。客户与付款代理的业务往来,风险自负。建议客户在使用付款代理的服务前,事先查询其信用状况,并检查其在{{website_name}} 或其他地方的任何信息的准确性。", + "1919694313": "To start trading, transfer funds from your Deriv account into this account.", "1920217537": "比较", "1920468180": "如何使用SMA程序块", "1921634159": "一些个人资料", @@ -1655,6 +1656,7 @@ "2037481040": "选择往账户注入资金的方式", "2037665157": "扩大所有程序块", "2037906477": "从# 项获取子列表", + "2042023623": "We’re reviewing your documents. This should take about 5 minutes.", "2042050260": "-买入价格:合约的买入价格(投注额)", "2042115724": "上传含姓名、账号、电话号码和电子邮件地址的账户和个人详细信息页面的屏幕截图。", "2042778835": "此投诉政策可能会不时更改,适用于您在 {{legal_entity_name}} 注册的账户。", @@ -2002,7 +2004,7 @@ "-1543016582": "我特此确认, 我提供的税务信息是真实和完整的。将来如果此信息有任何更改,我将会通知 {{legal_entity_name}}。", "-1387062433": "开立账户的原因", "-1088324715": "将审核文件并于1至3个工作日内通知状况。", - "-684271315": "确定", + "-329713179": "确定", "-1176889260": "请选择文件类型.", "-1515286538": "请输入文件号. ", "-1785463422": "身份验证", @@ -2016,7 +2018,6 @@ "-841187054": "重试", "-2097808873": "无法根据您提供的信息验证 ID。 ", "-228284848": "无法根据您提供的信息验证 ID。", - "-1443800801": "您的 ID 号已成功提交", "-1391934478": "ID 已验证。您还需提交地址证明。", "-118547687": "ID 验证已通过", "-200989771": "前往个人资料", @@ -2045,7 +2046,6 @@ "-813779897": "所有权证明验证已通过。", "-1389323399": "您必须输入{{min_number}} - {{max_number}} 个字符。", "-1313806160": "请请求新密码及检查提供新令牌的电子邮件。", - "-329713179": "确定", "-1598167506": "成功", "-1077809489": "您有了新的 {{platform}} 密码,用于登录网络和手机应用上的 {{platform}} 账户。", "-2068479232": "{{platform}} 密码", @@ -2093,6 +2093,7 @@ "-680528873": "您的账户将透过{{legal_entity_name}} 开立,并受萨摩亚的法律管辖。", "-1125193491": "添加账户", "-2068229627": "本人不是政治公众人士,而且在过去的12个月中,我未曾当过政治公众人士。", + "-684271315": "确定", "-1720468017": "为了给您提供服务,我们必须向您获取信息,以便确定产品或服务是否适合您。", "-186841084": "更改登录电子邮件", "-907403572": "要更改电子邮件地址,首先需要取消 {{identifier_title}} 账户的电子邮件地址链接。", @@ -2225,6 +2226,7 @@ "-38915613": "未保存更改", "-2137450250": "您有未保存更改。确定放弃更改并离开此页面?", "-1067082004": "退出设置", + "-1982432743": "文档中的地址似乎与 Deriv 个人资料中的地址\n 不匹配。请立即在个人详细信息中更新\n 正确地址。", "-1451334536": "继续交易", "-1525879032": "您的地址证明文件已过期。 请重新提交。", "-1425489838": "不需要地址证明验证", @@ -2243,7 +2245,6 @@ "-639677539": "买入加密货币", "-1560098002": "通过法定匝道买入加密货币", "-541870313": "通过支付代理存款", - "-72314872": "通过与您所在国家/地区的其他交易者点对点兑换,以当地货币存款。", "-58126117": "您获取加密货币的简单方式。快速安全地兑换和购买加密货币的方式。24/7全天候实时聊天支持。", "-1705887186": "存款成功。", "-142361708": "正在处理", @@ -2345,8 +2346,11 @@ "-2056016338": "Deriv 法定货币和 {{platform_name_mt5}} 账户之间相同货币转账,我们不收转账费。", "-599632330": "Deriv 法定货币和 {{platform_name_mt5}} 账户之间以及 Deriv 法定货币和 {{platform_name_dxtrade}} 账户之间不同货币转账,我们将收1%转账费。", "-1196994774": "Deriv 加密货币账户之间的转账,我们将收取 2% 转账费或 {{minimum_fee}} {{currency}},以较高者为准。", + "-1361372445": "Deriv 加密货币和 Deriv MT5 账户之间、Deriv 加密货币和 {{platform_name_derivez}} 账户之间以及 Deriv 加密货币和 {{platform_name_dxtrade}} 账户之间的转账,将收取 2% 转账费或 {{minimum_fee}} {{currency}},以较高者为准。", "-993556039": "Deriv 加密货币和 Deriv MT5 账户之间以及 Deriv 加密货币和 {{platform_name_dxtrade}} 账户之间的转账,我们将收取 2% 转账费或 {{minimum_fee}} {{currency}},以较高者为准。", "-1382702462": "Deriv 加密货币和 Deriv MT5 账户之间的转账,我们将收取 2% 转账费或 {{minimum_fee}} {{currency}},以较高者为准。", + "-1995859618": "可进行 Deriv 法定货币、加密货币、{{platform_name_mt5}}、{{platform_name_derivez}} 和 {{platform_name_dxtrade}} 账户之间的转账。", + "-545616470": "每天,最多可以在 Deriv 账户之间进行 {{ allowed_internal }} 次转账,Deriv 和 {{platform_name_mt5}} 账户之间最多 {{ allowed_mt5 }} 次转账,Deriv 和 {{platform_name_derivez}} 账户之间最多 {{ allowed_derivez }} 次转账,以及 Deriv 和 {{platform_name_dxtrade}} 账户之间最多 {{ allowed_dxtrade }} 次转账 .", "-1151983985": "转账限制可能因汇率而更改。", "-1747571263": "请记住,某些转账可能无法进行。", "-757062699": "由于高波动率或技术问题以及交易市场关闭,可能无法转账。", @@ -2631,6 +2635,7 @@ "-328128497": "金融", "-533935232": "金融 BVI", "-565431857": "金融纳闽", + "-1290112064": "Deriv EZ", "-1669418686": "澳元/加元", "-1548588249": "澳元/瑞士法郎", "-1552890620": "澳元/日元", @@ -2745,6 +2750,7 @@ "-1125797291": "密码已更新。", "-157145612": "请用更新密码登录。", "-1728185398": "重新提交地址证明", + "-612396514": "Please resubmit your proof of address.", "-1519764694": "地址证明已通过验证.", "-1961967032": "重新提交身份证明", "-117048458": "请提交身份证明。", @@ -2772,6 +2778,10 @@ "-1834929362": "上传文件", "-1043638404": "<0>所有权证明<1>验证失败", "-1766760306": "<0><1>请上传<2>包含正确详细信息的文档。<3>", + "-2142540205": "文档中的地址似乎与 Deriv 个人资料中的地址不匹配。请立即在个人详细信息中更新正确地址。", + "-482715448": "前往个人资料", + "-2072411961": "地址证明已通过验证", + "-384887227": "更新个人资料中的地址。", "-1998049070": "如您同意我们使用 cookie,请单击“接受”。有关更多信息,请<0>参阅我们的政策。", "-402093392": "添加 Deriv 账户", "-277547429": "Deriv 账户将允许向 MT5 账户注资(和提款)。", @@ -2913,6 +2923,10 @@ "-429248139": "5. 免责声明", "-818926350": "事件发生之日起45天内,金融委员会接受上诉,条件是交易者事先须试图直接与公司解决问题。", "-358055541": "使用强大的新工具增强交易实力", + "-29496115": "我们与 Acuity 合作,提供适用于 MT5 的直观交易工具,让您免费跟踪市场事件和趋势!<0/><0/>", + "-648669944": "下载 Acuity 套件,无需离开 MT5 <1>终端即可利用宏观经济日历、市场提醒、研究终端和<1>信号中心交易创意。<0/><0/>", + "-794294380": "该套件仅适用于 Windows,推荐用于金融资产。", + "-922510206": "需要帮助使用 Acuity 吗?", "-815070480": "免责声明:Acuity 提供的交易服务和信息不应被解释为招揽投资和/或交易。Deriv 不提供投资建议。过去的成就不是未来的指南,过去有效的策略未来可能行不通。", "-2111521813": "下载 Acuity", "-175369516": "欢迎来到 Deriv X", @@ -2968,6 +2982,7 @@ "-712681566": "对等交换", "-1267880283": "{{field_name}} 是必填项", "-2084509650": "{{field_name}} 的格式不正确。", + "-222283483": "Account opening reason*", "-1779241732": "地址第一行的格式不正确。", "-188222339": "不可超过 {{max_number}} 个字符。", "-1673422138": "州/省/区的格式不正确。", @@ -2981,13 +2996,15 @@ "-1982499699": "探索 {{platform_name_dbot}}", "-1567989247": "请提交身份和地址证明", "-184453418": "输入{{platform}} 密码", - "-1769158315": "真实", - "-700260448": "演示", - "-1980366110": "恭喜,您已成功开立 {{category}}{{platform}}<0>{{type}} 账户。", + "-393388362": "We’re reviewing your documents. This should take about 1 to 3 days.", "-790488576": "忘记密码?", "-926547017": "输入 {{platform}} 密码以添加 {{platform}} {{account}} {{jurisdiction_shortcode}} 账户。", "-1190393389": "输入 {{platform}} 密码以添加 {{platform}} {{account}} 账户。", "-2057918502": "提示:可能您输入了与 {{platform}} 密码不同的 Deriv 密码。", + "-1769158315": "真实", + "-700260448": "演示", + "-1936102840": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} account. ", + "-1570793523": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} account.", "-1928229820": "重置Deriv X投资者密码", "-1087845020": "主页", "-1950683866": "投资者", @@ -3013,24 +3030,14 @@ "-161656683": "当前投资者密码", "-374736923": "新投资者密码", "-1793894323": "创建或重置投资者密码", - "-1124208206": "切换到真实账户以开立 DMT5 {{account_title}}{{type_title}} 账户。", - "-1576792859": "需要身份和地址证明", - "-104382603": "检查地址证明", - "-793684335": "检查身份证明", "-1271218821": "账户已添加", - "-599621079": "通过 Deriv (SVG) 有限责任公司(公司编号 273 LLC 2020)添加 Deriv MT5 {{account_type}} 账户。", - "-1302969276": "通过由英属维尔京群岛金融服务委员会监管的 Deriv (BVI) 有限公司(许可证编号:SIBA/{{line_break}}L/18/1114) 添加 Deriv MT5 {{account_type}} 账户。", - "-1422519943": "通过由瓦努阿图金融服务委员会监管的 Deriv (V) 有限公司添加 DMT5 {{account_type}} 账户。", - "-1731304187": "通过由马耳他金融服务管理局(MFSA)监管的Deriv 投资(欧洲)有限公司(许可证编号IS/70156) 添加 Deriv MT5差价合约账户。", - "-16048185": "要开立此账户首先需要身份和地址证明。", - "-1627989291": "要开立此账户首先需要重新提交身份证明。", - "-1389025684": "要开立此账户首先需要重新提交身份和地址证明。", - "-1615750576": "一旦提交的文件通过验证,就可以开立此账户。", - "-724308541": "Deriv MT5 差价合约账户的管辖权", - "-479119833": "为 Deriv MT5 {{account_type}} 账户选择司法管辖区", + "-1576792859": "需要身份和地址证明", "-1931257307": "您需要提交身份证明", "-2026018074": "通过 Deriv (SVG) 有限责任公司(公司编号 273 LLC 2020)添加 Deriv MT5 <0>{{account_type_name}} 账户。", "-162320753": "通过由英属维尔京群岛金融服务委员会监管的 Deriv (BVI) 有限公司(许可证编号:SIBA/L/18/1114) 添加 Deriv MT5 <0>{{account_type_name}} 账户。", + "-1731304187": "通过由马耳他金融服务管理局(MFSA)监管的Deriv 投资(欧洲)有限公司(许可证编号IS/70156) 添加 Deriv MT5差价合约账户。", + "-724308541": "Deriv MT5 差价合约账户的管辖权", + "-479119833": "为 Deriv MT5 {{account_type}} 账户选择司法管辖区", "-450424792": "您需拥有 Deriv 真实账户(法定货币或加密货币)以开立Deriv MT5真实账户。", "-1760596315": "开立Deriv账户", "-705682181": "马耳他", diff --git a/packages/translations/src/translations/zh_tw.json b/packages/translations/src/translations/zh_tw.json index 2d45b755be94..fb3746ab69ac 100644 --- a/packages/translations/src/translations/zh_tw.json +++ b/packages/translations/src/translations/zh_tw.json @@ -70,10 +70,8 @@ "98972777": "隨機項目", "100239694": "從電腦上傳卡的正面", "102226908": "欄位不可為空", - "107206831": "將審核文件並於1-3天內通知狀況。", "108916570": "持續時間: {{duration}} 天", "109073671": "請使用您之前用於存款的電子錢包。確保電子錢包支持提款。<0>此處檢視支援提款的電子錢包清單。", - "110261653": "恭喜,已成功建立了 {{category}}{{platform}}<0>{{type}}{{jurisdiction_selected_shortcode}}帳戶。請從 Deriv 帳戶轉匯資金入此帳戶以開始交易。", "111215238": "遠離直射光", "111718006": "結束日期", "111931529": "7天內最大總投注金額", @@ -182,6 +180,7 @@ "248909149": "傳送安全連結到您的手機", "249908265": "您是 {{- residence}} 的公民嗎?", "251134918": "帳戶資訊", + "251322536": "Deriv EZ 帳戶", "251445658": "深色主題", "251882697": "謝謝!您的回覆已記錄到系統中,<0/><0/>請按「確定」繼續。", "254912581": "此區塊與指數平均數指標(EMA)相似,除此以外,它也根據輸入清單和指定週期給您提供整個EMA線。", @@ -197,6 +196,7 @@ "265644304": "交易類型", "267992618": "該平台缺少關鍵功能。", "268940240": "餘額 ({{format_balance}} {{currency}}) 低於目前允許的最小提款額({{format_min_withdraw_amount}} {{currency}})。請充值帳戶以繼續提款。", + "269322978": "通過與所在國家/地區的其他交易者點對點兌換,以當地貨幣存款。", "269607721": "上傳", "270339490": "如果您選擇「大於」期權,只要最新價格的最後一個數字大於您的預測,您將獲得賠付。", "270610771": "下例中,燭線開盤價被分配到「candle_open_price」變數。", @@ -212,6 +212,7 @@ "278684544": "從 # 從尾端取得子清單", "282319001": "查看您的圖像", "282564053": "接下來,我們需要您的地址證明。", + "283830551": "地址與個人資料不符", "283986166": "網站的自我禁止功能僅適用于您的 {{brand_website_name}} 帳戶,不包括其他公司或網站。", "284527272": "反眾數", "284772879": "合約", @@ -245,7 +246,6 @@ "327534692": "持續時間值不允許。要運行機器人,請輸入{{min}}。", "328539132": "以指定次數重覆內部說明", "329404045": "<0>切換到真實帳戶<1>以開立{{platform}}{{account_title}} 帳戶。", - "332886946": "<1>使用Acuity時需要協助嗎?<0/>查看此<2>使用者指南。", "333456603": "取款限額", "334680754": "切換到真實帳戶開立 DMT5 帳戶", "334942497": "買入時間", @@ -368,7 +368,6 @@ "478280278": "此區塊顯示使用自訂的消息來提示輸入的對話方塊。輸入可以是文字串或數字,並且可以分配給變數。顯示對話方塊時,您的策略將暫停,並且僅在輸入響應並點選「確定」後才能恢復。", "479420576": "三級", "481276888": "處於區間之外", - "483246914": "透過由納閩金融服務管理局監管的 Deriv(FX)有限公司(執照編號 MB/18/0024) 新增 Deriv MT5 {{account_type}} STP 帳戶。", "483279638": "已完成評估<0/><0/>", "483591040": "刪除所有 {{ delete_count }} 區塊?", "485379166": "檢視交易", @@ -419,7 +418,6 @@ "551569133": "了解交易限制的詳細資訊", "554410233": "這是10個最常用的密碼", "555351771": "定義好了交易參數和交易期權以後,當達到特定條件時,您還能指示機器人購入合約。您可使用條件區塊和指示器區塊來幫助機器人做決定,以實現此功能。", - "556095366": "將於數分鐘內處理您的資訊並將狀況以電子郵件通知您。", "556264438": "時間間隔", "559224320": "我們的經典拖放工具為高級使用者建立含彈出式交易圖表的交易機器人。", "561982839": "更改幣種", @@ -576,6 +574,7 @@ "745656178": "用此區塊以市價賣出合約。", "745674059": "根據選定選項從提供的文字字串中返回指定字元。 ", "746112978": "電腦更新可能需要數秒鐘", + "750886728": "Switch to your real account to submit your documents", "751692023": "如您轉帳錯誤,我們<0>不保證退款。", "752024971": "已達到小數點的最大位數", "752633544": "一旦達到特定門檻,需要提交身份和地址證明", @@ -790,7 +789,6 @@ "1023643811": "此區塊買入指定類型的合約。", "1023795011": "偶/奇", "1024205076": "邏輯操作", - "1024760087": "已通過驗證,可新增此帳戶", "1025887996": "負餘額保護", "1026046972": "請輸入小於{{max_payout}} 的賠付額。", "1027098103": "槓桿使您能夠以現有資本進行更大頭寸交易。槓桿因不同符號而異。", @@ -874,6 +872,7 @@ "1112582372": "間隔期限", "1113119682": "此區塊提供自燭線圖清單選定的燭線值。", "1113292761": "少於 8MB", + "1113433728": "Resubmit your proof of identity and address", "1117863275": "安全和保密", "1118294625": "您已選擇在 {{exclusion_end}} 前自我禁止在網站交易。如果自我禁止期後無法交易或存款,請通過即時聊天與我們聯繫。", "1119887091": "驗證", @@ -935,7 +934,6 @@ "1189886490": "請開立另一個 Deriv 、 {{platform_name_mt5}} 或{{platform_name_dxtrade}} 帳戶。", "1191429031": "請點選郵件上的連結以更改<0>{{platform_name_dxtrade}} 密碼。", "1191644656": "預測市場走勢,然後選擇「上漲」或「下跌」以建立頭寸。開倉時我們將收取佣金。", - "1191778951": "檢查身份和地址證明", "1192708099": "持續時間單位", "1195393249": "帶聲音通知 {{ notification_type }} : {{ notification_sound }} {{ input_message }}", "1196006480": "利潤門檻", @@ -1009,7 +1007,6 @@ "1281290230": "選擇", "1282951921": "只會持續下跌", "1284522768": "如果選擇「虧損」,假設最後一筆交易失敗,將返回「真」。否則將返回空字串。", - "1285686014": "等待身份證明審核", "1286094280": "提款", "1286507651": "關閉身份驗證螢幕", "1288965214": "護照", @@ -1105,7 +1102,6 @@ "1384222389": "請提交有效的身份證件以解鎖收銀台。", "1385418910": "開立另一個帳戶前請為現有真實帳戶設定幣種。", "1387503299": "登入", - "1388770399": "需要身份證明", "1389197139": "匯入錯誤", "1390792283": "交易參數", "1391174838": "可能的賠付額:", @@ -1118,6 +1114,7 @@ "1396417530": "熊市指數", "1397628594": "資金不足", "1399620764": "根據法律規定,我們有義務要求您提供財務資料。", + "1400341216": "We’ll review your documents and notify you of its status within 1 to 3 days.", "1400637999": "(所有欄位都需要)", "1400732866": "從相機觀看", "1400962248": "最高值-收盤值", @@ -1263,9 +1260,11 @@ "1584109614": "跳動點字串清單", "1584578483": "50 多種資產:外匯,股票,股票指數,綜合指數和加密貨幣。", "1584936297": "XML文件包含不受支援的元素。請檢查或修改文件。", + "1585859194": "Deriv 法定貨幣和 {{platform_name_mt5}} 帳戶之間、Deriv 法定貨幣和 {{platform_name_derivez}} 帳戶之間以及 Deriv 法定貨幣和 {{platform_name_dxtrade}} 帳戶之間的不同貨幣轉帳,將收取 1% 轉帳費。", "1587046102": "目前不支援該國家/地區的文檔 — 嘗試其他文檔類型", "1589640950": "此合約不提供轉售。", "1589702653": "地址證明", + "1591933071": "Resubmit document", "1593010588": "立即登入", "1594147169": "請在下述時間過後返回此處", "1594322503": "可賣出", @@ -1280,7 +1279,6 @@ "1605222432": "我完全沒有交易知識和經驗。", "1605292429": "最大總虧損金額", "1612105450": "取得子字串", - "1613273139": "重新提交身份和地址證明", "1613633732": "時間間隔須介於 10-60 分鐘之間", "1615897837": "訊號 EMA 週期 {{ input_number }}", "1618809782": "最大提款金額", @@ -1324,7 +1322,6 @@ "1665272539": "切記:選定日期之前,無法登入帳戶。", "1665738338": "餘額", "1665756261": "前往即時聊天", - "1667395210": "身份證明已成功提交", "1668138872": "帳戶設定修改", "1670016002": "乘數: {{ multiplier }}", "1670426231": "結束時間", @@ -1349,6 +1346,7 @@ "1694517345": "輸入新的電子郵件地址", "1695807119": "無法載入 Google 雲端硬碟塊", "1700233813": "不允許來自 {{selected_value}} 的轉匯,請從下拉清單中選擇另一個帳戶", + "1701447705": "請更新地址", "1704656659": "您在差價合約交易方面有多少經驗?", "1708413635": "用於 {{currency_name}} ({{currency}}) 帳戶", "1709859601": "退市現價時間", @@ -1419,6 +1417,7 @@ "1778893716": "請按一下此處", "1779519903": "必須是有效號碼。", "1780770384": "此區塊提供 0.0 至 1.0 範圍內的隨機分數。", + "1781393492": "Deriv 法定貨幣和 {{platform_name_mt5}} 帳戶之間、Deriv 法定貨幣和 {{platform_name_derivez}} 帳戶之間以及 Deriv 法定貨幣和 {{platform_name_dxtrade}} 帳戶之間的相同貨幣轉帳,不收取轉帳費。", "1782308283": "快速策略", "1782395995": "最後數字的預測", "1782690282": "區塊功能表", @@ -1429,6 +1428,7 @@ "1788966083": "01-07-1999", "1789497185": "確保護照詳細資料清晰易讀,沒有模糊字體或眩光現象", "1790770969": "外匯-主要貨幣對(標準/微手), 外匯-次要貨幣對, 大宗商品, 加密貨幣", + "1791017883": "查看此<0>使用者手冊。", "1791432284": "搜尋國家", "1791971912": "最近的", "1793913365": "要存款,請先轉至 {{currency_symbol}} 帳戶。", @@ -1549,6 +1549,7 @@ "1918832194": "沒有經驗", "1919030163": "好的自拍技巧", "1919594496": "{{website_name}} 與任何付款代理不存在附屬關係。客戶與付款代理的業務往來,風險自負。建議客戶在使用付款代理的服務前,應事先查詢其信用狀況,並檢查其在{{website_name}} 或其他地方的任何資訊的準確性。", + "1919694313": "To start trading, transfer funds from your Deriv account into this account.", "1920217537": "比較", "1920468180": "如何使用 SMA 區塊", "1921634159": "一些個人資料", @@ -1655,6 +1656,7 @@ "2037481040": "選擇往帳戶注入資金的方式", "2037665157": "擴大所有區塊", "2037906477": "從 # 取得子清單", + "2042023623": "We’re reviewing your documents. This should take about 5 minutes.", "2042050260": "- 買入價格:合約的買入價格(投注額)", "2042115724": "上傳包含姓名,帳戶號碼,電話號碼和電子郵件地址的帳戶和個人詳細資訊頁面的螢幕擷取畫面。", "2042778835": "此投訴政策可能會不時更改,適用於在{{legal_entity_name}} 註冊的帳戶。", @@ -2002,7 +2004,7 @@ "-1543016582": "我特此確認,我提供的稅務資訊是真實和完整的。將來如果此資訊有任何更改,我將會通知{{legal_entity_name}}。", "-1387062433": "開立帳戶的原因", "-1088324715": "將審核文件並於1至3個工作日內通知狀況。", - "-684271315": "確定", + "-329713179": "確定", "-1176889260": "請選擇文件類型。", "-1515286538": "請輸入文件號。 ", "-1785463422": "身份驗證", @@ -2016,7 +2018,6 @@ "-841187054": "重試", "-2097808873": "無法根據提供的資訊驗證 ID。 ", "-228284848": "無法根據提供的資訊驗證 ID。", - "-1443800801": "ID 號已成功提交", "-1391934478": "ID 已驗證。還需提交地址證明。", "-118547687": "ID 驗證已通過", "-200989771": "前往個人資料", @@ -2045,7 +2046,6 @@ "-813779897": "擁有權證明驗證已通過。", "-1389323399": "必須輸入{{min_number}} - {{max_number}} 個字元。", "-1313806160": "請請求新密碼及檢查內含新權杖的電子郵件。", - "-329713179": "確定", "-1598167506": "成功", "-1077809489": "有了新的 {{platform}} 密碼,用於登入網絡和手機應用上的 {{platform}} 帳戶.", "-2068479232": "{{platform}} 密碼", @@ -2093,6 +2093,7 @@ "-680528873": "帳戶將透過 {{legal_entity_name}} 開立,並受薩摩亞的法律管轄。", "-1125193491": "新增帳戶", "-2068229627": "本人不是政治公眾人士,而且在過去的12個月中,我未曾當過政治公眾人士。", + "-684271315": "確定", "-1720468017": "為了給您提供服務,我們需要向您索取資訊,以便評估某項產品或服務是否適合您。", "-186841084": "變更登入電子郵件", "-907403572": "若要變更電子郵件地址,必須先取消電子郵件地址與 {{identifier_title}} 帳戶的連結。", @@ -2225,6 +2226,7 @@ "-38915613": "未儲存更改", "-2137450250": "有未儲存更改。確定放棄更改並離開此頁面?", "-1067082004": "退出設定", + "-1982432743": "文件中的地址似乎與 Deriv 個人資料中的\n 地址不匹配。請立即在個人詳細資料中更新\n 正確地址。", "-1451334536": "繼續交易", "-1525879032": "地址證明文件已過期。請重新提交。", "-1425489838": "不需要地址證明驗證", @@ -2243,7 +2245,6 @@ "-639677539": "買入加密貨幣", "-1560098002": "通過法定通道買入加密貨幣", "-541870313": "通過支付代理存款", - "-72314872": "通過與所在國家/地區的其他交易者點對點兌換,以當地貨幣存款。", "-58126117": "取得加密貨幣的簡單方式。快速安全地兌換和購買加密貨幣的方式。 24/7全天候聊天支持。", "-1705887186": "存款成功。", "-142361708": "正在處理", @@ -2345,8 +2346,11 @@ "-2056016338": "Deriv 法定貨幣和 {{platform_name_mt5}} 帳戶之間相同貨幣轉帳,不收轉帳費。", "-599632330": "Deriv 法定貨幣和 {{platform_name_mt5}} 帳戶之間以及 Deriv 法定貨幣和 {{platform_name_dxtrade}} 帳戶之間的不同貨幣轉帳,將收取 1% 轉帳費。", "-1196994774": "Deriv 加密貨幣帳戶之間的轉帳,將收取 2% 轉帳費或 {{minimum_fee}} {{currency}},以較高者為準。", + "-1361372445": "Deriv 加密貨幣和 Deriv MT5 帳戶之間、Deriv 法定貨幣和 {{platform_name_mt5}} 帳戶之間以及 Deriv 加密貨幣和 {{platform_name_dxtrade}} 帳戶之間的轉帳,將收取 2% 轉帳費或 {{minimum_fee}} {{currency}},以較高者為準。", "-993556039": "Deriv 加密貨幣和 Deriv MT5 帳戶之間以及 Deriv 加密貨幣和 {{platform_name_dxtrade}} 帳戶之間的轉帳,將收取 2% 轉帳費或 {{minimum_fee}} {{currency}},以較高者為準。", "-1382702462": "Deriv 加密貨幣和 Deriv MT5 帳戶之間的轉帳,我們將收取 2% 轉帳費或 {{minimum_fee}} {{currency}},以較高者為準。", + "-1995859618": "可進行 Deriv 法定貨幣、加密貨幣、{{platform_name_mt5}} 、{{platform_name_derivez}} 和 {{platform_name_dxtrade}} 帳戶之間的轉帳。", + "-545616470": "每天,最多可以在 Deriv 帳戶之間進行 {{ allowed_internal }} 次轉帳,Deriv 和 {{platform_name_mt5}} 帳戶之間最多 {{ allowed_mt5 }} 次轉帳,Deriv 和 {{ allowed_derivez }} 帳戶之間最多 {{platform_name_derivez}} 次轉帳,以及 Deriv 和 {{platform_name_dxtrade}} 帳戶之間最多 {{ allowed_dxtrade }} 次轉帳 .", "-1151983985": "轉帳限制可能因匯率而更改。", "-1747571263": "請記住,某些轉帳可能無法進行。", "-757062699": "由於高波動率或技術問題以及交易市場關閉,可能無法轉帳。", @@ -2631,6 +2635,7 @@ "-328128497": "金融", "-533935232": "金融 BVI", "-565431857": "金融納閩", + "-1290112064": "Deriv EZ", "-1669418686": "澳元/加元", "-1548588249": "澳元/瑞士法郎", "-1552890620": "澳元/日圓", @@ -2745,6 +2750,7 @@ "-1125797291": "密碼已更新。", "-157145612": "請用更新密碼登入。", "-1728185398": "重新提交地址證明", + "-612396514": "Please resubmit your proof of address.", "-1519764694": "地址證明已通過驗證.", "-1961967032": "重新提交身份證明", "-117048458": "請提交身份證明。", @@ -2772,6 +2778,10 @@ "-1834929362": "上傳文件", "-1043638404": "<0>擁有權證明<1>驗證失敗", "-1766760306": "<0><1>請上傳<2>正確資料的文件。<3>", + "-2142540205": "文件中的地址似乎與 Deriv 個人資料中的地址不匹配。請立即在個人詳細資料中更新正確地址。", + "-482715448": "前往個人資料", + "-2072411961": "地址證明已通過驗證", + "-384887227": "更新個人資料中的地址。", "-1998049070": "如同意我們使用 cookie,請點選「接受」。有關更多資訊,請<0>參閱我們的政策。", "-402093392": "新增 Deriv 帳戶", "-277547429": "Deriv 帳戶將允許為 MT5 帳戶注資(和提款)。", @@ -2913,6 +2923,10 @@ "-429248139": "免責聲明", "-818926350": "事件發生之日起45天內,金融委員會接受上訴,條件是交易者事先須試圖直接與公司解決問題。", "-358055541": "使用強大的新工具加強交易實力", + "-29496115": "我們與 Acuity 合作,提供了適用於 MT5 的直觀交易工具,讓您可以免費追蹤市場事件和趨勢!<0/><0/>", + "-648669944": "下載 Acuity 套件,無需離開 MT5 終端機即可利用<1>宏觀經濟日曆,市場警報,研究終端和<1>訊號中心交易思想。<0/><0/>", + "-794294380": "此套件僅適用於 Windows,最推薦用於金融資產。", + "-922510206": "需要協助使用 Acuity 嗎?", "-815070480": "免責聲明:Acuity 提供的交易服務和資訊不應被解釋為招攬投資和/或交易。Deriv 不提供投資建議。過去的成就不是未來的指南,過去曾經有效的策略未來可能無效。", "-2111521813": "下載 Acuity", "-175369516": "歡迎來到 Deriv X", @@ -2968,6 +2982,7 @@ "-712681566": "對等兌換", "-1267880283": "{{field_name}} 為必填項", "-2084509650": "{{field_name}} 的格式不正確。", + "-222283483": "Account opening reason*", "-1779241732": "地址第一行的格式不正確。", "-188222339": "不可超過 {{max_number}} 個字元。", "-1673422138": "州/省的格式不正確。", @@ -2981,13 +2996,15 @@ "-1982499699": "探索 {{platform_name_dbot}}", "-1567989247": "提交身份和地址證明", "-184453418": "輸入{{platform}} 密碼", - "-1769158315": "真實", - "-700260448": "示範", - "-1980366110": "恭喜,已成功建立了 {{category}}{{platform}}<0>{{type}} 帳戶。", + "-393388362": "We’re reviewing your documents. This should take about 1 to 3 days.", "-790488576": "忘記密碼?", "-926547017": "輸入 {{platform}} 密碼以新增 {{platform}}{{account}}{{jurisdiction_shortcode}} 帳戶。", "-1190393389": "輸入 {{platform}} 密碼以新增 {{platform}} {{account}} 帳戶。", "-2057918502": "提示:可能輸入了與 {{platform}} 密碼不同的 Deriv 密碼。", + "-1769158315": "真實", + "-700260448": "示範", + "-1936102840": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} account. ", + "-1570793523": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} account.", "-1928229820": "重設Deriv X投資者密碼", "-1087845020": "首頁", "-1950683866": "投資者", @@ -3013,24 +3030,14 @@ "-161656683": "目前投資者密碼", "-374736923": "新投資者密碼", "-1793894323": "建立或重設投資者密碼", - "-1124208206": "切換到真實帳戶開立 DMT5 {{account_title}} {{type_title}} 帳戶。", - "-1576792859": "需提供身份及地址證明文件", - "-104382603": "檢查地址證明", - "-793684335": "檢查身份證明", "-1271218821": "已新增帳戶", - "-599621079": "透過 Deriv (SVG) 有限責任公司 (公司編號 273 LLC 2020) 新增 Deriv MT5 {{account_type}} 帳戶。", - "-1302969276": "透過由英屬維爾京群島金融服務委員會監管的 Deriv(BVI)有限公司(執照編號 SIBA/{{line_break}}L/18/1114) 新增 Deriv MT5 {{account_type}} 帳戶。", - "-1422519943": "透過由萬那杜金融服務委員會監管的 Deriv(V)有限公司新增 DMT5 {{account_type}} 帳戶。", - "-1731304187": "透過由馬爾他金融服務管理局(MFSA)監管的 Deriv 投資(歐洲)有限公司(執照編號 IS/70156) 新增 Deriv MT5 差價合約帳戶。", - "-16048185": "要開立此帳戶,首先需要提供身份和地址證明。", - "-1627989291": "要開立此帳戶,首先需要重新提交身份證明。", - "-1389025684": "要開立此帳戶,首先需要重新提交身份和地址證明。", - "-1615750576": "提交的文件經過驗證後,將可以開立此帳戶。", - "-724308541": "Deriv MT5 差價合約帳戶的管轄權", - "-479119833": "為 Deriv MT5 {{account_type}} 帳戶選擇管轄區", + "-1576792859": "需提供身份及地址證明文件", "-1931257307": "需要提交身份證明", "-2026018074": "透過 Deriv (SVG) 有限責任公司 (公司編號 273 LLC 2020) 新增 Deriv MT5 <0>{{account_type_name}}帳戶。", "-162320753": "透過由英屬維爾京群島金融服務委員會監管的 Deriv(BVI)有限公司(執照編號SIBA/L/18/1114) 新增 Deriv MT5 <0>{{account_type_name}}帳戶。", + "-1731304187": "透過由馬爾他金融服務管理局(MFSA)監管的 Deriv 投資(歐洲)有限公司(執照編號 IS/70156) 新增 Deriv MT5 差價合約帳戶。", + "-724308541": "Deriv MT5 差價合約帳戶的管轄權", + "-479119833": "為 Deriv MT5 {{account_type}} 帳戶選擇管轄區", "-450424792": "需擁有 Deriv 真實帳戶(法定貨幣或加密貨幣)以建立真實 Deriv MT5 帳戶。", "-1760596315": "開立Deriv帳戶", "-705682181": "馬爾他", From 5a902f79f2fffae39f0064cbd110feecf6107685 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 12 Jan 2023 10:52:36 +0400 Subject: [PATCH 26/84] =?UTF-8?q?translations:=20=F0=9F=93=9A=20sync=20tra?= =?UTF-8?q?nslations=20with=20crowdin=20(#7361)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: DerivFE <80095553+DerivFE@users.noreply.github.com> --- .../translations/src/translations/es.json | 116 +++++++++--------- .../translations/src/translations/fr.json | 22 ++-- .../translations/src/translations/id.json | 60 ++++----- .../translations/src/translations/it.json | 24 ++-- .../translations/src/translations/ko.json | 30 ++--- .../translations/src/translations/pt.json | 22 ++-- .../translations/src/translations/ru.json | 44 +++---- .../translations/src/translations/th.json | 34 ++--- .../translations/src/translations/zh_cn.json | 22 ++-- .../translations/src/translations/zh_tw.json | 22 ++-- 10 files changed, 198 insertions(+), 198 deletions(-) diff --git a/packages/translations/src/translations/es.json b/packages/translations/src/translations/es.json index 49762a8c26a4..08a7cdea0209 100644 --- a/packages/translations/src/translations/es.json +++ b/packages/translations/src/translations/es.json @@ -54,7 +54,7 @@ "73086872": "Se ha autoexcluido del trading", "73326375": "El mínimo corresponde al menor punto alcanzado por el mercado durante el período del contrato.", "74963864": "Bajo", - "76916358": "Ha alcanzado el límite de retiro. <0/> Suba su prueba de identidad y dirección para levantar el límite y continuar con su retiro.", + "76916358": "Ha alcanzado el límite de retiro. <0/> Suba su prueba de identidad y domicilio para levantar el límite y continuar con su retiro.", "80881349": "Obtener una cuenta de Opciones", "81450871": "No pudimos encontrar la página", "82839270": "Suba la página de su pasaporte que contiene la foto.", @@ -85,7 +85,7 @@ "120340777": "Completar sus datos personales", "123454801": "{{withdraw_amount}} {{currency_symbol}}", "124625402": "de", - "124723298": "Suba una prueba de dirección para verificar su dirección", + "124723298": "Suba una prueba de domicilio para verificar su dirección", "125443840": "6. Reiniciar última operación en caso de error", "127307725": "Una persona expuesta políticamente (PEP) es alguien con una posición pública prominente. Los asociados cercanos y los miembros de la familia de una PEP también se consideran PEP.", "130567238": "ENTONCES", @@ -211,7 +211,7 @@ "277469417": "El tiempo de exclusión no puede ser mayor a cinco años.", "278684544": "obtener sublista desde # desde el final", "282319001": "Revise su foto", - "282564053": "A continuación, necesitaremos su prueba de dirección.", + "282564053": "A continuación, necesitaremos su prueba de domicilio.", "283830551": "Tu dirección no coincide con la de tu perfil", "283986166": "La autoexclusión en este sitio web solo se aplica a su cuenta {{brand_website_name}} y no incluye otras empresas o sitios web.", "284527272": "antimoda", @@ -360,7 +360,7 @@ "466369320": "Su ganancia bruta es el cambio porcentual en el precio de mercado multiplicado por su inversión y el multiplicador elegido aquí.", "467839232": "Opero con CFD de divisas y otros instrumentos financieros complejos con regularidad en otras plataformas.", "473154195": "Configuración", - "473863031": "Revisión de la prueba de dirección pendiente", + "473863031": "Revisión de la prueba de domicilio pendiente", "474306498": "Lamentamos que se vaya. Su cuenta ahora está cerrada.", "475492878": "Pruebe los índices sintéticos", "476023405": "¿No recibió el correo electrónico?", @@ -473,7 +473,7 @@ "623542160": "Conjunto de la Media Móvil Exponencial (EMAA)", "626175020": "Multiplicador de desviación estándar ascendente {{ input_number }}", "626809456": "Reenviar", - "627292452": "<0>Su prueba de identidad o de direcciónno cumple nuestros requisitos. Por favor, revise su correo electrónico para más instrucciones.", + "627292452": "<0>Su prueba de identidad o de domiciliono cumple nuestros requisitos. Por favor, revise su correo electrónico para más instrucciones.", "627814558": "Este bloque devuelve un valor cuando una condición es verdadera. Use este bloque dentro de cualquiera de los bloques de funciones anteriores.", "628193133": "ID de cuenta", "629145209": "En caso que se seleccione la operación \"Y\", el bloque devuelve \"Verdadero\" solo si ambos valores dados son \"Verdaderos\"", @@ -574,10 +574,10 @@ "745656178": "Use este bloque para vender su contrato al precio de mercado.", "745674059": "Devuelve el carácter específico de una cadena de texto dada de acuerdo con la opción seleccionada. ", "746112978": "Su computadora puede tardar unos segundos en actualizarse", - "750886728": "Switch to your real account to submit your documents", + "750886728": "Cambie a su cuenta real para enviar sus documentos", "751692023": "<0>No garantizamos un reembolso si realiza una transferencia equivocada.", "752024971": "Número máximo de dígitos alcanzado", - "752633544": "Deberá presentar prueba de identidad y de dirección cuando haya alcanzado ciertos umbrales", + "752633544": "Deberá presentar prueba de identidad y de domicilio cuando haya alcanzado ciertos umbrales", "752992217": "Este bloque le da los valores constantes seleccionados.", "753088835": "Predeterminado", "753184969": "Al ofrecerle nuestros servicios, estamos obligados a obtener información suya con el fin de evaluar si un determinado producto o servicio es adecuado para usted (es decir, si posee la experiencia y el conocimiento necesarios para entender los riesgos).<0/><1/>", @@ -619,7 +619,7 @@ "800521289": "Sus datos personales están incompletos", "801430087": "Un enlace puede contener la palabra \"Deriv\" y seguir siendo falso.", "802436811": "Ver detalles de la transacción", - "802438383": "Se necesita una nueva prueba de dirección", + "802438383": "Se necesita una nueva prueba de domicilio", "802556390": "segundos", "802989607": "Arrastre su archivo XML aquí", "803500173": "Inversión inicial", @@ -703,7 +703,7 @@ "905227556": "Las contraseñas seguras contienen al menos 8 caracteres y combinan letras mayúsculas y minúsculas con números.", "905564365": "CFD en MT5", "906049814": "Revisaremos sus documentos y le avisaremos de su estado en un plazo de 5 minutos.", - "907680782": "Fallo en la verificación de la prueba de propiedad", + "907680782": "Fallo en la verificación de la prueba de titularidad", "910888293": "Demasiados intentos", "915735109": "Volver a {{platform_name}}", "918447723": "Real", @@ -777,7 +777,7 @@ "1006664890": "Silencioso", "1009032439": "Todo el tiempo", "1010198306": "Este bloque crea una lista con cadenas y números.", - "1010337648": "No hemos podido verificar su prueba de propiedad.", + "1010337648": "No hemos podido verificar su prueba de titularidad.", "1012102263": "No podrá iniciar sesión en su cuenta hasta esta fecha (hasta 6 semanas a partir de hoy).", "1015201500": "Defina sus parámetros comerciales tales como la duración y la inversión.", "1016220824": "Debe cambiar a una cuenta de dinero real para usar esta función.<0 />Puede hacerlo seleccionando una cuenta real desde el <1>Selector de cuenta.", @@ -806,7 +806,7 @@ "1036867749": "Aquí se define la duración deseada, la inversión, la predicción y / o la(s) barrera(s) para el contrato.", "1038575777": "Cambiar contraseña", "1039755542": "Use algunas palabras, evite frases comunes", - "1040677897": "Para continuar operando, también debe presentar una prueba de dirección.", + "1040677897": "Para continuar operando, también debe presentar una prueba de domicilio.", "1041001318": "Este bloque realiza las siguientes operaciones en una lista dada: suma, mínimo, máximo, promedio, mediana, modo, antimodo, desviación estándar, elemento aleatorio.", "1041620447": "Si no puede escanear el código QR, puede ingresar este código manualmente:", "1042659819": "Tiene una cuenta que necesita acción", @@ -840,7 +840,7 @@ "1065498209": "Iterar (1)", "1069347258": "El enlace de verificación que usó no es válido o expiró. Solicite uno nuevo.", "1069576070": "Compra bloqueada", - "1070624871": "Ver estado de la verificación de la prueba de dirección", + "1070624871": "Ver estado de la verificación de la prueba de domicilio", "1076006913": "Ganancia / pérdida en los últimos {{item_count}} contratos", "1077515534": "Fecha a", "1078221772": "El apalancamiento le impide abrir posiciones grandes.", @@ -865,18 +865,18 @@ "1103309514": "Objetivo", "1103452171": "Las cookies nos ayudan a brindarle una mejor experiencia y contenido personalizado en nuestro sitio.", "1104912023": "Verificación pendiente", - "1107474660": "Enviar prueba de dirección", + "1107474660": "Enviar prueba de domicilio", "1107555942": "A", "1109217274": "¡Exitoso!", "1110102997": "Extracto", "1112582372": "Duración del intervalo", "1113119682": "Este bloque le da el valor de vela seleccionado de una lista de velas.", "1113292761": "Menos de 8MB", - "1113433728": "Resubmit your proof of identity and address", + "1113433728": "Vuelva a enviar su prueba de identidad y domicilio", "1117863275": "Seguridad y privacidad", "1118294625": "Ha elegido excluirse del comercio en nuestro sitio web hasta el {{exclusion_end}}. Si no puede realizar una transacción o depósito después de su período de autoexclusión, comuníquese con nosotros a través del chat en vivo.", "1119887091": "Verificación", - "1119986999": "Su prueba de dirección se ha subido correctamente", + "1119986999": "Su prueba de domicilio se ha subido correctamente", "1120985361": "Términos y condiciones actualizados", "1122910860": "Por favor, complete su <0>evaluación financiera.", "1123927492": "No ha seleccionado la moneda de su cuenta", @@ -955,7 +955,7 @@ "1217481729": "Tether como token ERC20 (eUSDT) es una versión de Tether que está alojada en Ethereum.", "1218546232": "¿Qué es Fiat onramp?", "1219844088": "hacer %1", - "1221250438": "Para permitir los retiros, por favor envíe su <0>Prueba de Identidad (POI) y su <1>Prueba de Dirección (POA) y complete también la <2>evaluación financiera en los ajustes de su cuenta.", + "1221250438": "Para permitir los retiros, por favor envíe su <0>Prueba de Identidad (POI) y su <1>Prueba de Domicilio (POA) y complete también la <2>evaluación financiera en los ajustes de su cuenta.", "1222096166": "Depositar mediante transferencia bancaria, tarjeta de crédito y billetera electrónica", "1222521778": "Hacer depósitos y retiros es difícil.", "1222544232": "Le hemos enviado un correo electrónico", @@ -1020,12 +1020,12 @@ "1295284664": "Por favor, acepte nuestros <0>Términos y Condiciones actualizados para proceder.", "1296380713": "Cerrar mi contrato", "1299479533": "8 horas", - "1300576911": "Vuelva a enviar su prueba de dirección o es posible que restrinjamos su cuenta.", + "1300576911": "Vuelva a enviar su prueba de domicilio o es posible que restrinjamos su cuenta.", "1302691457": "Ocupación", "1303016265": "Sí", "1303530014": "Estamos procesando su retiro.", "1304083330": "copiar", - "1304272843": "Envíe su prueba de dirección.", + "1304272843": "Envíe su prueba de domicilio.", "1304620236": "Habilitar cámara", "1304788377": "<0/><1/>Si su queja se refiere a nuestras prácticas de procesamiento de datos, puede presentar una queja formal al <2>Comisionado de Protección de Datos e Información (Malta) en su sitio web o presentar una queja a cualquier autoridad de supervisión dentro de la Unión Europea.", "1305217290": "Suba el reverso de su documento de identidad.", @@ -1114,7 +1114,7 @@ "1396417530": "Índice del Mercado Bajista", "1397628594": "Fondos insuficientes", "1399620764": "Estamos legalmente obligados a solicitar su información financiera.", - "1400341216": "We’ll review your documents and notify you of its status within 1 to 3 days.", + "1400341216": "Revisaremos sus documentos y le avisaremos de su estado en un plazo de 1 a 3 días.", "1400637999": "(Todos los campos son obligatorios)", "1400732866": "Vista desde la cámara", "1400962248": "Alto-Cierre", @@ -1263,8 +1263,8 @@ "1585859194": "Cobraremos una comisión de transferencia del 1% por las transferencias en diferentes divisas entre sus cuentas Deriv fiat y {{platform_name_mt5}}, sus cuentas Deriv fiat y {{platform_name_derivez}}, y entre sus cuentas Deriv fiat y {{platform_name_dxtrade}}.", "1587046102": "Actualmente no se admiten documentos de ese país: pruebe con otro tipo de documento", "1589640950": "No se ofrece reventa de este contrato.", - "1589702653": "Prueba de dirección", - "1591933071": "Resubmit document", + "1589702653": "Prueba de domicilio", + "1591933071": "Volver a enviar documento", "1593010588": "Inicie sesión ahora", "1594147169": "Por favor regrese en", "1594322503": "Venta disponible", @@ -1466,7 +1466,7 @@ "1833481689": "Desbloquear", "1833499833": "No se han podido subir los documentos de identidad", "1836767074": "Buscar nombre del agente de pagos", - "1837762008": "Envíe la prueba de identidad y prueba de dirección para verificar su cuenta en la configuración de cuenta para acceder al cajero.", + "1837762008": "Envíe la prueba de identidad y prueba de domicilio para verificar su cuenta en la configuración de cuenta para acceder al cajero.", "1838639373": "Recursos", "1839021527": "Introduzca un número de cuenta válido. Ejemplo: CR123456789", "1840865068": "ajustar {{ variable }} al Conjunto de la media móvil simple {{ dummy }}", @@ -1490,7 +1490,7 @@ "1854480511": "El cajero está bloqueado", "1854874899": "Volver a la lista", "1855566768": "Posición del elemento de la lista", - "1856485118": "<0>Vuelva a enviar su prueba de dirección para transferir fondos entre las cuentas MT5 y Deriv.", + "1856485118": "<0>Vuelva a enviar su prueba de domicilio para transferir fondos entre las cuentas MT5 y Deriv.", "1858251701": "minuto", "1859308030": "Dar su opinión", "1863053247": "Suba su documento de identidad.", @@ -1509,7 +1509,7 @@ "1874481756": "Use este bloque para comprar el contrato específico que desea. Puede agregar varios bloques de compra junto con bloques condicionales para definir sus condiciones de compra. Este bloque solo se puede usar dentro del bloque Condiciones de compra.", "1874756442": "BVI", "1876325183": "Minutos", - "1877225775": "Su prueba de dirección se ha verificado", + "1877225775": "Su prueba de domicilio se ha verificado", "1877410120": "Lo que necesita hacer ahora", "1877832150": "# desde final", "1879042430": "Prueba de Idoneidad, ADVERTENCIA:", @@ -1526,7 +1526,7 @@ "1889357660": "Ingrese un valor en minutos, hasta 60480 minutos (equivalente a 6 semanas).", "1890171328": "Al hacer clic en Aceptar abajo y proceder a la apretura de la cuenta, debe tener en cuenta que es posible que se esté exponiendo a riesgos (que pueden ser significativos, incluyendo el riesgo de pérdida de la totalidad de la suma invertida) que usted puede no conocer y no tiene la experiencia para evaluarlos o mitigarlos adecuadamente.", "1890332321": "Devuelve el número de caracteres de una cadena de texto dada, incluyendo números, espacios, signos de puntuación y símbolos.", - "1894667135": "Verifique su prueba de dirección", + "1894667135": "Verifique su prueba de domicilio", "1898670234": "{{formatted_opening_time}} (GMT) el {{opening_day}},<0> {{opening_date}}.", "1902547203": "App MetaTrader 5 para MacOS", "1903437648": "Se detectó una foto borrosa", @@ -1549,7 +1549,7 @@ "1918832194": "Sin experiencia", "1919030163": "Consejos para sacarse un buen selfie", "1919594496": "{{website_name}} no está asociado con ningún agente de pago. Los clientes tratan con los agentes de pago bajo su propia responsabilidad. Se recomienda a los clientes que comprueben las credenciales de los agentes de pago y la exactitud de cualquier información sobre los agentes de pago (en {{website_name}} o en otro lugar) antes de utilizar sus servicios.", - "1919694313": "To start trading, transfer funds from your Deriv account into this account.", + "1919694313": "Para empezar a operar, transfiera fondos de su cuenta de Deriv a esta cuenta.", "1920217537": "Comparar", "1920468180": "Cómo usar el bloque SMA", "1921634159": "Algunos datos personales", @@ -1611,7 +1611,7 @@ "1988153223": "Dirección de correo electrónico", "1988302483": "Take profit:", "1988601220": "Valor de duración", - "1990331072": "Prueba de propiedad", + "1990331072": "Prueba de titularidad", "1990735316": "Rise Equals", "1991448657": "¿No sabe su número de identificación fiscal? Haga clic <0>aquí para obtener más información.", "1991524207": "Índice Jump 100", @@ -1656,7 +1656,7 @@ "2037481040": "Elija una forma de depositar fondos en su cuenta", "2037665157": "Expandir todos los bloques", "2037906477": "obtener sub-lista desde #", - "2042023623": "We’re reviewing your documents. This should take about 5 minutes.", + "2042023623": "Estamos revisando sus documentos. Esto debería tardar unos 5 minutos.", "2042050260": "- Precio de compra: el precio de compra (inversión) del contrato", "2042115724": "Suba una captura de pantalla de su cuenta y de la página de datos personales con su nombre, número de cuenta, número de teléfono y dirección de correo electrónico.", "2042778835": "Esta política de quejas, que puede cambiar de vez en cuando, se aplica a su(s) cuenta(s) registrada(s) con {{legal_entity_name}}.", @@ -1755,7 +1755,7 @@ "-566750665": "Recibo NIMC y prueba de edad", "-1465944279": "Número de recibo NIMC", "-429612996": "A continuación, suba los siguientes documentos.", - "-376981174": "Cargue su comprobante de edad: certificado de nacimiento o documento de declaración de edad.", + "-376981174": "Suba su comprobante de edad: certificado de nacimiento o documento de declaración de edad.", "-612174191": "Se requiere la primera línea de dirección", "-242734402": "Solo {{max}} caracteres, por favor.", "-378415317": "Se requiere el estado", @@ -2018,7 +2018,7 @@ "-841187054": "Intentar de nuevo", "-2097808873": "No pudimos verificar su identidad con los detalles que proporcionó. ", "-228284848": "No pudimos verificar su identidad con los detalles que proporcionó.", - "-1391934478": "Su identidad está verificada. También deberá presentar una prueba de su dirección.", + "-1391934478": "Su identidad está verificada. También deberá presentar una prueba de su domicilio.", "-118547687": "Verificación de identidad aprobada", "-200989771": "Ir a detalles personales", "-1358357943": "Verifique y actualice su código postal antes de enviar una prueba de identidad.", @@ -2039,11 +2039,11 @@ "-1664309884": "Pulse aquí para subir", "-1725454783": "Fallado", "-839094775": "Atrás", - "-856213726": "También debe presentar una prueba de dirección.", - "-987011273": "No se requiere su prueba de propiedad.", - "-808299796": "No es necesario que presente una prueba de propiedad en este momento. Le informaremos si se requiere una prueba de propiedad más adelante.", - "-179726573": "Hemos recibido su prueba de propiedad.", - "-813779897": "Se ha superado la verificación de la prueba de propiedad.", + "-856213726": "También debe presentar una prueba de domicilio.", + "-987011273": "No se requiere su prueba de titularidad.", + "-808299796": "No es necesario que presente una prueba de titularidad en este momento. Le informaremos si se requiere una prueba de titularidad más adelante.", + "-179726573": "Hemos recibido su prueba de titularidad.", + "-813779897": "Se ha superado la verificación de la prueba de titularidad.", "-1389323399": "Debe ingresar {{min_number}} - {{max_number}} caracteres.", "-1313806160": "Solicite una nueva contraseña y revise su correo electrónico para obtener el nuevo token.", "-1598167506": "Éxito", @@ -2228,10 +2228,10 @@ "-1067082004": "Salir de los ajustes", "-1982432743": "Parece que la dirección en su documento no coincide con la dirección\n en su perfil Deriv. Actualice sus datos personales con la\n dirección correcta.", "-1451334536": "Continúe operando", - "-1525879032": "Sus documentos para verificar su dirección caducaron. Por favor envíelos nuevamente.", - "-1425489838": "No se requiere verificación de la prueba de dirección", + "-1525879032": "Sus documentos para verificar su domicilio caducaron. Por favor envíelos nuevamente.", + "-1425489838": "No se requiere verificación de la prueba de domicilio", "-1008641170": "Su cuenta no necesita verificación de dirección en este momento. Le informaremos si se requiere verificación de dirección en el futuro.", - "-60204971": "No pudimos verificar su prueba de dirección", + "-60204971": "No pudimos verificar su prueba de domicilio", "-1944264183": "Para continuar operando, también debe presentar una prueba de identidad.", "-1617352279": "El correo electrónico está en su carpeta de spam (a veces las cosas se pierden allí).", "-547557964": "No podemos enviar el correo electrónico a esta dirección (generalmente debido a los firewalls o al filtrado).", @@ -2294,7 +2294,7 @@ "-1321645628": "Su cajero está bloqueado actualmente. Comuníquese con nosotros a través del chat en vivo para averiguar cómo desbloquearlo.", "-1158467524": "Su cuenta está temporalmente deshabilitada. Comuníquese con nosotros a través del chat en vivo para habilitar los depósitos y retiros nuevamente.", "-929148387": "Configure la moneda de su cuenta para permitir depósitos y retiros.", - "-541392118": "Su cuenta no ha sido autenticada. Envíe su <0>prueba de identidad y <1>prueba de dirección para autenticar su cuenta y acceder a su cajero.", + "-541392118": "Su cuenta no ha sido autenticada. Envíe su <0>prueba de identidad y <1>prueba de domicilio para autenticar su cuenta y acceder a su cajero.", "-247122507": "Su cajero está bloqueado. Complete la <0>evaluación financiera para desbloquearlo.", "-1443721737": "Su cajero está bloqueado. Vea <0>cómo protegemos sus fondos antes de continuar.", "-901712457": "Su acceso al Cajero se ha desactivado temporalmente porque no ha establecido su límite de facturación de 30 días. Vaya a <0>Autoexclusión y establezca su límite de facturación de 30 días.", @@ -2303,7 +2303,7 @@ "-378858101": "Sus <0>datos personales están incompletos. Vaya a la configuración de su cuenta y complete sus datos personales para permitir depositos.", "-1037495888": "Ha elegido excluirse del comercio en nuestro sitio web hasta el {{exclude_until}}. Si no puede realizar una transacción o depósito después de su período de autoexclusión, comuníquese con nosotros a través del chat en vivo.", "-949074612": "Contáctenos a través de chat en vivo.", - "-1318742415": "Su cuenta no ha sido autenticada. Envíe su <0>prueba de identidad y <1>prueba de dirección para autenticar su cuenta y solicitar retiros.", + "-1318742415": "Su cuenta no ha sido autenticada. Envíe su <0>prueba de identidad y <1>prueba de domicilio para autenticar su cuenta y solicitar retiros.", "-127614820": "Desgraciadamente, solo puede realizar depósitos. Comuníquese con nosotros a través del chat en vivo para habilitar los retiros.", "-172277021": "El cajero está bloqueado para retiros", "-1624999813": "Parece que no tiene comisiones que retirar en este momento. Puede efectuar retiros una vez que haya recibido sus comisiones.", @@ -2629,7 +2629,7 @@ "-568280383": "Juegos en Deriv", "-1308346982": "Derivada", "-1546927062": "Financiera Deriv", - "-895331276": "Complete su prueba de dirección", + "-895331276": "Complete su prueba de domicilio", "-782679300": "Complete su prueba de identidad", "-1596515467": "Derivada BVI", "-328128497": "Financiera", @@ -2750,14 +2750,14 @@ "-1125797291": "Contraseña actualizada.", "-157145612": "Inicie sesión con su contraseña actualizada.", "-1728185398": "Volver a enviar la prueba de domicilio", - "-612396514": "Please resubmit your proof of address.", - "-1519764694": "Su prueba de dirección se ha verificado.", + "-612396514": "Por favor, vuelva a enviar su prueba de domicilio.", + "-1519764694": "Su prueba de domicilio se ha verificado.", "-1961967032": "Volver a enviar la prueba de identidad", "-117048458": "Envíe su prueba de identidad.", "-1196422502": "Su prueba de identidad está verificada.", - "-136292383": "La verificación de su prueba de dirección está pendiente", - "-386909054": "Verificación fallida de la prueba de dirección", - "-430041639": "Su prueba de dirección no ha superado nuestras comprobaciones de verificación y hemos impuesto algunas restricciones a su cuenta. Vuelva a enviar su prueba de dirección.", + "-136292383": "La verificación de su prueba de domicilio está pendiente", + "-386909054": "Verificación fallida de la prueba de domicilio", + "-430041639": "Su prueba de domicilio no ha superado nuestras comprobaciones de verificación y hemos impuesto algunas restricciones a su cuenta. Vuelva a enviar su prueba de domicilio.", "-87177461": "Vaya a la configuración de su cuenta y complete los datos personales para permitir los depósitos.", "-904632610": "Reinicie su saldo", "-470018967": "Reiniciar saldo", @@ -2773,14 +2773,14 @@ "-1719731099": "Con la autenticación de dos factores, protegerá su cuenta tanto con su contraseña como con su teléfono, para que solo usted pueda acceder a su cuenta, incluso si alguien conoce su contraseña.", "-2087822170": "Está desconectado", "-1669693571": "Revise su conexión.", - "-1706642239": "<1>Se requiere <0>prueba de propiedad", - "-553262593": "<0><1>Su cuenta está actualmente bloqueada <2><3>Suba su comprobante de <4>propiedad para desbloquear su cuenta.<5>", + "-1706642239": "<1>Se requiere <0>prueba de titularidad", + "-553262593": "<0><1>Su cuenta está actualmente bloqueada <2><3>Suba su prueba de <4>titularidad para desbloquear su cuenta.<5>", "-1834929362": "Subir mi documento", - "-1043638404": "<1>Fallo en la verificación de la prueba de <0>propiedad", + "-1043638404": "<1>Fallo en la verificación de la prueba de <0>titularidad", "-1766760306": "<0><1>Suba su documento <2>con los detalles correctos.<3>", "-2142540205": "Parece que la dirección en su documento no coincide con la dirección en su perfil Deriv. Actualice sus datos personales con la dirección correcta.", "-482715448": "Ir a Datos personales", - "-2072411961": "Su prueba de dirección ha sido verificada", + "-2072411961": "Su prueba de domicilio ha sido verificada", "-384887227": "Actualice la dirección en su perfil.", "-1998049070": "Si acepta nuestro uso de cookies, haga clic en Aceptar. Para obtener más información, <0>consulte nuestra política.", "-402093392": "Añadir cuenta Deriv", @@ -2846,7 +2846,7 @@ "-228099749": "Verifique su identidad y dirección", "-1041852744": "Estamos procesando su información personal", "-1775006840": "Haga un depósito ahora para comenzar a operar.", - "-983734304": "Necesitamos comprobante de su identidad y dirección antes de que pueda comenzar a operar.", + "-983734304": "Necesitamos su prueba de identidad y domicilio antes de que pueda comenzar a operar.", "-917733293": "Para comenzar a operar, confirme dónde vive.", "-1282628163": "Podrá comenzar a operar tan pronto como se complete la verificación.", "-952649119": "Iniciar sesión", @@ -2966,7 +2966,7 @@ "-785625598": "Utilice estas credenciales para iniciar sesión en su cuenta {{platform}} en el sitio web y en las aplicaciones móviles.", "-997127433": "Cambiar contraseña", "-162753510": "Agregar cuenta real", - "-1300381594": "Obtener las herramientas de trading Acuity", + "-1300381594": "Obtener herramientas Acuity", "-860609405": "Contraseña", "-742647506": "Transferencia de fondos", "-1972393174": "Opere con CFD en nuestros sintéticos, cestas y divisas derivadas.", @@ -2982,7 +2982,7 @@ "-712681566": "Intercambio entre pares (peer-to-peer)", "-1267880283": "Se requiere {{field_name}}", "-2084509650": "{{field_name}} no tiene el formato adecuado.", - "-222283483": "Account opening reason*", + "-222283483": "Motivo para abrir la cuenta*", "-1779241732": "La primera línea de dirección no está en un formato adecuado.", "-188222339": "No debe exceder {{max_number}} caracteres.", "-1673422138": "El Estado/Provincia no está en un formato adecuado.", @@ -2994,17 +2994,17 @@ "-1199152768": "Explore nuestras otras plataformas.", "-205020823": "Explore {{platform_name_trader}}", "-1982499699": "Explore {{platform_name_dbot}}", - "-1567989247": "Envíe su prueba de identidad y dirección", + "-1567989247": "Envíe su prueba de identidad y domicilio", "-184453418": "Introduzca su contraseña {{platform}}", - "-393388362": "We’re reviewing your documents. This should take about 1 to 3 days.", + "-393388362": "Estamos revisando sus documentos. Esto debería tardar de 1 a 3 días.", "-790488576": "¿Olvidó la contraseña?", "-926547017": "Introduzca su contraseña de {{platform}} para añadir una cuenta de {{account}} {{platform}} {{jurisdiction_shortcode}}.", "-1190393389": "Introduzca su contraseña de {{platform}} para añadir una cuenta de {{account}} {{platform}}.", "-2057918502": "Sugerencia: Es posible que haya introducido su contraseña de Deriv, que es diferente de su contraseña de {{platform}}.", "-1769158315": "real", "-700260448": "demo", - "-1936102840": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} account. ", - "-1570793523": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} account.", + "-1936102840": "Enhorabuena, ha creado correctamente su cuenta {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}}. ", + "-1570793523": "Felicidades, ha creado con éxito su cuenta {{category}} <0>{{platform}} <1>{{type}}.", "-1928229820": "Restablecer la contraseña de inversor Deriv X", "-1087845020": "principal", "-1950683866": "inversor", @@ -3031,7 +3031,7 @@ "-374736923": "Nueva contraseña de inversor", "-1793894323": "Crear o restablecer la contraseña de inversor", "-1271218821": "Cuenta añadida", - "-1576792859": "Se requiere prueba de identidad y dirección", + "-1576792859": "Se requiere prueba de identidad y domicilio", "-1931257307": "Tendrá que presentar una prueba de identidad", "-2026018074": "Añada su cuenta Deriv MT5 <0>{{account_type_name}} en Deriv (SVG) LLC (número de empresa 273 LLC 2020).", "-162320753": "Añada su cuenta Deriv MT5 <0>{{account_type_name}} en Deriv (BVI) Ltd, regulada por la Comisión de Servicios Financieros de las Islas Vírgenes Británicas (núm. de licencia SIBA/L/18/114).", diff --git a/packages/translations/src/translations/fr.json b/packages/translations/src/translations/fr.json index 407512eb366a..86e9c443be4a 100644 --- a/packages/translations/src/translations/fr.json +++ b/packages/translations/src/translations/fr.json @@ -574,7 +574,7 @@ "745656178": "Utilisez ce bloc pour vendre votre contrat au prix du marché.", "745674059": "Renvoie le caractère spécifique d'une chaîne de texte donnée selon l'option sélectionnée. ", "746112978": "La mise à jour de votre ordinateur peut prendre quelques secondes", - "750886728": "Switch to your real account to submit your documents", + "750886728": "Passez à votre compte réel pour soumettre vos documents", "751692023": "Nous <0>ne garantissons pas un remboursement si vous faites un mauvais transfert.", "752024971": "Nombre maximum de chiffres atteint", "752633544": "Vous devez fournir une pièce d'identité et un justificatif de domicile dès que vous atteignez certains seuils", @@ -872,7 +872,7 @@ "1112582372": "Durée du l'intervalle", "1113119682": "Ce bloc vous donne la valeur de bougie sélectionnée dans une liste de bougies.", "1113292761": "Moins de 8 Mo", - "1113433728": "Resubmit your proof of identity and address", + "1113433728": "Renvoyez votre pièce d'identité et un justificatif de domicile", "1117863275": "Sécurité et de sûreté", "1118294625": "Vous avez choisi de vous exclure du trading sur notre site jusqu'à {{exclusion_end}}. Si vous ne parvenez pas à effectuer une transaction ou un dépôt après votre période d'auto-exclusion, veuillez nous contacter via le chat en direct.", "1119887091": "Vérification", @@ -1114,7 +1114,7 @@ "1396417530": "Indice Bear Market", "1397628594": "Solde insuffisant", "1399620764": "Nous sommes légalement tenus de vous demander vos informations financières.", - "1400341216": "We’ll review your documents and notify you of its status within 1 to 3 days.", + "1400341216": "Nous examinerons votre document et reviendrons vers vous dans un délai de 1 à 3 jours.", "1400637999": "(Tous les champs sont requis)", "1400732866": "Vue depuis la caméra", "1400962248": "Haut-Clôture", @@ -1264,7 +1264,7 @@ "1587046102": "Les documents de ce pays ne sont actuellement pas pris en charge — essayez un autre type de document", "1589640950": "La revente de ce contrat n’est pas offert.", "1589702653": "Justificatif de domicile", - "1591933071": "Resubmit document", + "1591933071": "Soumettre à nouveau le document", "1593010588": "Connectez-vous maintenant", "1594147169": "Veuillez revenir dans", "1594322503": "Vendre est disponible", @@ -1549,7 +1549,7 @@ "1918832194": "No experience", "1919030163": "Conseils pour prendre un bon selfie", "1919594496": "{{website_name}} n'est affilié à aucun agent de paiement. Les clients traitent avec les agents de paiement à leurs risques et périls. Les clients sont invités à vérifier les informations d'identification des agents de paiement et l'exactitude de toute information concernant les agents de paiement (sur {{website_name}} ou ailleurs) avant d'utiliser leurs services.", - "1919694313": "To start trading, transfer funds from your Deriv account into this account.", + "1919694313": "Pour commencer à trader, transférez des fonds de votre compte Deriv vers ce compte.", "1920217537": "Comparer", "1920468180": "Comment utiliser le bloc SMA", "1921634159": "Quelques détails personnels", @@ -1656,7 +1656,7 @@ "2037481040": "Choisissez un moyen d'approvisionner votre compte", "2037665157": "Développer tous les blocs", "2037906477": "obtenir la sous-liste de #", - "2042023623": "We’re reviewing your documents. This should take about 5 minutes.", + "2042023623": "Nous sommes en train d'examiner vos documents. Cela devrait prendre environ 5 minutes.", "2042050260": "- Prix d'achat: le prix d'achat (mise) du contrat", "2042115724": "Téléchargez une capture d'écran de votre compte et de la page de détails personnels avec votre nom, votre numéro de compte, votre numéro de téléphone et votre adresse e-mail.", "2042778835": "Cette politique en matière de plaintes, qui peut être modifiée de temps à autre, s'applique à votre compte enregistré auprès de {{legal_entity_name}}.", @@ -2750,7 +2750,7 @@ "-1125797291": "Mot de passe mis à jour.", "-157145612": "Veuillez vous connecter avec votre mot de passe mis à jour.", "-1728185398": "Renvoyer un justificatif de domicile", - "-612396514": "Please resubmit your proof of address.", + "-612396514": "Veuillez soumettre à nouveau votre justificatif de domicile.", "-1519764694": "Votre justificatif de domicile est vérifié.", "-1961967032": "Renvoyer une pièce d'identité", "-117048458": "Veuillez envoyer votre pièce d'identité.", @@ -2982,7 +2982,7 @@ "-712681566": "Échange Peer-to-peer", "-1267880283": "{{field_name}} est obligatoire", "-2084509650": "{{field_name}} n'est pas dans un format correct.", - "-222283483": "Account opening reason*", + "-222283483": "Motif d’ouverture de compte*", "-1779241732": "La première ligne d'adresse n'est pas dans un format approprié.", "-188222339": "Cela ne doit pas dépasser {{max_number}} caractères.", "-1673422138": "Région/Département n'est pas dans un format approprié.", @@ -2996,15 +2996,15 @@ "-1982499699": "Explorer {{platform_name_dbot}}", "-1567989247": "Vérifiez votre pièce d'identité et justificatif de domicile", "-184453418": "Entrer votre mot de passe {{platform}}", - "-393388362": "We’re reviewing your documents. This should take about 1 to 3 days.", + "-393388362": "Nous sommes en train d'examiner vos documents. Cela devrait prendre environ 1 à 3 jours.", "-790488576": "Mot de passe oublié?", "-926547017": "Entrez votre mot de passe {{platform}} pour ajouter un compte {{platform}} {{account}} {{jurisdiction_shortcode}} .", "-1190393389": "Entrez votre mot de passe {{platform}} pour ajouter un compte {{account}} {{platform}}.", "-2057918502": "Astuce: vous avez peut-être entré votre mot de passe Deriv, qui est différent de votre mot de passe {{platform}}.", "-1769158315": "réel", "-700260448": "démo", - "-1936102840": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} account. ", - "-1570793523": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} account.", + "-1936102840": "Félicitations, vous avez créé avec succès votre compte {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}}. ", + "-1570793523": "Félicitations, vous avez créé avec succès votre compte {{category}} <0>{{platform}} <1>{{type}}.", "-1928229820": "Réinitialiser le mot de passe investisseur de Deriv X", "-1087845020": "principal", "-1950683866": "investisseur", diff --git a/packages/translations/src/translations/id.json b/packages/translations/src/translations/id.json index 057b89879f9a..44f6c3199359 100644 --- a/packages/translations/src/translations/id.json +++ b/packages/translations/src/translations/id.json @@ -180,7 +180,7 @@ "248909149": "Mengirim tautan aman ke telepon Anda", "249908265": "Apakah Anda warga negara {{- residence}}?", "251134918": "Informasi Akun", - "251322536": "Deriv EZ accounts", + "251322536": "Akun Deriv EZ", "251445658": "Tema gelap", "251882697": "Terima kasih! Tanggapan Anda telah dicatat pada sistem kami.<0/><0/>Klik 'OK' untuk melanjutkan.", "254912581": "Blok ini hampir sama dengan EMA, hanya saja blok ini memberi Anda seluruh baris EMA berdasarkan daftar input dan periode yang diberikan.", @@ -196,7 +196,7 @@ "265644304": "Jenis kontrak", "267992618": "Platform kekurangan fitur utama atau fungsi.", "268940240": "Jumlah saldo Anda ({{format_balance}} {{currency}}) adalah kurang dari jumlah minimum penarikan yang dibenarkan ({{format_min_withdraw_amount}} {{currency}}). Isi ulang akun untuk melanjutkan penarikan.", - "269322978": "Deposit with your local currency via peer-to-peer exchange with fellow traders in your country.", + "269322978": "Deposit dengan mata uang lokal melalui pertukaran peer-to-peer dengan sesama trader di negara Anda.", "269607721": "Unggah", "270339490": "Jika Anda memilih \"Over\", Anda akan memperoleh hasil jika digit terakhir pada tik terakhir lebih besar dari analisa Anda.", "270610771": "Dalam contoh ini, harga open candle ditetapkan pada variabel \"candle_open_price\".", @@ -212,7 +212,7 @@ "278684544": "dapatkan sub-daftar dari # dari akhir", "282319001": "Periksa gambar Anda", "282564053": "Selanjutnya, kami memerlukan bukti alamat Anda.", - "283830551": "Your address doesn’t match your profile", + "283830551": "Alamat Anda tidak cocok dengan profil Anda", "283986166": "Pengecualian diri pada situs web hanya berlaku untuk akun {{brand_website_name}} Anda dan tidak termasuk perusahaan atau situs web lain.", "284527272": "antimode", "284772879": "Kontrak", @@ -574,7 +574,7 @@ "745656178": "Gunakan blok ini untuk menjual kontrak Anda pada harga pasar.", "745674059": "Menampilkan karakter spesifik dari string teks tertentu sesuai dengan opsi yang dipilih. ", "746112978": "Komputer Anda mungkin perlu beberapa detik untuk memperbarui", - "750886728": "Switch to your real account to submit your documents", + "750886728": "Beralih ke akun riil untuk mengirimkan dokumen Anda", "751692023": "Kami <0>tidak menjamin pengembalian dana jika Anda salah melakukan transfer.", "752024971": "Mencapai jumlah maksimum digit", "752633544": "Anda perlu mengirimkan bukti identitas dan alamat setelah mencapai batas tertentu", @@ -872,7 +872,7 @@ "1112582372": "Durasi interval", "1113119682": "Blok ini memberi Anda nilai candle yang dipilih dari daftar candle.", "1113292761": "Kurang dari 8MB", - "1113433728": "Resubmit your proof of identity and address", + "1113433728": "Kirim ulang bukti identitas dan alamat Anda", "1117863275": "Keamanan dan keselamatan", "1118294625": "Anda telah memilih untuk berhenti bertrading sementara waktu hingga {{exclusion_end}}. Jika Anda masih tidak dapat bertrading atau mendeposit setelah periode pengecualian diri berakhir, hubungi kami melalui obrolan langsung.", "1119887091": "Verifikasi", @@ -1114,7 +1114,7 @@ "1396417530": "Indeks Marker Bear", "1397628594": "Dana tidak mencukupi", "1399620764": "Kami secara hukum berkewajiban untuk meminta informasi keuangan Anda.", - "1400341216": "We’ll review your documents and notify you of its status within 1 to 3 days.", + "1400341216": "Kami akan meninjau dokumen dan mengabari Anda dalam tempo 1 hingga 3 hari.", "1400637999": "(Semua kolom wajib diisi)", "1400732866": "Lihat dari kamera", "1400962248": "High-Close", @@ -1260,11 +1260,11 @@ "1584109614": "Daftar string tik", "1584578483": "50+ aset: forex, saham, indeks saham, indeks sintetis, dan mata uang kripto.", "1584936297": "File XML berisi elemen yang tidak tersedia. Silakan periksa atau ubah file.", - "1585859194": "We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts, your Deriv fiat and {{platform_name_derivez}} accounts, and your Deriv fiat and {{platform_name_dxtrade}} accounts.", + "1585859194": "Kami akan mengenakan biaya transfer sebesar 1% untuk transfer dengan mata uang berbeda antar fiat Deriv dan akun {{platform_name_mt5}}, fiat Deriv dan akun {{platform_name_derivez}}, serta antar fiat Deriv dan akun {{platform_name_dxtrade}} Anda.", "1587046102": "Dokumen dari negara tersebut saat ini tidak dapat diterima — silakan coba jenis dokumen lain", "1589640950": "Penjualan kembali kontrak ini tidak tersedia.", "1589702653": "Bukti alamat", - "1591933071": "Resubmit document", + "1591933071": "Kirim ulang dokumen", "1593010588": "Login sekarang", "1594147169": "Silahkan kembali pada jam", "1594322503": "Penjualan tersedia", @@ -1346,7 +1346,7 @@ "1694517345": "Masukkan alamat email baru", "1695807119": "Tidak dapat memuat blok Google Drive", "1700233813": "Transfer dari {{selected_value}} tidak diperbolehkan, silakan pilih akun lain dari menu dropdown", - "1701447705": "Please update your address", + "1701447705": "Mohon perbarui alamat Anda", "1704656659": "Berapa banyak pengalaman yang Anda miliki dalam trading CFD?", "1708413635": "Untuk akun {{currency_name}} ({{currency}}) Anda", "1709859601": "Waktu Spot Akhir", @@ -1417,7 +1417,7 @@ "1778893716": "Klik di sini", "1779519903": "Harus nomor yang valid.", "1780770384": "Blok ini memberi Anda pecahan acak antara 0,0 hingga 1,0.", - "1781393492": "We do not charge a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts, your Deriv fiat and {{platform_name_derivez}} accounts and your Deriv fiat and {{platform_name_dxtrade}} accounts.", + "1781393492": "Kami tidak mengenakan biaya transfer untuk transfer dengan mata uang sama antar fiat Deriv dan akun {{platform_name_mt5}}, fiat Deriv dan akun {{platform_name_derivez}}, serta antar fiat Deriv dan akun {{platform_name_dxtrade}} Anda.", "1782308283": "Strategi cepat", "1782395995": "Analisa Digit Terakhir", "1782690282": "Menu blok", @@ -1428,7 +1428,7 @@ "1788966083": "01-07-1999", "1789497185": "Pastikan data paspor Anda dapat dibaca dengan jelas, tidak buram atau menyilaukan", "1790770969": "FX-mayor (standar/lot mikro), FX-minor, Komoditas, Mata uang kripto", - "1791017883": "Check out this <0>user guide.", + "1791017883": "Lihat <0>panduan pengguna ini.", "1791432284": "Cari negara", "1791971912": "Terbaru", "1793913365": "Untuk mendeposit dana, pindah ke akun {{currency_symbol}} Anda.", @@ -1549,7 +1549,7 @@ "1918832194": "Tidak ada pengalaman", "1919030163": "Tips untuk mengambil selfie yang bagus", "1919594496": "{{website_name}} tidak berafiliasi dengan agen pembayaran mana pun. Pelanggan yang berurusan dengan agen pembayaran atas risiko mereka sendiri. Pelanggan disarankan untuk memeriksa kredensi agen pembayaran dan keakuratan informasi apa pun mengenai agen pembayaran (pada {{website_name}} atau di tempat lain) sebelum menggunakan layanan mereka.", - "1919694313": "To start trading, transfer funds from your Deriv account into this account.", + "1919694313": "Untuk memulai trading, transfer dana dari akun Deriv Anda ke dalam akun ini.", "1920217537": "Bandingkan", "1920468180": "Cara menggunakan blok SMA", "1921634159": "Beberapa detail pribadi", @@ -1656,7 +1656,7 @@ "2037481040": "Pilih cara untuk mendanai akun Anda", "2037665157": "Perluas semua blok", "2037906477": "dapatkan sub-daftar dari #", - "2042023623": "We’re reviewing your documents. This should take about 5 minutes.", + "2042023623": "Kami sedang meninjau dokumen Anda. Hal ini akan memakan waktu sekitar 5 menit.", "2042050260": "- Harga beli: harga pembelian (modal) kontrak", "2042115724": "Unggah tangkapan layar akun dan halaman detail pribadi Anda dengan nama, nomor akun, nomor telepon, dan alamat email Anda.", "2042778835": "Kebijakan keluhan ini dapat berubah dari waktu ke waktu, berlaku untuk akun Anda yang terdaftar pada {{legal_entity_name}}.", @@ -2226,7 +2226,7 @@ "-38915613": "Perubahan yang belum disimpan", "-2137450250": "Anda memiliki perubahan yang belum disimpan. Apakah Anda yakin ingin membuang perubahan dan meninggalkan halaman ini?", "-1067082004": "Tinggalkan Pengaturan", - "-1982432743": "It appears that the address in your document doesn’t match the address\n in your Deriv profile. Please update your personal details now with the\n correct address.", + "-1982432743": "Sepertinya alamat pada dokumen Anda tidak sesuai dengan alamat pada profil Deriv Anda. Mohon perbarui detail pribadi Anda sekarang dengan alamat yang benar.", "-1451334536": "Lanjutkan trading", "-1525879032": "Dokumen bukti alamat Anda sudah tidak berlaku lagi. Silakan kirim kembali.", "-1425489838": "Verifikasi bukti alamat tidak diperlukan", @@ -2346,11 +2346,11 @@ "-2056016338": "Anda tidak akan dikenakan biaya transfer pada transaksi yang menggunakan mata uang sama antara akun fiat Deriv dan akun {{platform_name_mt5}}.", "-599632330": "Kami akan mengenakan biaya transfer sebesar 1% bagi akun dengan mata uang berbeda antara akun fiat Deriv ke akun {{platform_name_mt5}} dan juga antara akun fiat Deriv ke akun {{platform_name_dxtrade}}.", "-1196994774": "Kami akan mengenakan biaya transfer sebesar 2% atau {{minimum_fee}} {{currency}}, mana yang lebih tinggi, untuk transfer antara akun mata uang kripto Deriv Anda.", - "-1361372445": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts, your Deriv cryptocurrency and {{platform_name_derivez}} accounts, and your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.", + "-1361372445": "Kami akan mengenakan biaya transfer sebesar 2% atau {{minimum_fee}} {{currency}}, mana saja yang lebih tinggi, untuk transfer antar akun Deriv mata uang kripto dan Deriv MT5, akun Deriv mata uang kripto dan {{platform_name_derivez}}, serta akun Deriv mata uang kripto dan {{platform_name_dxtrade}} Anda.", "-993556039": "Kami akan mengenakan biaya transfer sebesar 2% atau {{minimum_fee}} {{currency}}, mana yang lebih tinggi, untuk transfer antara akun mata uang kripto ke Deriv MT5 dan antara akun mata uang kripto Deriv ke akun {{platform_name_dxtrade}}.", "-1382702462": "Kami akan mengenakan biaya transfer sebesar 2% atau {{minimum_fee}} {{currency}}, mana yang lebih tinggi, untuk transfer antara akun mata uang kripto ke akun Deriv MT5.", - "-1995859618": "You may transfer between your Deriv fiat, cryptocurrency, {{platform_name_mt5}}, {{platform_name_derivez}} and {{platform_name_dxtrade}} accounts.", - "-545616470": "Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts, up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts, up to {{ allowed_derivez }} transfers between your Deriv and {{platform_name_derivez}} accounts, and up to {{ allowed_dxtrade }} transfers between your Deriv and {{platform_name_dxtrade}} accounts.", + "-1995859618": "Anda dapat mentransfer antar akun fiat Deriv, mata uang kripto, {{platform_name_mt5}}, {{platform_name_derivez}} dan {{platform_name_dxtrade}}.", + "-545616470": "Setiap hari, Anda dapat melakukan transfer hingga {{ allowed_internal }} antar akun Deriv, hingga {{ allowed_mt5 }} antar Deriv dan {{platform_name_mt5}} akun, hingga {{ allowed_derivez }} antar Deriv dan {{platform_name_derivez}} akun, dan hingga {{ allowed_dxtrade }} antar Deriv dan {{platform_name_dxtrade}} akun.", "-1151983985": "Batas transfer dapat bervariasi tergantung pada nilai tukar.", "-1747571263": "Mohon diketahui bahwa beberapa transfer mungin tidak dapat dilakukan.", "-757062699": "Transfer mungkin tidak tersedia berhubung volatilitas tinggi atau masalah teknis dan ketika pasar pertukaran ditutup.", @@ -2750,7 +2750,7 @@ "-1125797291": "Kata sandi diperbarui.", "-157145612": "Silakan akses menggunakan kata sandi baru Anda.", "-1728185398": "Kirim ulang bukti alamat", - "-612396514": "Please resubmit your proof of address.", + "-612396514": "Mohon kirimkan kembali bukti alamat Anda.", "-1519764694": "Bukti alamat Anda telah terverifikasi.", "-1961967032": "Kirimkan kembali bukti identitas", "-117048458": "Mohon kirimkan bukti identitas Anda.", @@ -2778,10 +2778,10 @@ "-1834929362": "Unggah dokumen saya", "-1043638404": "<0>Verifikasi bukti kepemilikan <1>gagal", "-1766760306": "<0><1>Silakan unggah dokumen Anda <2>dengan rincian yang benar.<3>", - "-2142540205": "It appears that the address in your document doesn’t match the address in your Deriv profile. Please update your personal details now with the correct address.", - "-482715448": "Go to Personal details", - "-2072411961": "Your proof of address has been verified", - "-384887227": "Update the address in your profile.", + "-2142540205": "Sepertinya alamat pada dokumen Anda tidak sesuai dengan alamat pada profil Deriv Anda. Mohon perbarui detail pribadi Anda sekarang dengan alamat yang benar.", + "-482715448": "Kunjungi data pribadi", + "-2072411961": "Bukti alamat Anda telah diverifikasi", + "-384887227": "Perbarui alamat di profil Anda.", "-1998049070": "Jika Anda menyetujui penggunaan cookies kami, klik pada tombol Menerima. Untuk informasi lebih lanjut, <0>lihat halaman kebijakan kami.", "-402093392": "Daftar akun Deriv", "-277547429": "Akun Deriv dapat Anda gunakan untuk mendeposit dana ke (dan menarik dana dari) akun MT5 Anda.", @@ -2923,10 +2923,10 @@ "-429248139": "5. Sangkalan", "-818926350": "Komisi Keuangan menerima banding dalam tempo 45 hari setelah tanggal kejadian dan hanya setelah trader sudah mencoba untuk menyelesaikan masalah dengan perusahaan secara langsung.", "-358055541": "Asah trading Anda menggunakan alat baru yang keren", - "-29496115": "We've partnered with Acuity to give you a suite of intuitive trading tools for MT5 so you can keep track of market events and trends, free of charge!<0/><0/>", - "-648669944": "Download the Acuity suite and take advantage of the <1>Macroeconomic Calendar, Market Alerts, Research Terminal, and <1>Signal Centre Trade Ideas without leaving your MT5 terminal.<0/><0/>", - "-794294380": "This suite is only available for Windows, and is most recommended for financial assets.", - "-922510206": "Need help using Acuity?", + "-29496115": "Kami telah bermitra dengan Acuity untuk memberi Anda serangkaian alat trading intuitif untuk MT5 sehingga Anda dapat melacak peristiwa dan tren pasar, gratis!<0/><0/>", + "-648669944": "Unduh suite Acuity dan manfaatkan <1>Kalender Makroekonomi, Peringatan Pasar, Terminal Riset, dan <1>Ide Perdagangan Pusat Sinyal tanpa meninggalkan terminal MT5 Anda.<0/><0/>", + "-794294380": "Suite ini hanya tersedia untuk Windows, dan paling direkomendasikan untuk aset keuangan.", + "-922510206": "Perlu bantuan menggunakan Acuity?", "-815070480": "Penafian: Layanan trading dan informasi yang disediakan oleh Acuity tidak dapat ditafsirkan sebagai ajakan untuk berinvestasi dan/atau bertrading. Deriv tidak menawarkan saran investasi apapun. Prestasi sebelumnya bukanlah hal yang pasti untuk kinerja masa depan, dan strategi yang berhasil sebelumnya mungkin tidak menghasilkan hal yang sama di masa depan.", "-2111521813": "Unduh Acuity", "-175369516": "Selamat datang di Deriv X", @@ -2982,7 +2982,7 @@ "-712681566": "Pertukaran peer-to-peer", "-1267880283": "{{field_name}} diperlukan", "-2084509650": "{{field_name}} tidak diformat dengan benar.", - "-222283483": "Account opening reason*", + "-222283483": "Alasan pedaftaran akun*", "-1779241732": "Baris pertama alamat tidak dalam format yang benar.", "-188222339": "Tidak boleh melebihi {{max_number}} karakter.", "-1673422138": "Wilayah/Propinsi tidak dalam format yang benar.", @@ -2996,15 +2996,15 @@ "-1982499699": "Jelajahi {{platform_name_dbot}}", "-1567989247": "Kirimkan bukti identitas dan alamat Anda", "-184453418": "Masukkan kata sandi {{platform}} Anda", - "-393388362": "We’re reviewing your documents. This should take about 1 to 3 days.", + "-393388362": "Kami sedang meninjau dokumen Anda. Hal ini akan memerlukan waktu sekitar 1 hingga 3 hari.", "-790488576": "Lupa kata sandi?", "-926547017": "Masukkan kata sandi {{platform}} untuk menambahkan akun {{platform}} {{account}} {{jurisdiction_shortcode}}.", "-1190393389": "Masukkan kata sandi {{platform}} untuk menambahkan akun {{platform}} {{account}}.", "-2057918502": "Petunjuk: Anda mungkin menggunakan kata sandi Deriv, yang berbeda dengan kata sandi {{platform}}.", "-1769158315": "riil", "-700260448": "demo", - "-1936102840": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} account. ", - "-1570793523": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} account.", + "-1936102840": "Selamat, Anda telah berhasil mendaftar akun {{category}} <0>{{platform}} <1>{{type}}{{jurisdiction_selected_shortcode}} Anda. ", + "-1570793523": "Selamat, Anda telah berhasil mendaftar akun {{category}} <0>{{platform}} <1>{{type}} Anda.", "-1928229820": "Reset kata sandi investor Deriv X", "-1087845020": "utama", "-1950683866": "investor", diff --git a/packages/translations/src/translations/it.json b/packages/translations/src/translations/it.json index ce961c01da7d..7455c8552aff 100644 --- a/packages/translations/src/translations/it.json +++ b/packages/translations/src/translations/it.json @@ -574,7 +574,7 @@ "745656178": "Utilizza questo blocco per vendere il tuo contratto al prezzo di mercato.", "745674059": "Restituisce il carattere specifico di una data stringa di testo secondo l'opzione selezionata. ", "746112978": "L'aggiornamento del computer potrebbe richiedere alcuni secondi", - "750886728": "Switch to your real account to submit your documents", + "750886728": "Passa al tuo account reale per inviare i tuoi documenti", "751692023": "<0>Non garantiamo un rimborso in caso de trasferimento sbagliato.", "752024971": "Raggiunto il numero massimo di cifre", "752633544": "Dovrai presentare una prova di identità e indirizzo una volta raggiunte determinate soglie", @@ -872,7 +872,7 @@ "1112582372": "Durata intervallo", "1113119682": "Questo blocco fornisce il valore della candela selezionata da un elenco di candele.", "1113292761": "Meno di 8 MB", - "1113433728": "Resubmit your proof of identity and address", + "1113433728": "Invia di nuovo la tua prova di identità e di indirizzo", "1117863275": "Sicurezza e protezione", "1118294625": "Hai scelto di autoescluderti dal trading sul nostro sito fino a {{exclusion_end}}. Se non riesci a effettuare un trade o un deposito dopo il periodo di autoesclusione, contattaci tramite la chat live.", "1119887091": "Verifica", @@ -1114,7 +1114,7 @@ "1396417530": "Indice mercato ribassista", "1397628594": "Fondi insufficienti", "1399620764": "Siamo tenuti legalmente a richiedere le tue informazioni finanziarie.", - "1400341216": "We’ll review your documents and notify you of its status within 1 to 3 days.", + "1400341216": "Analizzeremo i documenti e ti aggiorneremo sul suo stato entro 1 o 3 giorni.", "1400637999": "(Tutti i campi sono obbligatori)", "1400732866": "Visualizza da fotocamera", "1400962248": "High-Close", @@ -1264,7 +1264,7 @@ "1587046102": "Al momento non si accettano documenti da questo Paese — prova con un altro tipo di documento", "1589640950": "La rivendita non è disponibile per questo contratto.", "1589702653": "Prova a verifica dell'indirizzo", - "1591933071": "Resubmit document", + "1591933071": "Invia nuovamente il documento", "1593010588": "Fai login ora", "1594147169": "Prova di nuovo", "1594322503": "La vendita è disponibile", @@ -1549,7 +1549,7 @@ "1918832194": "Nessuna esperienza", "1919030163": "Consigli per scattare un selfie adeguato", "1919594496": "{{website_name}} non è affiliato ad alcun agente di pagamento. I clienti svolgono operazioni con gli agenti di pagamento a proprio rischio. Si consiglia ai clienti di verificare le credenziali e l'accuratezza di tutte le informazioni degli agenti di pagamento (su {{website_name}} o altrove) prima di utilizzare i loro servizi.", - "1919694313": "To start trading, transfer funds from your Deriv account into this account.", + "1919694313": "Per iniziare a fare trading, trasferisci fondi dal tuo conto Deriv a questo conto.", "1920217537": "Confronta", "1920468180": "Come utilizzare il blocco SMA", "1921634159": "Alcuni dati personali", @@ -1656,7 +1656,7 @@ "2037481040": "Scegli come accreditare fondi sul tuo conto", "2037665157": "Espandi tutti i blocchi", "2037906477": "ottieni sotto elenco da #", - "2042023623": "We’re reviewing your documents. This should take about 5 minutes.", + "2042023623": "Stiamo esaminando i tuoi documenti. Questa operazione dovrebbe richiedere circa 5 minuti.", "2042050260": "- Prezzo d'acquisto: il prezzo d'acquisto (puntata) del contratto", "2042115724": "Carica uno screenshot del tuo conto e della pagina delle informazioni personali con il tuo nome, numero di conto, numero di telefono e indirizzo email.", "2042778835": "La presente politica sui reclami potrebbe cambiare nel tempo, e si applica ai conti registrati con {{legal_entity_name}}.", @@ -2750,7 +2750,7 @@ "-1125797291": "Password aggiornata.", "-157145612": "Effettua il login con la password aggiornata.", "-1728185398": "Invia nuovamente la prova dell'indirizzo", - "-612396514": "Please resubmit your proof of address.", + "-612396514": "Invia di nuovo il documento di verifica dell'indirizzo.", "-1519764694": "La verifica dell'indirizzo è andata a buon fine.", "-1961967032": "Invia nuovamente la prova di identità", "-117048458": "Invia un documento a verifica dell'identità.", @@ -2982,7 +2982,7 @@ "-712681566": "Scambio peer-to-peer", "-1267880283": "{{field_name}} è obbligatorio", "-2084509650": "{{field_name}} non è in un formato corretto.", - "-222283483": "Account opening reason*", + "-222283483": "Motivo dell'apertura del conto*", "-1779241732": "La seconda riga dell'indirizzo non è in un formato corretto.", "-188222339": "Non può superare {{max_number}} caratteri.", "-1673422138": "Lo Stato/Provincia non è in un formato corretto.", @@ -2996,15 +2996,15 @@ "-1982499699": "Esplora {{platform_name_dbot}}", "-1567989247": "Invia la tua prova di identità e di indirizzo", "-184453418": "Inserisci la password {{platform}}", - "-393388362": "We’re reviewing your documents. This should take about 1 to 3 days.", + "-393388362": "Stiamo esaminando i tuoi documenti. Questa operazione dovrebbe richiedere entro 1 o 3 giorni.", "-790488576": "Hai dimenticato la password?", "-926547017": "Inserisci la password {{platform}} per aggiungere un conto {{platform}}{{account}}{{jurisdiction_shortcode}}.", "-1190393389": "Inserisci la password {{platform}} per aggiungere un conto {{account}} {{platform}}.", "-2057918502": "Suggerimento: forse hai inserito la password di Deriv, che è diversa dalla password {{platform}}.", "-1769158315": "reale", "-700260448": "demo", - "-1936102840": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} account. ", - "-1570793523": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} account.", + "-1936102840": "Congratulazioni, hai creato con successo il conto {{category}} <0>{{platform}} <1>{{type}}{{jurisdiction_selected_shortcode}}. ", + "-1570793523": "Congratulazioni, hai creato con successo il conto {{category}} <0>{{platform}} <1>{{type}}.", "-1928229820": "Reimposta password investitore Deriv X", "-1087845020": "principale", "-1950683866": "investitore", @@ -3274,7 +3274,7 @@ "-2082345383": "Questi blocchi trasferisce informazioni al blocco delle condizioni di acquisto.", "-172574065": "Questo blocco trasferisce nuovamente il controllo al blocco delle condizioni di acquisto, permettendoti di acquistare un altro contratto.", "-403103225": "riavvia", - "-837044282": "Richiedi prezzo {{ contract_type }}", + "-837044282": "Prezzo di domanda {{ contract_type }}", "-1033917049": "Questo blocco restituisce il prezzo d'acquisto per la tipologia di trade selezionata.", "-1863737684": "2. Condizioni di acquisto", "-228133740": "Specifica la tipologia di contratto e le condizioni d'acquisto.", diff --git a/packages/translations/src/translations/ko.json b/packages/translations/src/translations/ko.json index af2685bf2b89..9f57ab1f46ca 100644 --- a/packages/translations/src/translations/ko.json +++ b/packages/translations/src/translations/ko.json @@ -402,27 +402,27 @@ "529056539": "옵션", "529597350": "오픈 포지션이 있으셨던 경우, 해당 포지션이 마감되었으며 환불해 드렸습니다.", "530953413": "인가된 앱", - "531114081": "3. 계약 종류", + "531114081": "3. 계약 유형", "531675669": "유로", - "535041346": "일일당 최대 총 지분", + "535041346": "일일 최대 총 지분", "538228086": "종가-저가", "541650045": "{{platform}} 비밀번호 관리", - "541700024": "먼저, 귀하의 운전 면허증 번호와 만료일을 입력하세요.", - "542038694": "{{label}} 에 대해서 오직 문자, 숫자, 띄어쓰기, 밑줄 및 하이픈만 허용됩니다", - "542305026": "귀하께서는 또한 반드시 신분증명을 제출해야 합니다.", - "543413346": "귀하께서는 이 자산에 대한 오픈 포지션이 없습니다. 다른 오픈 포지션들을 보시려면, '보고서로 가기'를 클릭해 주세요", + "541700024": "먼저, 귀하의 운전면허증 번호와 만료일을 입력하세요.", + "542038694": "{{label}} 에 대해서 오직 문자, 숫자, 띄어쓰기, 밑줄 및 하이픈만 허용됩니다.", + "542305026": "귀하께서는 반드시 신분증명 또한 제출하셔야 합니다,.", + "543413346": "귀하께서는 이 자산에 대한 오픈 포지션이 없습니다. 다른 오픈 포지션을 확인하시려면, 보고서로 이동하기를 클릭하세요", "543915570": "외환, 주식, 주식 지수, 암호화폐, 합성 지수", - "545476424": "총 인출액", - "546534357": "만약 귀하께서 “거래취소”를 선택하시면, 시장이 귀하에게 호의적이지 않은 동향을 보일 시에 귀하께서는 선택된 시간 프레임 내에 귀하의 거래를 취소하실 수 있을 것입니다. 우리는 이에 대해 약간의 비용을 청구할 것입니다. 하지만 우리는 이윤 또는 손실 없이 귀하의 지분금액 그대로를 되돌려드릴 것입니다. 만약 거래 취소가 만료되기 이전에 손실제한금액에 도달한다면, 귀하의 포지션은 자동적으로 취소될 것이며 우리는 이윤 또는 손실 없이 귀하의 지분 금액을 되돌려드릴 것입니다. “거래 취소”가 활성화되어 있는 동안은:", + "545476424": "총 인출 금액", + "546534357": "“거래 취소”를 선택하시면 시장이 귀하에게 유리하지 않게 움직일 경우, 선택된 시간 내에 거래를 취소하실 수 있습니다. 이에 대하여 소정의 수수료가 청구되지만 귀하의 지분 금액을 손익 없이 돌려 드립니다. 거래 취소가 만료되기 이전에 스톱아웃 금액에 도달되면 귀하의 포지션은 자동으로 취소되며 손익 없이 지분 금액을 돌려 드립니다. “거래 취소”가 활성화되어 있는 동안에는:", "549479175": "Deriv 승수", - "551569133": "트레이딩 제한에 대해 더 알아보세요", - "554410233": "이것은 가장 흔한 비밀번호 10위에 들어가는 비밀번호입니다", - "555351771": "거래 파라미터와 옵션을 정의하신 후, 특정한 조건이 충족되었을 때에 계약을 구매할 수 있도록 귀하의 봇을 지시하실 수 있습니다. 이를 실행하기 위해서는 귀하께서는 귀하의 봇이 결정할 수 있도록 조건 블록과 지시블록을 활용하실 수 있습니다.", - "556264438": "시간 구간", - "559224320": "트레이딩 봇들을 생성하기 위한 저희의 전형적인 “드래그 앤 드롭” 툴입니다, 이는 경험많은 이용자들을 위한 팝업 트레이딩 차트의 기능이 있습니다.", + "551569133": "거래 제한에 대하여 더 알아보세요", + "554410233": "이 비밀번호는 가장 흔한 비밀번호 상위 10위에 들어가는 흔한 비밀번호입니다", + "555351771": "거래 매개변수와 거래 옵션을 정의한 후, 특정 조건이 충족되었을 때에 귀하의 봇이 계약을 구매할 수 있도록 지시를 희망하실 수 있습니다. 이를 실행하기 위해서는 귀하께서는 봇이 결정할 수 있도록 조건부 블록과 지시 블록을 사용하실 수 있습니다.", + "556264438": "시간 간격", + "559224320": "트레이딩 봇을 생성하기 위한 저희의 전형적인 “드래그 앤 드롭” 툴로, 이는 경험 많은 사용자를 위한 팝업 트레이딩 차트의 기능이 있습니다.", "561982839": "귀하의 통화를 변경하세요", - "562599414": "이 블록은 선택된 거래 종류에 대한 매입 가격을 불러옵니다. 이 블록은 오직 \"매입 조건\" 루트 블록에서만 이용될 수 있습니다.", - "563034502": "우리는 영업일 기준 15일 안으로 귀하의 불만을 해결하도록 노력할 것입니다. 우리는 귀하에게 우리의 우리 위치에 대한 설명과 함께 결과를 공지해 드릴것이며 우리가 취하고자 하는 시정조치를 제시해드릴 것입니다.", + "562599414": "이 블록은 선택된 거래 유형의 구매 가격을 불러옵니다. 이 블록은 \"구매 조건\" 루트 블록에서만 사용될 수 있습니다.", + "563034502": "저희는 영업일 기준 15일 이내로 귀하의 불만 사항을 해결할 수 있도록 노력하겠습니다. 저희의 입장에 대한 설명과 함께 결과와 취하고자 하는 개선 조치사항을 제안해 드리겠습니다.", "563166122": "우리는 귀하의 불만이 접수되는것을 인정할 것이며, 면밀히 검토를 진행할 것입니다. 그리고 처리되는 사항에 대해 귀하에게 알려드릴 것입니다. 우리는 불만을 해결하기 위해 추가적인 정보 또는 해명을 요청할 수 있습니다.", "563652273": "블록으로 가기", "565410797": "아래의 이미지는 단순이동평균 배열 블록의 원리를 나타냅니다:", diff --git a/packages/translations/src/translations/pt.json b/packages/translations/src/translations/pt.json index 24858b7f5da4..aaa4e22f98c0 100644 --- a/packages/translations/src/translations/pt.json +++ b/packages/translations/src/translations/pt.json @@ -574,7 +574,7 @@ "745656178": "Use este bloco para vender seu contrato pelo preço de mercado.", "745674059": "Retorna o caractere específico de uma determinada sequência de texto de acordo com a opção selecionada. ", "746112978": "O seu computador pode demorar alguns segundos para atualizar", - "750886728": "Switch to your real account to submit your documents", + "750886728": "Mude para sua conta real para enviar seus documentos", "751692023": "Nós <0>não garantimos um reembolso se você fizer uma transferência errada.", "752024971": "Número máximo de dígitos atingido", "752633544": "Você precisará enviar comprovante de identidade e endereço quando atingir determinados limites", @@ -872,7 +872,7 @@ "1112582372": "Duração do intervalo", "1113119682": "Este bloco fornece o valor de vela selecionado em uma lista de velas.", "1113292761": "Menos de 8MB", - "1113433728": "Resubmit your proof of identity and address", + "1113433728": "Reenvie seu comprovante de identidade e de residência", "1117863275": "Segurança e proteção", "1118294625": "Você optou por se excluir da negociação em nosso site até {{exclusion_end}}. Se você não conseguir fazer uma transação ou depósito após o período de auto-exclusão, entre em contato conosco pelo chat.", "1119887091": "Autenticação", @@ -1114,7 +1114,7 @@ "1396417530": "Índice Bear Market", "1397628594": "Fundos insuficientes", "1399620764": "Somos obrigados por lei a solicitar suas informações financeiras.", - "1400341216": "We’ll review your documents and notify you of its status within 1 to 3 days.", + "1400341216": "Analisaremos os seus documentos e notificaremos você sobre o status dentro de 1 a 3 dias.", "1400637999": "(Todos os campos são necessários)", "1400732866": "Vista da câmera", "1400962248": "Fechar-Alto", @@ -1264,7 +1264,7 @@ "1587046102": "Os documentos desse país não são atualmente suportados - tente outro tipo de documento ", "1589640950": "A revenda deste contrato não é oferecida.", "1589702653": "Comprovante de endereço", - "1591933071": "Resubmit document", + "1591933071": "Reenviar documento", "1593010588": "Faça o login agora", "1594147169": "Por favor volte em", "1594322503": "Venda está disponível", @@ -1549,7 +1549,7 @@ "1918832194": "Nenhuma experiência", "1919030163": "Dicas para tirar uma boa selfie", "1919594496": "O {{website_name}} não é afiliado a nenhum Agente de Pagamento. Os clientes lidam com os agentes de pagamento por seu próprio risco. Os clientes são aconselhados a verificar as credenciais dos agentes de pagamento e a precisão de qualquer informação sobre os agentes de pagamento (no Deriv ou em outro local) antes de transferir fundos.", - "1919694313": "To start trading, transfer funds from your Deriv account into this account.", + "1919694313": "Para começar a negociar, transfira fundos da sua conta Deriv para esta conta.", "1920217537": "Comparar", "1920468180": "Como usar o Bloco SMA", "1921634159": "\nAlguns detalhes pessoais", @@ -1656,7 +1656,7 @@ "2037481040": "Escolha um método de pagamento para depositar", "2037665157": "Expandir Todos Blocos", "2037906477": "obter sub-lista de #", - "2042023623": "We’re reviewing your documents. This should take about 5 minutes.", + "2042023623": "Estamos analisando seus documentos. Isso deve levar cerca de 5 minutos.", "2042050260": "- Preço de compra: o preço de compra (Entrada) do contrato", "2042115724": "Carregue uma captura de tela da sua conta e da página de dados pessoais com o seu nome, o número da conta, o número de telefone e o e-mail.", "2042778835": "Esta política de reclamações, que pode mudar de tempos em tempos, se aplica às suas conta registradas com {{legal_entity_name}}.", @@ -2750,7 +2750,7 @@ "-1125797291": "Senha atualizada.", "-157145612": "Faça login com sua senha atualizada.", "-1728185398": "Reenviar comprovante de endereço", - "-612396514": "Please resubmit your proof of address.", + "-612396514": "Reenvie seu comprovante de residência.", "-1519764694": "Seu comprovante de endereço foi verificado.", "-1961967032": "Reenviar comprovante de identidade", "-117048458": "Por favor envie seu comprovante de identidade.", @@ -2982,7 +2982,7 @@ "-712681566": "Câmbio peer-to-peer", "-1267880283": "{{field_name}} é obrigatório", "-2084509650": "{{field_name}} não está no formato apropriado.", - "-222283483": "Account opening reason*", + "-222283483": "Motivo da abertura da conta*", "-1779241732": "A primeira linha de endereço não está no formato apropriado.", "-188222339": "Isso não deve exceder {{max_number}} caracteres.", "-1673422138": "Estado não está no formato adequado.", @@ -2996,15 +2996,15 @@ "-1982499699": "Explorar {{platform_name_dbot}}", "-1567989247": "Envie seu comprovante de identidade e endereço", "-184453418": "Digite sua senha da {{platform}}", - "-393388362": "We’re reviewing your documents. This should take about 1 to 3 days.", + "-393388362": "Estamos a analisando os seus documentos. Isso deve levar cerca de 1 a 3 dias.", "-790488576": "Esqueceu a senha?", "-926547017": "Digite sua senha da {{platform}} para adicionar uma conta da {{platform}}{{account}}.", "-1190393389": "Digite sua senha da {{platform}} para adicionar uma conta da {{platform}}{{account}}.", "-2057918502": "Dica: você pode ter inserido sua senha Deriv, que é diferente de sua senha da {{platform}}.", "-1769158315": "real", "-700260448": "demo", - "-1936102840": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} account. ", - "-1570793523": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} account.", + "-1936102840": "Parabéns, você criou a sua conta {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}}com sucesso. ", + "-1570793523": "Parabéns, você criou a sua conta {{category}} <0>{{platform}} <1>{{type}} com sucesso.", "-1928229820": "Redefinir a senha do investidor da Deriv X", "-1087845020": "principal", "-1950683866": "investidor", diff --git a/packages/translations/src/translations/ru.json b/packages/translations/src/translations/ru.json index ccc41002e19c..40782f060352 100644 --- a/packages/translations/src/translations/ru.json +++ b/packages/translations/src/translations/ru.json @@ -574,7 +574,7 @@ "745656178": "Используйте этот блок, чтобы продать контракт по рыночной цене.", "745674059": "Возвращает определенный символ из заданной строки текста в соответствии с выбранной опцией. ", "746112978": "Вашему компьютеру может потребоваться несколько секунд на обновление.", - "750886728": "Switch to your real account to submit your documents", + "750886728": "Переключитесь на реальный счет, чтобы отправить документы", "751692023": "Мы <0>не гарантируем возврат средств в случае ошибочного перевода.", "752024971": "Достигнуто максимальное количество цифр", "752633544": "Нужно будет предоставить подтверждение личности и адреса, как только вы достигнете определенных порогов", @@ -872,7 +872,7 @@ "1112582372": "Интервал длительности", "1113119682": "Этот блок отображает значение выбранной свечи из списка свечей.", "1113292761": "Менее 8MB", - "1113433728": "Resubmit your proof of identity and address", + "1113433728": "Отправьте подтверждение личности и адреса еще раз", "1117863275": "Безопасность", "1118294625": "Вы решили исключить себя из торговли на нашем сайте до {{exclusion_end}}. Если вы не можете купить контракт или пополнить счет после периода самоисключения, свяжитесь с нами через чат.", "1119887091": "Подтверждение", @@ -1114,7 +1114,7 @@ "1396417530": "Индекс медвежьего рынка", "1397628594": "Недостаточно средств", "1399620764": "Мы юридически обязаны запросить вашу финансовую информацию.", - "1400341216": "We’ll review your documents and notify you of its status within 1 to 3 days.", + "1400341216": "Мы проверим ваши документы и сообщим об их статусе в течение 1-3 дней.", "1400637999": "(Все поля обязательны для заполнения)", "1400732866": "Вид с камеры", "1400962248": "Макс.-Закрытие", @@ -1260,11 +1260,11 @@ "1584109614": "Строка тиков Список", "1584578483": "50+ активов: forex, акции, криптовалюты, фондовые и синтетические индексы.", "1584936297": "XML-файл содержит неподдерживаемые элементы. Пожалуйста, перепроверьте или отредактируйте файл.", - "1585859194": "We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts, your Deriv fiat and {{platform_name_derivez}} accounts, and your Deriv fiat and {{platform_name_dxtrade}} accounts.", + "1585859194": "За переводы в разных валютах между вашими фиатными счетами Deriv и счетами {{platform_name_mt5}}, фиатными счетами Deriv и счетами {{platform_name_derivez}}, фиатными счетами Deriv и счетами {{platform_name_dxtrade}} взимается комиссия в размере 1%.", "1587046102": "Документы из этой страны в настоящее время не поддерживаются - попробуйте другой тип документа", "1589640950": "Перепродажа этого контракта невозможна.", "1589702653": "Подтверждение адреса", - "1591933071": "Resubmit document", + "1591933071": "Отправить повторно", "1593010588": "Войти", "1594147169": "Пожалуйста, зайдите через", "1594322503": "Продажа доступна", @@ -1417,7 +1417,7 @@ "1778893716": "Нажмите здесь", "1779519903": "Введите правильное число.", "1780770384": "Этот блок дает вам случайную долю от 0.0 до 1.0.", - "1781393492": "We do not charge a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts, your Deriv fiat and {{platform_name_derivez}} accounts and your Deriv fiat and {{platform_name_dxtrade}} accounts.", + "1781393492": "Мы не взимаем комиссию за переводы в одной и той же валюте между вашими счетами Deriv fiat и {{platform_name_mt5}}, счетами Deriv fiat и {{platform_name_derivez}} и счетами Deriv fiat и {{platform_name_dxtrade}}.", "1782308283": "Быстрая стратегия", "1782395995": "Прогноз последней десятичной", "1782690282": "Меню блоков", @@ -1428,7 +1428,7 @@ "1788966083": "01-07-1999", "1789497185": "Убедитесь, что паспортные данные четко видны, читаемы, без размытия или бликов.", "1790770969": "Основные валютные пары (стандартные/микро лоты), минорные валютные пары, сырьевые товары, криптовалюты", - "1791017883": "Check out this <0>user guide.", + "1791017883": "Ознакомьтесь с этим <0>руководством пользователя.", "1791432284": "Искать страну", "1791971912": "Недавние", "1793913365": "Чтобы внести средства, перейдите на свой счет {{currency_symbol}}.", @@ -1549,7 +1549,7 @@ "1918832194": "Нет опыта", "1919030163": "Советы, как сделать хорошее селфи", "1919594496": "{{website_name}} не связан ни с одним платежным агентом. Клиенты имеют дело с платежными агентами на свой страх и риск. Клиентам рекомендуется проверять учетные данные платежных агентов и достоверность любой информации о платежных агентах (на {{website_name}} или в другом месте), прежде чем пользоваться их услугами.", - "1919694313": "To start trading, transfer funds from your Deriv account into this account.", + "1919694313": "Чтобы начать торговать, переведите средства со своего счета Deriv на этот счет.", "1920217537": "Сравнить", "1920468180": "Как пользоваться блоком SMA", "1921634159": "Некоторые личные данные", @@ -1656,7 +1656,7 @@ "2037481040": "Выберите способ пополнить счет", "2037665157": "Развернуть все блоки", "2037906477": "получить подсписок из #", - "2042023623": "We’re reviewing your documents. This should take about 5 minutes.", + "2042023623": "Мы проверяем ваши документы. Это займет около 5 минут.", "2042050260": "- Цена покупки: цена покупки (ставка) контракта", "2042115724": "Загрузите скриншот своего счета и страницы личных данных со своим именем, номером счета, номером телефона и адресом электронной почты.", "2042778835": "Данная политика рассмотрения жалоб, которая может время от времени меняться, применяется к вашему счету, открытому в {{legal_entity_name}}.", @@ -2226,7 +2226,7 @@ "-38915613": "Несохраненные изменения", "-2137450250": "У вас есть несохраненные изменения. Вы уверены, что хотите отменить изменения и покинуть эту страницу?", "-1067082004": "Выйти из Настроек", - "-1982432743": "It appears that the address in your document doesn’t match the address\n in your Deriv profile. Please update your personal details now with the\n correct address.", + "-1982432743": "Похоже, что адрес в вашем документе не совпадает с адресом\n в вашем профиле Deriv. Пожалуйста, обновите свои личные данные сейчас, указав\n правильным адресом.", "-1451334536": "Продолжить торговлю", "-1525879032": "Истек срок действия документа, подтверждающего адрес. Пожалуйста, отправьте новый документ.", "-1425489838": "Верификация подтверждения адреса не требуется", @@ -2346,11 +2346,11 @@ "-2056016338": "Мы не взимаем комиссию за переводы в одной и той же валюте между вашим фиатным счетом Deriv и счетом {{platform_name_mt5}}.", "-599632330": "Мы взимаем комиссию в размере 1% за переводы в разных валютах между вашим фиатным счетом Deriv и счетом {{platform_name_mt5}}, и вашим фиатным счетом Deriv и счетом {{platform_name_dxtrade}}.", "-1196994774": "За переводы между вашими криптовалютными счетами Deriv мы взимаем комиссию в размере 2% или {{minimum_fee}} {{currency}}, в зависимости от того, какая сумма больше.", - "-1361372445": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts, your Deriv cryptocurrency and {{platform_name_derivez}} accounts, and your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.", + "-1361372445": "Мы взимаем комиссию за перевод в размере 2% или {{minimum_fee}} {{currency}}, в зависимости от того, что больше, за переводы между вашими криптовалютными счетами Deriv и Deriv MT5, вашими криптовалютными счетами Deriv и {{platform_name_derivez}}, а также вашими криптовалютными счетами Deriv и {{platform_name_dxtrade}}.", "-993556039": "За переводы между вашими криптовалютными счетами Deriv и счетом Deriv MT5, или криптовалютными счетами Deriv и счетом {{platform_name_dxtrade}} мы взимаем комиссию в размере 2% или {{minimum_fee}} {{currency}}, в зависимости от того, какая сумма больше.", "-1382702462": "За переводы между вашими криптовалютными счетами Deriv и счетом Deriv MT5 мы взимаем комиссию в размере 2% или {{minimum_fee}} {{currency}}, в зависимости от того, какая сумма больше.", "-1995859618": "Вы можете переводить средства между своим фиатным и криптовалютными счетами Deriv, счетом {{platform_name_mt5}}, {{platform_name_derivez}} и {{platform_name_dxtrade}}.", - "-545616470": "Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts, up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts, up to {{ allowed_derivez }} transfers between your Deriv and {{platform_name_derivez}} accounts, and up to {{ allowed_dxtrade }} transfers between your Deriv and {{platform_name_dxtrade}} accounts.", + "-545616470": "Каждый день вы можете осуществлять до {{ allowed_internal }} переводов между вашими счетами Deriv, до {{ allowed_mt5 }} переводов между вашими счетами Deriv и {{platform_name_mt5}}, до {{ allowed_derivez }} переводов между вашими счетами Deriv и {{platform_name_derivez}}, и до {{ allowed_dxtrade }} переводов между вашими счетами Deriv и {{platform_name_dxtrade}}.", "-1151983985": "Лимиты на перевод могут варьироваться, в зависимости от текущих валютных курсов.", "-1747571263": "Имейте в виду, что некоторые переводы могут быть невозможны.", "-757062699": "Переводы могут быть недоступны во время высокой волатильности, из-за технических проблем или когда рынки закрыты.", @@ -2750,7 +2750,7 @@ "-1125797291": "Пароль обновлен.", "-157145612": "Пожалуйста, войдите на счет, используя обновленный пароль.", "-1728185398": "Подтвердить адрес еще раз", - "-612396514": "Please resubmit your proof of address.", + "-612396514": "Пожалуйста, отправьте подтверждение адреса еще раз.", "-1519764694": "Ваше подтверждение адреса принято.", "-1961967032": "Подтвердить личность еще раз", "-117048458": "Пожалуйста, предоставьте удостоверение личности.", @@ -2778,7 +2778,7 @@ "-1834929362": "Загрузить документ", "-1043638404": "<1>Не удалось <0>подтвердить право собственности", "-1766760306": "<0><1>Загрузите документ <2>с правильными данными. <3>", - "-2142540205": "It appears that the address in your document doesn’t match the address in your Deriv profile. Please update your personal details now with the correct address.", + "-2142540205": "Похоже, что адрес в вашем документе не совпадает с адресом в вашем профиле Deriv. Пожалуйста, обновите свои личные данные, указав правильный адрес.", "-482715448": "Перейдите в Личные данные", "-2072411961": "Ваше подтверждение адреса принято", "-384887227": "Обновите адрес в своем профиле.", @@ -2923,10 +2923,10 @@ "-429248139": "5. Оговорка", "-818926350": "Финансовая комиссия принимает жалобы в течение 45 дней с даты инцидента и только после того, как трейдер попытается решить проблему напрямую с компанией.", "-358055541": "Усильте свои сделки с помощью новых крутых инструментов", - "-29496115": "We've partnered with Acuity to give you a suite of intuitive trading tools for MT5 so you can keep track of market events and trends, free of charge!<0/><0/>", - "-648669944": "Download the Acuity suite and take advantage of the <1>Macroeconomic Calendar, Market Alerts, Research Terminal, and <1>Signal Centre Trade Ideas without leaving your MT5 terminal.<0/><0/>", - "-794294380": "This suite is only available for Windows, and is most recommended for financial assets.", - "-922510206": "Need help using Acuity?", + "-29496115": "Мы сотрудничаем с компанией Acuity, чтобы предоставить вам набор интуитивно понятных торговых инструментов для MT5, чтобы вы могли отслеживать события и тенденции рынка бесплатно!<0/><0/>", + "-648669944": "Скачайте пакет Acuity и воспользуйтесь преимуществами <1>Макроэкономического календаря, рыночных оповещений, исследовательского терминала, и <1>Сигнального центра торговых идей, не покидая своего терминала MT5.<0/><0/>", + "-794294380": "Этот пакет доступен только для Windows и наиболее рекомендуется для финансовых активов.", + "-922510206": "Нужна помощь в использовании Acuity?", "-815070480": "Отказ от ответственности: торговые услуги и информация, предоставляемые Acuity, не должны восприниматься как предложение инвестировать и/или торговать. Deriv не предоставляет инвестиционных консультаций. Прошлое не является ориентиром для будущих результатов, а стратегии, успешные в прошлом, могут не сработать в будущем.", "-2111521813": "Скачать Acuity", "-175369516": "Добро пожаловать на Deriv X", @@ -2982,7 +2982,7 @@ "-712681566": "Одноранговый (P2P) обмен", "-1267880283": "{{field_name}} является обязательным", "-2084509650": "Поле {{field_name}} в неправильном формате.", - "-222283483": "Account opening reason*", + "-222283483": "Причина открытия счета*", "-1779241732": "Первая строка адреса в неправильном формате.", "-188222339": "Не должно превышать {{max_number}} символов.", "-1673422138": "Штат/Регион в неправильном формате.", @@ -2996,15 +2996,15 @@ "-1982499699": "Открыть {{platform_name_dbot}}", "-1567989247": "Отправьте подтверждение личности и адреса", "-184453418": "Введите пароль {{platform}}", - "-393388362": "We’re reviewing your documents. This should take about 1 to 3 days.", + "-393388362": "Мы проверяем ваши документы. Это займет 1-3 дня.", "-790488576": "Забыли пароль?", "-926547017": "Введите пароль {{platform}}, чтобы добавить {{account}} счет {{platform}} {{jurisdiction_shortcode}}.", "-1190393389": "Введите пароль {{platform}}, чтобы добавить {{account}} счет {{platform}}.", "-2057918502": "Подсказка: возможно, вы ввели свой пароль Deriv, который отличается от вашего пароля {{platform}}.", "-1769158315": "реальный", "-700260448": "демо", - "-1936102840": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} account. ", - "-1570793523": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} account.", + "-1936102840": "Поздравляем, ваш счет открыт: {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}}. ", + "-1570793523": "Поздравляем, ваш счет открыт: {{category}} <0>{{platform}} <1>{{type}}.", "-1928229820": "Сбросить инвесторский пароль Deriv X", "-1087845020": "основной", "-1950683866": "инвестор", diff --git a/packages/translations/src/translations/th.json b/packages/translations/src/translations/th.json index 69fefb7241f8..cf7156aaf960 100644 --- a/packages/translations/src/translations/th.json +++ b/packages/translations/src/translations/th.json @@ -574,7 +574,7 @@ "745656178": "ใช้บล็อกนี้เพื่อขายสัญญาของคุณในราคาตลาด", "745674059": "ส่งคืนอักขระเฉพาะจากสตริงข้อความที่กำหนด ตามตัวเลือกที่ได้เลือกไว้ ", "746112978": "คอมพิวเตอร์ของคุณอาจใช้เวลาไม่กี่วินาทีเพื่ออัปเดต", - "750886728": "Switch to your real account to submit your documents", + "750886728": "สลับไปยังบัญชีจริงของคุณเพื่อส่งเอกสารต่างๆ ของคุณ", "751692023": "เรา <0>ไม่ รับประกันการคืนเงิน หากคุณโอนเงินผิด", "752024971": "ถึงจํานวนตัวเลขสูงสุดแล้ว", "752633544": "คุณจะต้องส่งหลักฐานยืนยันตัวตนและที่อยู่เมื่อถึงเกณฑ์ที่กำหนด", @@ -872,7 +872,7 @@ "1112582372": "ช่วงเวลา", "1113119682": "บล็อกนี้ให้คุณเลือกค่าแท่งเทียนจากลิสต์รายการของแท่งเทียน", "1113292761": "น้อยกว่า 8MB", - "1113433728": "Resubmit your proof of identity and address", + "1113433728": "ส่งหลักฐานยืนยันตัวตนและที่อยู่ของคุณอีกครั้ง", "1117863275": "ความมั่นคงปลอดภัย", "1118294625": "คุณได้เลือกที่จะกันตัวเองออกจากการซื้อขายบนเว็บไซต์ของเราจนถึง {{exclusion_end}} หากคุณไม่สามารถทำการซื้อขายหรือฝากเงินได้หลังจากช่วงระยะเวลาการกันตัวเอง โปรดติดต่อเราผ่านแชทสด", "1119887091": "การตรวจสอบยืนยัน", @@ -1114,7 +1114,7 @@ "1396417530": "ดัชนีตลาดหมี", "1397628594": "เงินทุนไม่เพียงพอ", "1399620764": "เรามีหน้าที่ตามกฎหมายที่จะขอข้อมูลทางการเงินของคุณ", - "1400341216": "We’ll review your documents and notify you of its status within 1 to 3 days.", + "1400341216": "เราจะตรวจสอบเอกสารของคุณและแจ้งให้คุณทราบถึงสถานะเอกสารภายใน 1 ถึง 3 วัน", "1400637999": "(ต้องกรอกข้อมูลทุกช่อง)", "1400732866": "ดูจากกล้อง", "1400962248": "สูง-ปิด", @@ -1264,7 +1264,7 @@ "1587046102": "เอกสารจากประเทศนั้นไม่ได้รับการสนับสนุนในปัจจุบัน — กรุณาลองเอกสารชนิดอื่น", "1589640950": "ไม่มีการเสนอขายใหม่ของสัญญานี้", "1589702653": "หลักฐานแสดงที่อยู่", - "1591933071": "Resubmit document", + "1591933071": "ส่งเอกสารอีกครั้ง", "1593010588": "Login now", "1594147169": "กรุณากลับมาใหม่", "1594322503": "สามารถขายได้", @@ -1428,7 +1428,7 @@ "1788966083": "01-07-1999", "1789497185": "โปรดดูให้แน่ใจว่า รายละเอียดหนังสือเดินทางของคุณสามารถมองเห็นได้ชัดเจน", "1790770969": "สกุลเงินหลัก (ล็อตมาตรฐาน/ไมโครล็อต) สกุลเงินรอง หุ้นโภคภัณฑ์ คริปโตเคอเรนซี่", - "1791017883": "ดู <0>คู่มือผู้ใช้น นี้", + "1791017883": "ดู <0>คู่มือผู้ใช้ นี้", "1791432284": "ค้นหาประเทศ", "1791971912": "ล่าสุด", "1793913365": "เพื่อทำการฝากเงิน โปรดสลับไปยังบัญชี {{currency_symbol}} ของคุณ", @@ -1549,7 +1549,7 @@ "1918832194": "ไม่มีประสบการณ์", "1919030163": "เคล็ดลับในการถ่ายภาพเซลฟี่ที่ดี", "1919594496": "{{website_name}} ไม่มีส่วนเกี่ยวข้องกับตัวแทนชำระเงินใดๆ ดังนั้นลูกค้าจะต้องรับผิดชอบความเสี่ยงที่อาจเกิดขึ้นด้วยตัวเองในการใช้บริการของตัวแทนชำระเงิน เราจึงขอแนะนำให้ลูกค้าตรวจสอบข้อมูลหลักฐานอ้างอิงของตัวแทนชำระเงินและตรวจความถูกต้องของข้อมูลใดๆ เกี่ยวกับตัวแทนชำระเงิน (ใน {{website_name}} หรือที่อื่นๆ) ก่อนที่จะใช้บริการ", - "1919694313": "To start trading, transfer funds from your Deriv account into this account.", + "1919694313": "ในการเริ่มเทรด ต้องโอนเงินจากบัญชี Deriv ของคุณไปยังบัญชีนี้", "1920217537": "เปรียบเทียบ", "1920468180": "วิธีใช้บล็อก SMA", "1921634159": "รายละเอียดส่วนบุคคลเล็กน้อย", @@ -1656,7 +1656,7 @@ "2037481040": "เลือกวิธีฝากเงินเข้าบัญชีของคุณ", "2037665157": "ขยายบล็อคทั้งหมด", "2037906477": "รับรายการย่อยจาก #", - "2042023623": "We’re reviewing your documents. This should take about 5 minutes.", + "2042023623": "เรากำลังทำการตรวจสอบเอกสารของคุณ การดำเนินการตรวจสอบนี้จะใช้เวลาประมาณ 5 นาที", "2042050260": "- ราคาซื้อ: ราคาซื้อ (เงินทุนทรัพย์) ของสัญญา", "2042115724": "อัปโหลดภาพแคปหน้าจอของบัญชีและหน้าแสดงรายละเอียดข้อมูลส่วนตัวของคุณ พร้อมชื่อ หมายเลขบัญชี หมายเลขโทรศัพท์ และที่อยู่อีเมล์ของคุณ", "2042778835": "นโยบายการร้องเรียนนี้ ซึ่งอาจมีการเปลี่ยนแปลงเป็นครั้งคราว จะมีผลบังคับใช้กับบัญชีของคุณที่ลงทะเบียนกับ {{legal_entity_name}}", @@ -2346,7 +2346,7 @@ "-2056016338": "คุณจะไม่ถูกเรียกเก็บค่าธรรมเนียมการโอนสำหรับการโอนเงินในสกุลเงินเดียวกันระหว่างบัญชีเงินตรารัฐบาล Deriv และบัญชี {{platform_name_mt5}} ของคุณ", "-599632330": "เราจะเรียกเก็บค่าธรรมเนียมการโอน 1% สำหรับการโอนเงินในสกุลเงินต่างๆ ระหว่างบัญชีเงินเฟียต Deriv และบัญชี {{platform_name_mt5}} และระหว่างบัญชีเงินเฟียต Deriv และบัญชี {{platform_name_dxtrade}}", "-1196994774": "เราจะเรียกเก็บค่าธรรมเนียมการโอน 2% หรือ {{minimum_fee}} {{currency}} แล้วแต่จำนวนใดจะสูงกว่า สำหรับการโอนเงินระหว่างบัญชีสกุลเงินดิจิทัล Deriv ของคุณ", - "-1361372445": "เราจะเรียกเก็บค่าธรรมเนียมการโอนเงิน 2% หรือ {{minimum_fee}} {{currency}} แล้วแต่จำนวนใดที่สูงกว่า สำหรับการโอนเงินระหว่างบัญชี Deriv MT5 กับคริปโตเคอร์เรนซี Deriv ของคุณ บัญชี {{platform_name_derivez}} กับบัญชีคริปโตเคอร์เรนซี Deriv ของคุณ และบัญชี {{platform_name_dxtrade}} กับบัญชีริปโตเคอร์เรนซี Deriv ของคุณ", + "-1361372445": "เราจะเรียกเก็บค่าธรรมเนียมการโอนเงิน 2% หรือ {{minimum_fee}} {{currency}} แล้วแต่จำนวนใดที่สูงกว่า สำหรับการโอนเงินระหว่างบัญชีคริปโตเคอร์เรนซี Deriv ของคุณกับบัญชี Deriv MT5 และสำหรับบัญชีคริปโตเคอร์เรนซี Deriv ของคุณกับบัญชี {{platform_name_derivez}} และสำหรับบัญชีคริปโตเคอร์เรนซี Deriv ของคุณกับบัญชี {{platform_name_dxtrade}}", "-993556039": "เราจะเรียกเก็บค่าธรรมเนียมการโอน 2% หรือ {{minimum_fee}} {{currency}} โดยแล้วแต่ว่าจำนวนใดจะสูงกว่ากัน สำหรับการโอนเงินระหว่างบัญชีสกุลเงินดิจิทัล Deriv และบัญชี DMT5 ของคุณและระหว่างบัญชีสกุลเงินดิจิทัล Deriv และบัญชี {{platform_name_dxtrade}} ของคุณ", "-1382702462": "เราจะเรียกเก็บค่าธรรมเนียมการโอน 2% หรือ {{minimum_fee}} {{currency}} โดยแล้วแต่ว่าจำนวนใดจะสูงกว่ากัน สำหรับการโอนเงินระหว่างบัญชีสกุลเงินดิจิทัล Deriv และบัญชี DMT5 ของคุณ", "-1995859618": "คุณสามารถโอนระหว่างบัญชีเงินตรารัฐบาล Deriv บัญชีคริปโตเคอเรนซี่ บัญชี {{platform_name_mt5}} บัญชี {{platform_name_derivez}} และบัญชี {{platform_name_dxtrade}} ของคุณได้", @@ -2750,7 +2750,7 @@ "-1125797291": "อัพเดตรหัสผ่านแล้ว", "-157145612": "โปรดเข้าสู่ระบบด้วยรหัสผ่านล่าสุด", "-1728185398": "ส่งหลักฐานแสดงที่อยู่อีกครั้ง", - "-612396514": "Please resubmit your proof of address.", + "-612396514": "โปรดส่งหลักฐานยืนยันที่อยู่ของคุณอีกครั้ง", "-1519764694": "หลักฐานแสดงที่อยู่ของคุณได้รับการยืนยันแล้ว", "-1961967032": "ส่งหลักฐานการยืนยันตัวตนอีกครั้ง", "-117048458": "โปรดส่งหลักฐานการยืนยันตัวตนของคุณ", @@ -2780,7 +2780,7 @@ "-1766760306": "<0><1>กรุณาอัปโหลดเอกสารของคุณ <2>พร้อมรายละเอียดที่ถูกต้อง<3>", "-2142540205": "ดูเหมือนว่าที่อยู่ในเอกสารของคุณไม่ตรงกับที่อยู่ในโปรไฟล์ Deriv ของคุณ โปรดอัปเดตรายละเอียดส่วนตัวของคุณตอนนี้กับที่อยู่ที่ถูกต้อง", "-482715448": "ไปที่รายละเอียดส่วนบุคคล", - "-2072411961": "หลักฐานยืนยันที่อยู่ของคุณได้รับการยืนยันแล้ว", + "-2072411961": "หลักฐานแสดงที่อยู่ของคุณได้รับการยืนยันแล้ว", "-384887227": "อัปเดตที่อยู่ในโปรไฟล์ของคุณ", "-1998049070": "หากคุณยอมรับการใช้งานคุกกี้ของเราให้คลิกที่ยอมรับ สำหรับข้อมูลเพิ่มเติม <0>ดูนโยบายของเรา", "-402093392": "เพิ่มบัญชี Deriv", @@ -2924,9 +2924,9 @@ "-818926350": "คณะกรรมการทางการเงินยอมรับการอุทธรณ์ภายในเวลา 45 วันหลังจากวันที่เกิดเหตุการณ์ และต่อเมื่อภายหลังจากที่เทรดเดอร์ได้พยายามแก้ไขปัญหากับบริษัทโดยตรงแล้วเท่านั้น", "-358055541": "เพิ่มประสิทธิภาพการเทรดของคุณด้วยเครื่องมือใหม่สุดเจ๋ง", "-29496115": "เราได้ร่วมมือกับบริษัท Acuity เพื่อให้คุณได้รับชุดเครื่องมือการเทรดที่ใช้งานง่ายสำหรับ MT5 เพื่อให้คุณสามารถติดตามเหตุการณ์และเทรนด์ของตลาดได้โดยไม่เสียค่าใช้จ่าย!<0/><0/>", - "-648669944": "ดาวน์โหลดชุดเครื่องมือเทรด Acuity และใช้ประโยชน์จาก <1>ปฏิทินเศรษฐกิจมหภาค การแจ้งเตือนการตลาด เทอร์มินัลวิจัย และ <1>ไอเดียการเทรดต่างๆของศูนย์สัญญาณ โดยไม่ต้องออกจากเทอร์มินัล MT5 ของคุณ<0/><0/>", - "-794294380": "ชุดเครื่องมือเทรดนี้สามารถใช้ได้กับ Windows เท่านั้น และแนะนำใช้สำหรับสินทรัพย์ทางการเงินมากที่สุด", - "-922510206": "ต้องการความช่วยเหลือในการใช้ชุดเครื่องมือเทรด Acuity ไหม", + "-648669944": "ดาวน์โหลดชุดเครื่องมือเทรด Acuity และใช้ประโยชน์จาก <1>ปฏิทินเศรษฐกิจมหภาค ข่าวแจ้งเตือนความผิดปกติในตลาด เทอร์มินัลวิจัย และ <1>ไอเดียการเทรดต่างๆ ของศูนย์สัญญาณ โดยไม่ต้องออกจากเทอร์มินัล MT5 ของคุณ<0/><0/>", + "-794294380": "ชุดเครื่องมือเทรดนี้สามารถใช้ได้กับ Windows เท่านั้น และได้รับการแนะนำหนุนให้ใช้สำหรับสินทรัพย์ทางการเงินมากที่สุด", + "-922510206": "ต้องการความช่วยเหลือในการใช้ชุดเครื่องมือเทรด Acuity หรือไม่", "-815070480": "ข้อความปฏิเสธความรับผิดชอบ: บริการและข้อมูลการซื้อขายที่นำเสนอในชุดเครื่องมือเทรด Acuity นั้นไม่ควรจะถูกตีความว่าเป็นการชักชวนให้มาลงทุน และ/หรือทำการเทรด ทั้งนี้ Deriv ไม่ได้ให้คำปรึกษาในการลงทุนใดๆ นอกจากนี้ อดีตไม่ใช่คู่มือที่จะแสดงถึงผลประกอบการในอนาคตเสมอไปและกลยุทธ์ต่างๆที่อาจได้ผลในอดีตอาจจะไม่ได้ผลในอนาคต", "-2111521813": "ดาวน์โหลดชุดเครื่องมือเทรด Acuity", "-175369516": "ยินดีต้อนรับสู่ Deriv X", @@ -2982,7 +2982,7 @@ "-712681566": "การแลกเปลี่ยนจากบุคคลหนึ่งยังอีกคนหรือ P2P", "-1267880283": "{{field_name}} นั้นจำเป็นต้องมี", "-2084509650": "{{field_name}} อยู่ในรูปแบบที่ไม่ถูกต้อง", - "-222283483": "Account opening reason*", + "-222283483": "เหตุผลในการเปิดบัญชี*", "-1779241732": "บรรทัดแรกของที่อยู่ไม่ได้อยู่ในรูปแบบที่ถูกต้อง", "-188222339": "ไม่ควรเกิน {{max_number}} อักขระ", "-1673422138": "รัฐ/จังหวัด อยู่ในรูปแบบที่ไม่ถูกต้อง", @@ -2996,15 +2996,15 @@ "-1982499699": "สำรวจดู {{platform_name_dbot}}", "-1567989247": "ส่งหลักฐานการยืนยันตัวตนและที่อยู่ของคุณ", "-184453418": "ใส่รหัสผ่าน {{platform}} ของคุณ", - "-393388362": "We’re reviewing your documents. This should take about 1 to 3 days.", + "-393388362": "เรากำลังทำการตรวจสอบเอกสารของคุณ การดำเนินการนี้จะใช้เวลาประมาณ 1 ถึง 3 วัน", "-790488576": "ลืมรหัสผ่าน?", "-926547017": "ใส่รหัสผ่าน {{platform}} ของคุณเพื่อเพิ่มบัญชี {{platform}} {{account}} {{jurisdiction_shortcode}} ของคุณ", "-1190393389": "ใส่รหัสผ่าน {{platform}} ของคุณเพื่อเพิ่มบัญชี {{platform}} {{account}} ของคุณ", "-2057918502": "คําบอกใบ้: คุณอาจป้อนรหัสผ่าน Deriv ของคุณซึ่งต่างจากรหัสผ่าน {{platform}} ของคุณ", "-1769158315": "จริง", "-700260448": "ทดลอง", - "-1936102840": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} account. ", - "-1570793523": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} account.", + "-1936102840": "ขอแสดงความยินดี คุณได้สร้างบัญชี {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} ของคุณเรียบร้อยแล้ว ", + "-1570793523": "ขอแสดงความยินดี คุณได้สร้างบัญชี {{category}} <0>{{platform}} <1>{{type}} ของคุณเรียบร้อยแล้ว", "-1928229820": "ตั้งรหัสผ่านใหม่ของนักลงทุน Deriv X", "-1087845020": "หลัก", "-1950683866": "นักลงทุน", diff --git a/packages/translations/src/translations/zh_cn.json b/packages/translations/src/translations/zh_cn.json index 3ab3df532854..d39d401ca6a8 100644 --- a/packages/translations/src/translations/zh_cn.json +++ b/packages/translations/src/translations/zh_cn.json @@ -574,7 +574,7 @@ "745656178": "用此程序块以市价卖出合约。", "745674059": "根据选定选项从提供的文本字串中返回指定字符。 ", "746112978": "您的电脑更新可能需要数秒钟", - "750886728": "Switch to your real account to submit your documents", + "750886728": "切换到真实账户提交文件", "751692023": "如您转账错误,我们<0>不保证退款。", "752024971": "已达到小数点的最大位数", "752633544": "达到特定阈值后需要提交身份和地址证明", @@ -872,7 +872,7 @@ "1112582372": "间隔期限", "1113119682": "此程序块向您提供自烛形线图列表选定的烛形线值。", "1113292761": "少于 8MB", - "1113433728": "Resubmit your proof of identity and address", + "1113433728": "重新提交身份和地址证明", "1117863275": "安全和保密", "1118294625": "您已选择在{{exclusion_end}} 前自我禁止在网站交易。如果您在自我禁止期过后无法交易或存款,请通过实时聊天与我们联系。", "1119887091": "验证", @@ -1114,7 +1114,7 @@ "1396417530": "熊市指数", "1397628594": "资金不足", "1399620764": "根据法律规定,我们有义务要求您提供财务信息。", - "1400341216": "We’ll review your documents and notify you of its status within 1 to 3 days.", + "1400341216": "将审核文件并于1至3天内通知状况。", "1400637999": "(全为必填字段)", "1400732866": "从相机观看", "1400962248": "最高值-收盘", @@ -1264,7 +1264,7 @@ "1587046102": "当前不支持该国家/地区的文档-尝试其他文档类型", "1589640950": "此合约不提供转售。", "1589702653": "地址证明", - "1591933071": "Resubmit document", + "1591933071": "重新提交文件", "1593010588": "立即登录", "1594147169": "请在下述时间过后返回此处", "1594322503": "可卖出", @@ -1549,7 +1549,7 @@ "1918832194": "没有经验", "1919030163": "好的自拍技巧", "1919594496": "{{website_name}} 与任何付款代理不存在附属关系。客户与付款代理的业务往来,风险自负。建议客户在使用付款代理的服务前,事先查询其信用状况,并检查其在{{website_name}} 或其他地方的任何信息的准确性。", - "1919694313": "To start trading, transfer funds from your Deriv account into this account.", + "1919694313": "请从 Deriv 账户转汇资金入此账户以开始交易。", "1920217537": "比较", "1920468180": "如何使用SMA程序块", "1921634159": "一些个人资料", @@ -1656,7 +1656,7 @@ "2037481040": "选择往账户注入资金的方式", "2037665157": "扩大所有程序块", "2037906477": "从# 项获取子列表", - "2042023623": "We’re reviewing your documents. This should take about 5 minutes.", + "2042023623": "正在审核文件。应该需要大约 5 分钟。", "2042050260": "-买入价格:合约的买入价格(投注额)", "2042115724": "上传含姓名、账号、电话号码和电子邮件地址的账户和个人详细信息页面的屏幕截图。", "2042778835": "此投诉政策可能会不时更改,适用于您在 {{legal_entity_name}} 注册的账户。", @@ -2750,7 +2750,7 @@ "-1125797291": "密码已更新。", "-157145612": "请用更新密码登录。", "-1728185398": "重新提交地址证明", - "-612396514": "Please resubmit your proof of address.", + "-612396514": "请重新提交地址证明。", "-1519764694": "地址证明已通过验证.", "-1961967032": "重新提交身份证明", "-117048458": "请提交身份证明。", @@ -2982,7 +2982,7 @@ "-712681566": "对等交换", "-1267880283": "{{field_name}} 是必填项", "-2084509650": "{{field_name}} 的格式不正确。", - "-222283483": "Account opening reason*", + "-222283483": "开立账户的原因*", "-1779241732": "地址第一行的格式不正确。", "-188222339": "不可超过 {{max_number}} 个字符。", "-1673422138": "州/省/区的格式不正确。", @@ -2996,15 +2996,15 @@ "-1982499699": "探索 {{platform_name_dbot}}", "-1567989247": "请提交身份和地址证明", "-184453418": "输入{{platform}} 密码", - "-393388362": "We’re reviewing your documents. This should take about 1 to 3 days.", + "-393388362": "正在审核文件。应该需要大约 1 到 3 天。", "-790488576": "忘记密码?", "-926547017": "输入 {{platform}} 密码以添加 {{platform}} {{account}} {{jurisdiction_shortcode}} 账户。", "-1190393389": "输入 {{platform}} 密码以添加 {{platform}} {{account}} 账户。", "-2057918502": "提示:可能您输入了与 {{platform}} 密码不同的 Deriv 密码。", "-1769158315": "真实", "-700260448": "演示", - "-1936102840": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} account. ", - "-1570793523": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} account.", + "-1936102840": "恭喜,您已成功开立 {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} 账户。 ", + "-1570793523": "恭喜,您已成功开立 {{category}} <0>{{platform}} <1>{{type}} 账户。", "-1928229820": "重置Deriv X投资者密码", "-1087845020": "主页", "-1950683866": "投资者", diff --git a/packages/translations/src/translations/zh_tw.json b/packages/translations/src/translations/zh_tw.json index fb3746ab69ac..2dff5f60dc83 100644 --- a/packages/translations/src/translations/zh_tw.json +++ b/packages/translations/src/translations/zh_tw.json @@ -574,7 +574,7 @@ "745656178": "用此區塊以市價賣出合約。", "745674059": "根據選定選項從提供的文字字串中返回指定字元。 ", "746112978": "電腦更新可能需要數秒鐘", - "750886728": "Switch to your real account to submit your documents", + "750886728": "切換到真實帳戶以提交文件", "751692023": "如您轉帳錯誤,我們<0>不保證退款。", "752024971": "已達到小數點的最大位數", "752633544": "一旦達到特定門檻,需要提交身份和地址證明", @@ -872,7 +872,7 @@ "1112582372": "間隔期限", "1113119682": "此區塊提供自燭線圖清單選定的燭線值。", "1113292761": "少於 8MB", - "1113433728": "Resubmit your proof of identity and address", + "1113433728": "重新提交身份和地址證明", "1117863275": "安全和保密", "1118294625": "您已選擇在 {{exclusion_end}} 前自我禁止在網站交易。如果自我禁止期後無法交易或存款,請通過即時聊天與我們聯繫。", "1119887091": "驗證", @@ -1114,7 +1114,7 @@ "1396417530": "熊市指數", "1397628594": "資金不足", "1399620764": "根據法律規定,我們有義務要求您提供財務資料。", - "1400341216": "We’ll review your documents and notify you of its status within 1 to 3 days.", + "1400341216": "將審核文件並於 1 至 3 天內通知狀況。", "1400637999": "(所有欄位都需要)", "1400732866": "從相機觀看", "1400962248": "最高值-收盤值", @@ -1264,7 +1264,7 @@ "1587046102": "目前不支援該國家/地區的文檔 — 嘗試其他文檔類型", "1589640950": "此合約不提供轉售。", "1589702653": "地址證明", - "1591933071": "Resubmit document", + "1591933071": "重新提交文件", "1593010588": "立即登入", "1594147169": "請在下述時間過後返回此處", "1594322503": "可賣出", @@ -1549,7 +1549,7 @@ "1918832194": "沒有經驗", "1919030163": "好的自拍技巧", "1919594496": "{{website_name}} 與任何付款代理不存在附屬關係。客戶與付款代理的業務往來,風險自負。建議客戶在使用付款代理的服務前,應事先查詢其信用狀況,並檢查其在{{website_name}} 或其他地方的任何資訊的準確性。", - "1919694313": "To start trading, transfer funds from your Deriv account into this account.", + "1919694313": "請從 Deriv 帳戶轉匯資金入此帳戶以開始交易。", "1920217537": "比較", "1920468180": "如何使用 SMA 區塊", "1921634159": "一些個人資料", @@ -1656,7 +1656,7 @@ "2037481040": "選擇往帳戶注入資金的方式", "2037665157": "擴大所有區塊", "2037906477": "從 # 取得子清單", - "2042023623": "We’re reviewing your documents. This should take about 5 minutes.", + "2042023623": "正在審核文件。應該需要大約 5 分鐘。", "2042050260": "- 買入價格:合約的買入價格(投注額)", "2042115724": "上傳包含姓名,帳戶號碼,電話號碼和電子郵件地址的帳戶和個人詳細資訊頁面的螢幕擷取畫面。", "2042778835": "此投訴政策可能會不時更改,適用於在{{legal_entity_name}} 註冊的帳戶。", @@ -2750,7 +2750,7 @@ "-1125797291": "密碼已更新。", "-157145612": "請用更新密碼登入。", "-1728185398": "重新提交地址證明", - "-612396514": "Please resubmit your proof of address.", + "-612396514": "請重新提交地址證明。", "-1519764694": "地址證明已通過驗證.", "-1961967032": "重新提交身份證明", "-117048458": "請提交身份證明。", @@ -2982,7 +2982,7 @@ "-712681566": "對等兌換", "-1267880283": "{{field_name}} 為必填項", "-2084509650": "{{field_name}} 的格式不正確。", - "-222283483": "Account opening reason*", + "-222283483": "開立帳戶的原因*", "-1779241732": "地址第一行的格式不正確。", "-188222339": "不可超過 {{max_number}} 個字元。", "-1673422138": "州/省的格式不正確。", @@ -2996,15 +2996,15 @@ "-1982499699": "探索 {{platform_name_dbot}}", "-1567989247": "提交身份和地址證明", "-184453418": "輸入{{platform}} 密碼", - "-393388362": "We’re reviewing your documents. This should take about 1 to 3 days.", + "-393388362": "正在審核文件。應該需要大約 1 到 3 天。", "-790488576": "忘記密碼?", "-926547017": "輸入 {{platform}} 密碼以新增 {{platform}}{{account}}{{jurisdiction_shortcode}} 帳戶。", "-1190393389": "輸入 {{platform}} 密碼以新增 {{platform}} {{account}} 帳戶。", "-2057918502": "提示:可能輸入了與 {{platform}} 密碼不同的 Deriv 密碼。", "-1769158315": "真實", "-700260448": "示範", - "-1936102840": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} account. ", - "-1570793523": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} account.", + "-1936102840": "恭喜,已成功建立 {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} 帳戶。 ", + "-1570793523": "恭喜,已成功建立 {{category}} <0>{{platform}} <1>{{type}} 帳戶。", "-1928229820": "重設Deriv X投資者密碼", "-1087845020": "首頁", "-1950683866": "投資者", From c886eea613c81cb020cbbf450c10134173093780 Mon Sep 17 00:00:00 2001 From: Aizad Ridzo Date: Fri, 13 Jan 2023 15:53:06 +0800 Subject: [PATCH 27/84] chore: migrated progress-slider-stream to tsx --- .../progress-slider/progress-slider.tsx | 4 ++-- .../src/Constants/data-table-constants.js | 2 +- ...-stream.jsx => progress-slider-stream.tsx} | 19 ++++++++++--------- 3 files changed, 13 insertions(+), 12 deletions(-) rename packages/reports/src/Containers/{progress-slider-stream.jsx => progress-slider-stream.tsx} (72%) diff --git a/packages/components/src/components/progress-slider/progress-slider.tsx b/packages/components/src/components/progress-slider/progress-slider.tsx index 716364ee4951..3beb5015bea5 100644 --- a/packages/components/src/components/progress-slider/progress-slider.tsx +++ b/packages/components/src/components/progress-slider/progress-slider.tsx @@ -9,11 +9,11 @@ import moment from 'moment'; type TProgressSliderProps = { className?: string; current_tick: number; - expiry_time: number & string; + expiry_time: number; getCardLabels: () => { [key: string]: string }; // TODO Use the one from shared workspace after migration is_loading: boolean; server_time: moment.Moment; - start_time: number & string; + start_time: number; ticks_count: number; }; diff --git a/packages/reports/src/Constants/data-table-constants.js b/packages/reports/src/Constants/data-table-constants.js index 52505da6305a..0164bb6d8401 100644 --- a/packages/reports/src/Constants/data-table-constants.js +++ b/packages/reports/src/Constants/data-table-constants.js @@ -3,7 +3,7 @@ import React from 'react'; import { Icon, Label, Money, ContractCard, Popover } from '@deriv/components'; import { isMobile, getCurrencyDisplayCode, getTotalProfit, shouldShowCancellation } from '@deriv/shared'; import { localize, Localize } from '@deriv/translations'; -import ProgressSliderStream from '../Containers/progress-slider-stream.jsx'; +import ProgressSliderStream from '../Containers/progress-slider-stream'; import { getCardLabels } from '_common/contract'; import { getProfitOrLoss } from '../Helpers/profit-loss'; diff --git a/packages/reports/src/Containers/progress-slider-stream.jsx b/packages/reports/src/Containers/progress-slider-stream.tsx similarity index 72% rename from packages/reports/src/Containers/progress-slider-stream.jsx rename to packages/reports/src/Containers/progress-slider-stream.tsx index 024822c3d65c..3e8c3ba16d10 100644 --- a/packages/reports/src/Containers/progress-slider-stream.jsx +++ b/packages/reports/src/Containers/progress-slider-stream.tsx @@ -1,11 +1,18 @@ -import PropTypes from 'prop-types'; import React from 'react'; import { ProgressSlider } from '@deriv/components'; import { getCurrentTick } from '@deriv/shared'; import { connect } from 'Stores/connect'; import { getCardLabels } from '_common/contract'; +import moment from 'moment'; +import { TContractInfo } from '@deriv/shared/src/utils/contract/contract-types'; -const ProgressSliderStream = ({ contract_info, is_loading, server_time }) => { +type TProgressSliderStream = { + contract_info: Required; + is_loading: boolean; + server_time: moment.Moment; +}; + +const ProgressSliderStream = ({ contract_info, is_loading, server_time }: TProgressSliderStream) => { if (!contract_info) { return
; } @@ -24,13 +31,7 @@ const ProgressSliderStream = ({ contract_info, is_loading, server_time }) => { ); }; -ProgressSliderStream.propTypes = { - contract_info: PropTypes.object, - is_loading: PropTypes.bool, - server_time: PropTypes.object, -}; - -export default connect(({ common, portfolio }) => ({ +export default connect(({ common, portfolio }: any) => ({ is_loading: portfolio.is_loading, server_time: common.server_time, }))(ProgressSliderStream); From 229a5b131584880420387f7b90059d5cfd8b8e58 Mon Sep 17 00:00:00 2001 From: Shayan Khaleghparast <100833613+shayan-deriv@users.noreply.github.com> Date: Tue, 10 Jan 2023 10:38:48 +0330 Subject: [PATCH 28/84] Shayan/52349/react17 migration (#6908) * refactor: react version is upgraded to version 17 * fix: fixed typo * fix: changed declaration file location * fix: temporarily commented our two test cases that are failing * fix: fixed react-content-loader props * fix: fixed some bugs * fix: fixed z-index issue for popover in DBot page * fix: fixed popover position issue in DBot page * chore: an small change on how to turn string to array * fix: merge upstream develop into my branch and resolved conflicts * fix: resolved pr comments * fix: removed rc-drawer and refactored mobile drawer * fix: fixed test cases * fix: resolved pr comments * fix: resolved pr comment * fix: fixed typo * fix: resolved pr comments * fix: fixed slide-in component bug * fix: resolved pr comments * fix: resolved pr comments * fix: removed unnecessary lines * fix: resolved pr comments * Update packages/account/src/Components/personal-details/__tests__/personal-details.spec.js Co-authored-by: Niloofar Sadeghi <93518187+niloo-fs@users.noreply.github.com> * Update packages/account/src/Components/personal-details/__tests__/personal-details.spec.js Co-authored-by: Niloofar Sadeghi <93518187+niloo-fs@users.noreply.github.com> * Update packages/account/src/Components/personal-details/personal-details.jsx Co-authored-by: Niloofar Sadeghi <93518187+niloo-fs@users.noreply.github.com> * fix: fixed mt5 modal not appear on screen when clicking on trade button * fix: fixed Bug #84787 Co-authored-by: Shayan Khaleghparast <100833613+iman-fs@users.noreply.github.com> Co-authored-by: Niloofar Sadeghi <93518187+niloo-fs@users.noreply.github.com> --- e2e_tests/jest.config.js | 2 +- jest.config.base.js | 2 +- jest.config.js | 2 +- package-lock.json | 16681 ++++++++-------- package.json | 5 +- packages/account/package.json | 4 +- .../account-limits-extra-info.tsx | 2 +- .../api-token/api-token-clipboard.tsx | 6 +- .../api-token/api-token-delete-button.tsx | 2 +- .../currency-selector/radio-button.tsx | 2 +- .../__tests__/personal-details.spec.js | 4 +- .../personal-details/personal-details.jsx | 6 +- .../sent-email-modal/sent-email-modal.tsx | 2 +- packages/api/package.json | 2 +- packages/appstore/package.json | 2 +- packages/bot-web-ui/package.json | 6 +- .../bot-web-ui/src/constants/z-indexes.js | 2 +- packages/cashier/package.json | 8 +- packages/cfd/package.json | 4 +- .../cfd/src/Components/cfd-account-card.tsx | 21 +- packages/components/package.json | 16 +- .../src/components/autosizer/AutoSizer.d.ts | 14 + .../src/components/autosizer/index.ts | 6 +- .../src/components/carousel/carousel.tsx | 11 +- .../src/components/data-list/data-list.jsx | 6 +- .../src/components/data-table/data-table.jsx | 6 +- .../components/fade-wrapper/fade-wrapper.tsx | 96 +- .../horizontal-swipe/horizontal-swipe.tsx | 11 +- .../infinite-data-list/infinite-data-list.jsx | 2 +- .../mobile-drawer/mobile-drawer.jsx | 97 +- .../mobile-drawer/mobile-drawer.scss | 34 +- .../components/page-overlay/page-overlay.scss | 1 + .../src/components/popover/popover.tsx | 49 +- .../swipeable-wrapper/swipeable-wrapper.jsx | 15 +- .../themed-scrollbars/themed-scrollbars.tsx | 4 +- .../src/components/types/popover.types.ts | 20 +- .../components/stories/data-list/README.md | 68 +- packages/components/tsconfig.json | 2 +- packages/components/webpack.config.js | 4 +- packages/core/package.json | 10 +- .../Layout/Header/toggle-menu-drawer.jsx | 14 +- .../Routes/__tests__/helpers.spec.js | 4 +- .../sass/app/_common/layout/app-layouts.scss | 21 +- packages/hooks/package.json | 2 +- packages/indicators/package.json | 4 +- packages/p2p/package.json | 6 +- .../scripts/__tests__/extract-string.spec.js | 1 - packages/reports/package.json | 8 +- .../Routes/__tests__/helpers.spec.js | 26 +- packages/shared/package.json | 2 +- .../utils/currency/__tests__/currency.spec.ts | 16 +- .../src/utils/object/__tests__/object.spec.ts | 15 +- .../shared/src/utils/url/__tests__/url.js | 8 +- packages/stores/package.json | 2 +- packages/trader/build/constants.js | 2 - packages/trader/package.json | 8 +- .../src/App/Components/Animations/bounce.jsx | 43 +- .../App/Components/Animations/slide-in.jsx | 72 +- .../Routes/__tests__/helpers.spec.js | 4 +- packages/translations/package.json | 2 +- 60 files changed, 8805 insertions(+), 8692 deletions(-) create mode 100644 packages/components/src/components/autosizer/AutoSizer.d.ts diff --git a/e2e_tests/jest.config.js b/e2e_tests/jest.config.js index 00bed44a4012..ee658c9126b4 100644 --- a/e2e_tests/jest.config.js +++ b/e2e_tests/jest.config.js @@ -29,6 +29,6 @@ module.exports = { }, }, }, - transformIgnorePatterns: ['/node_modules/(?!react-virtualized).+\\.js$', '_utils/websocket.js'], + transformIgnorePatterns: ['/node_modules/(?!@enykeev/react-virtualized).+\\.js$', '_utils/websocket.js'], reporters: ['default', './src/_utils/cli_reporter.js'], }; diff --git a/jest.config.base.js b/jest.config.base.js index 13094444785c..93faf5ce72bd 100644 --- a/jest.config.base.js +++ b/jest.config.base.js @@ -9,7 +9,7 @@ module.exports = { coverageDirectory: './coverage/', testRegex: '(/__tests__/.*|(\\.)(test|spec))\\.(js|tsx)?$', // This is needed to transform es modules imported from node_modules of the target component. - transformIgnorePatterns: ['/node_modules/(?!react-virtualized).+\\.js$'], + transformIgnorePatterns: ['/node_modules/(?!@enykeev/react-virtualized).+\\.js$'], setupFiles: ['/../../jest.setup.js'], setupFilesAfterEnv: ['/../../setupTests.js'], }; diff --git a/jest.config.js b/jest.config.js index b24c15b74fdc..85c7588099e1 100644 --- a/jest.config.js +++ b/jest.config.js @@ -11,5 +11,5 @@ module.exports = { '^.+\\.(ts|tsx)?$': 'ts-jest', }, testRegex: ['__tests__', '.*.spec.js'], - transformIgnorePatterns: ['/node_modules/(?!react-virtualized).+\\.js$'], + transformIgnorePatterns: ['/node_modules/(?!@enykeev/react-virtualized).+\\.js$'], }; diff --git a/package-lock.json b/package-lock.json index d4a20383fb9b..cef4f8d02253 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,8 +10,8 @@ "@types/react-transition-group": "^4.4.4", "babel-jest": "^27.3.1", "dotenv": "^8.2.0", - "react": "^16.14.0", - "react-dom": "^16.14.0", + "react": "^17.0.2", + "react-dom": "^17.0.2", "typescript": "^4.6.3" }, "devDependencies": { @@ -67,7 +67,6 @@ "nx": "^14.5.10", "postcss": "^8.3.6", "prettier": "^2.1.2", - "react-test-renderer": "^16.13.1", "stylelint": "^13.13.1", "stylelint-config-prettier": "^8.0.2", "stylelint-formatter-pretty": "^2.1.1", @@ -83,62 +82,55 @@ "fsevents": "^2.3.2" } }, - "node_modules/@adobe/css-tools": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.0.1.tgz", - "integrity": "sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g==", - "dev": true - }, "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.1.tgz", + "integrity": "sha512-Aolwjd7HSC2PyY0fDj/wA/EimQT4HfEnFYNp5s9CQlrdhyvWTtvZ5YzrUPu6R6/1jKiUlxu8bUhkdSnKHNAHMA==", "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.0" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", "dependencies": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz", - "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz", + "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.5.tgz", - "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==", - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-module-transforms": "^7.20.2", - "@babel/helpers": "^7.20.5", - "@babel/parser": "^7.20.5", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5", + "version": "7.17.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.2.tgz", + "integrity": "sha512-R3VH5G42VSDolRHyUO4V2cfag8WHcZyxdq5Z/m8Xyb92lW/Erm/6kM+XtRFGf3Mulre3mveni2NHfEUws8wSvw==", + "dependencies": { + "@ampproject/remapping": "^2.0.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.0", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helpers": "^7.17.2", + "@babel/parser": "^7.17.0", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.0", + "@babel/types": "^7.17.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", + "json5": "^2.1.2", "semver": "^6.3.0" }, "engines": { @@ -150,12 +142,12 @@ } }, "node_modules/@babel/eslint-parser": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz", - "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz", + "integrity": "sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA==", "dev": true, "dependencies": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-scope": "^5.1.1", "eslint-visitor-keys": "^2.1.0", "semver": "^6.3.0" }, @@ -167,64 +159,60 @@ "eslint": "^7.5.0 || ^8.0.0" } }, - "node_modules/@babel/generator": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.5.tgz", - "integrity": "sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==", - "dependencies": { - "@babel/types": "^7.20.5", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - }, + "node_modules/@babel/eslint-parser/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": ">=6.9.0" + "node": ">=10" } }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "node_modules/@babel/generator": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.0.tgz", + "integrity": "sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw==", "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", - "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", + "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", "dev": true, "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.9" + "@babel/helper-explode-assignable-expression": "^7.16.7", + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", - "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", + "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", "dependencies": { - "@babel/compat-data": "^7.20.0", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", + "@babel/compat-data": "^7.16.4", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", "semver": "^6.3.0" }, "engines": { @@ -235,17 +223,17 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.5.tgz", - "integrity": "sha512-3RCdA/EmEaikrhayahwToF0fpweU/8o2p8vhc1c/1kftHOdTKuC65kik/TLc+qfbS8JKw4qqJbne4ovICDhmww==", + "version": "7.17.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz", + "integrity": "sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-member-expression-to-functions": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.19.1", - "@babel/helper-split-export-declaration": "^7.18.6" + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -255,13 +243,13 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz", - "integrity": "sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", + "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.2.1" + "@babel/helper-annotate-as-pure": "^7.16.7", + "regexpu-core": "^5.0.1" }, "engines": { "node": ">=6.9.0" @@ -271,13 +259,15 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", - "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", "resolve": "^1.14.2", @@ -288,186 +278,189 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "dependencies": { + "@babel/types": "^7.16.7" + }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", + "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", "dependencies": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", + "dependencies": { + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", - "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", + "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", "dependencies": { - "@babel/types": "^7.18.9" + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", - "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", + "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.2" + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", + "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz", + "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", - "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", + "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-wrap-function": "^7.16.8", + "@babel/types": "^7.16.8" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", - "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", + "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.19.1", - "@babel/types": "^7.19.0" + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", + "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", "dependencies": { - "@babel/types": "^7.20.2" + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", - "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", "dev": true, "dependencies": { - "@babel/types": "^7.20.0" + "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", "engines": { "node": ">=6.9.0" } @@ -481,39 +474,39 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", - "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", + "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" + "@babel/helper-function-name": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz", - "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==", + "version": "7.17.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz", + "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", "dependencies": { - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.0", + "@babel/types": "^7.17.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -522,9 +515,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz", - "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.0.tgz", + "integrity": "sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw==", "bin": { "parser": "bin/babel-parser.js" }, @@ -533,12 +526,12 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", + "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -548,14 +541,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", - "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", + "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", - "@babel/plugin-proposal-optional-chaining": "^7.18.9" + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -565,14 +558,13 @@ } }, "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz", - "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==", + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", + "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8", "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { @@ -583,13 +575,13 @@ } }, "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", + "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -599,13 +591,13 @@ } }, "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", - "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz", + "integrity": "sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { @@ -616,16 +608,16 @@ } }, "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.20.5.tgz", - "integrity": "sha512-Lac7PpRJXcC3s9cKsBfl+uc+DYXU5FD06BrTFunQO6QIQT+DwyzDPURAowI3bcvD1dZF/ank1Z5rstUJn3Hn4Q==", + "version": "7.17.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.2.tgz", + "integrity": "sha512-WH8Z95CwTq/W8rFbMqb9p3hicpt4RX4f0K659ax2VHxgOyT6qQmUaEVEjIh4WR9Eh9NymkVn5vwsrE68fAQNUw==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.19.1", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/plugin-syntax-decorators": "^7.19.0" + "@babel/helper-create-class-features-plugin": "^7.17.1", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/plugin-syntax-decorators": "^7.17.0", + "charcodes": "^0.2.0" }, "engines": { "node": ">=6.9.0" @@ -635,12 +627,12 @@ } }, "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", + "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { @@ -651,13 +643,13 @@ } }, "node_modules/@babel/plugin-proposal-export-default-from": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.18.10.tgz", - "integrity": "sha512-5H2N3R2aQFxkV4PIBUR/i7PUSwgTZjouJKzI8eKswfIjT0PhvzkPn0t0wIS5zn6maQuvtT0t1oHtMUz61LOuow==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.16.7.tgz", + "integrity": "sha512-+cENpW1rgIjExn+o5c8Jw/4BuH4eGKKYvkMB8/0ZxFQ9mC0t4z09VsPIwNg6waF69QYC81zxGeAsREGuqQoKeg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-default-from": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-export-default-from": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -667,12 +659,12 @@ } }, "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", - "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", + "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { @@ -683,12 +675,12 @@ } }, "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", + "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { @@ -699,12 +691,12 @@ } }, "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", - "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", + "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { @@ -715,12 +707,12 @@ } }, "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", + "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { @@ -731,12 +723,12 @@ } }, "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", + "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { @@ -747,16 +739,16 @@ } }, "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz", - "integrity": "sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz", + "integrity": "sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-plugin-utils": "^7.20.2", + "@babel/compat-data": "^7.16.4", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.1" + "@babel/plugin-transform-parameters": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -766,12 +758,12 @@ } }, "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", + "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, "engines": { @@ -782,13 +774,13 @@ } }, "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", - "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", + "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { @@ -799,13 +791,13 @@ } }, "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "version": "7.16.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", + "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-class-features-plugin": "^7.16.10", + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -815,14 +807,14 @@ } }, "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz", - "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", + "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { @@ -833,13 +825,13 @@ } }, "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", + "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=4" @@ -897,12 +889,12 @@ } }, "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.19.0.tgz", - "integrity": "sha512-xaBZUEDntt4faL1yN8oIFlhfXeQAWJW7CLKYsHTUqriCUbj8xOra8bfxxKGi/UwExPFBuPdH4XfHc9rGQhrVkQ==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz", + "integrity": "sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -924,12 +916,12 @@ } }, "node_modules/@babel/plugin-syntax-export-default-from": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.18.6.tgz", - "integrity": "sha512-Kr//z3ujSVNx6E9z9ih5xXXMqK07VVTuqPmqGe6Mss/zW5XPeLZeSDZoP9ab/hT4wPKqAgjl2PnhPrcpk8Seew==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.16.7.tgz", + "integrity": "sha512-4C3E4NsrLOgftKaTYTULhHsuQrGv3FHrBzOMDiS7UYKIpgGBkAdawg4h+EI8zPeK9M0fiIIh72hIwsI24K7MbA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -950,21 +942,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", - "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-import-meta": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", @@ -988,12 +965,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", - "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", + "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1098,11 +1075,11 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", - "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz", + "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==", "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1112,12 +1089,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", - "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", + "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1127,14 +1104,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", - "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", + "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-remap-async-to-generator": "^7.18.6" + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8" }, "engines": { "node": ">=6.9.0" @@ -1144,12 +1121,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", + "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1159,12 +1136,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.5.tgz", - "integrity": "sha512-WvpEIW9Cbj9ApF3yJCjIEEf1EiNJLtXagOrL5LNWEZOo3jv8pmPoYTSNJQvqej8OavVlgOoOPw6/htGZro6IkA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", + "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1174,19 +1151,18 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz", - "integrity": "sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.19.1", - "@babel/helper-split-export-declaration": "^7.18.6", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", + "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", "globals": "^11.1.0" }, "engines": { @@ -1197,12 +1173,12 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", - "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", + "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1212,12 +1188,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz", - "integrity": "sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz", + "integrity": "sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1227,13 +1203,13 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", + "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1243,12 +1219,12 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", - "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", + "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1258,13 +1234,13 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", + "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", "dev": true, "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1274,12 +1250,12 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", - "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", + "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1289,14 +1265,14 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", - "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", + "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1306,12 +1282,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", - "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", + "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1321,12 +1297,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", + "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1336,13 +1312,14 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", - "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", + "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" }, "engines": { "node": ">=6.9.0" @@ -1352,14 +1329,15 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", - "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz", + "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-simple-access": "^7.19.4" + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-simple-access": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" }, "engines": { "node": ">=6.9.0" @@ -1369,15 +1347,16 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", - "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", + "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", "dev": true, "dependencies": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-validator-identifier": "^7.19.1" + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" }, "engines": { "node": ">=6.9.0" @@ -1387,13 +1366,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", + "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1403,13 +1382,12 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", - "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", + "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-create-regexp-features-plugin": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1419,12 +1397,12 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", + "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1434,13 +1412,13 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", + "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1450,12 +1428,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.5.tgz", - "integrity": "sha512-h7plkOmcndIUWXZFLgpbrh2+fXAi47zcUX7IrOQuZdLD0I0KvjJ6cvo3BEcAOsDOcZhVKGJqv07mkSqK0y2isQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", + "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1465,12 +1443,12 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", + "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1480,12 +1458,12 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", - "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", + "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1495,16 +1473,16 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz", - "integrity": "sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.7.tgz", + "integrity": "sha512-8D16ye66fxiE8m890w0BpPpngG9o9OVBBy0gH2E+2AR7qMR2ZpTYJEqLxAsoroenMId0p/wMW+Blc0meDgu0Ag==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/plugin-syntax-jsx": "^7.18.6", - "@babel/types": "^7.19.0" + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-jsx": "^7.16.7", + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1514,12 +1492,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", - "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", + "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", "dev": true, "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.18.6" + "@babel/plugin-transform-react-jsx": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1529,13 +1507,13 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", - "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz", + "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1545,13 +1523,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", - "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", + "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "regenerator-transform": "^0.15.1" + "regenerator-transform": "^0.14.2" }, "engines": { "node": ">=6.9.0" @@ -1561,12 +1538,12 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", + "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1576,12 +1553,12 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", + "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1591,13 +1568,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", - "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", + "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" }, "engines": { "node": ">=6.9.0" @@ -1607,12 +1584,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", + "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1622,12 +1599,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", - "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", + "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1637,12 +1614,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", - "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", + "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1652,13 +1629,13 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.2.tgz", - "integrity": "sha512-jvS+ngBfrnTUBfOQq8NfGnSbF9BrqlR6hjJ2yVxMkmO5nL/cdifNbI30EfjRlN4g5wYWNnMPyj5Sa6R1pbLeag==", + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz", + "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.20.2", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-typescript": "^7.20.0" + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-typescript": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1668,12 +1645,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", - "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", + "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1683,13 +1660,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", + "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1699,38 +1676,37 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", - "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.20.1", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.18.6", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.2", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "version": "7.16.11", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", + "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.16.8", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-async-generator-functions": "^7.16.8", + "@babel/plugin-proposal-class-properties": "^7.16.7", + "@babel/plugin-proposal-class-static-block": "^7.16.7", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.16.7", + "@babel/plugin-proposal-json-strings": "^7.16.7", + "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.16.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-private-methods": "^7.16.11", + "@babel/plugin-proposal-private-property-in-object": "^7.16.7", + "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.20.0", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -1740,44 +1716,44 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.18.6", - "@babel/plugin-transform-async-to-generator": "^7.18.6", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.20.2", - "@babel/plugin-transform-classes": "^7.20.2", - "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.20.2", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.8", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.19.6", - "@babel/plugin-transform-modules-commonjs": "^7.19.6", - "@babel/plugin-transform-modules-systemjs": "^7.19.6", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.20.1", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.18.6", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.19.0", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.18.10", - "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.16.7", + "@babel/plugin-transform-async-to-generator": "^7.16.8", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.16.7", + "@babel/plugin-transform-classes": "^7.16.7", + "@babel/plugin-transform-computed-properties": "^7.16.7", + "@babel/plugin-transform-destructuring": "^7.16.7", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.16.7", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.16.7", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.16.7", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.16.7", + "@babel/plugin-transform-modules-commonjs": "^7.16.8", + "@babel/plugin-transform-modules-systemjs": "^7.16.7", + "@babel/plugin-transform-modules-umd": "^7.16.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", + "@babel/plugin-transform-new-target": "^7.16.7", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.16.7", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.16.7", + "@babel/plugin-transform-reserved-words": "^7.16.7", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.16.7", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.16.7", + "@babel/plugin-transform-typeof-symbol": "^7.16.7", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.20.2", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", + "@babel/types": "^7.16.8", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.20.2", "semver": "^6.3.0" }, "engines": { @@ -1804,17 +1780,17 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", - "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz", + "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-transform-react-display-name": "^7.18.6", - "@babel/plugin-transform-react-jsx": "^7.18.6", - "@babel/plugin-transform-react-jsx-development": "^7.18.6", - "@babel/plugin-transform-react-pure-annotations": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-transform-react-display-name": "^7.16.7", + "@babel/plugin-transform-react-jsx": "^7.16.7", + "@babel/plugin-transform-react-jsx-development": "^7.16.7", + "@babel/plugin-transform-react-pure-annotations": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1824,13 +1800,13 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz", - "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz", + "integrity": "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-transform-typescript": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-transform-typescript": "^7.16.7" }, "engines": { "node": ">=6.9.0" @@ -1840,56 +1816,56 @@ } }, "node_modules/@babel/runtime": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.6.tgz", - "integrity": "sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz", + "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", "dev": true, "dependencies": { - "regenerator-runtime": "^0.13.11" + "regenerator-runtime": "^0.13.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.20.6.tgz", - "integrity": "sha512-tqeujPiuEfcH067mx+7otTQWROVMKHXEaOQcAeNV5dDdbPWvPcFA8/W9LXw2NfjNmOetqLl03dfnG2WALPlsRQ==", + "version": "7.17.2", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.2.tgz", + "integrity": "sha512-NcKtr2epxfIrNM4VOmPKO46TvDMCBhgi2CrSHaEarrz+Plk2K5r9QemmOFTGpZaoKnWoGH5MO+CzeRsih/Fcgg==", "dev": true, "dependencies": { - "core-js-pure": "^3.25.1", - "regenerator-runtime": "^0.13.11" + "core-js-pure": "^3.20.2", + "regenerator-runtime": "^0.13.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.5.tgz", - "integrity": "sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==", - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.5", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.5", - "@babel/types": "^7.20.5", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.0.tgz", + "integrity": "sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg==", + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.0", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.0", + "@babel/types": "^7.17.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1898,12 +1874,11 @@ } }, "node_modules/@babel/types": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz", - "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-validator-identifier": "^7.16.7", "to-fast-properties": "^2.0.0" }, "engines": { @@ -1933,18 +1908,18 @@ } }, "node_modules/@commitlint/cli": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-17.3.0.tgz", - "integrity": "sha512-/H0md7TsKflKzVPz226VfXzVafJFO1f9+r2KcFvmBu08V0T56lZU1s8WL7/xlxqLMqBTVaBf7Ixtc4bskdEEZg==", + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-17.2.0.tgz", + "integrity": "sha512-kd1zykcrjIKyDRftWW1E1TJqkgzeosEkv1BiYPCdzkb/g/3BrfgwZUHR1vg+HO3qKUb/0dN+jNXArhGGAHpmaQ==", "dev": true, "dependencies": { "@commitlint/format": "^17.0.0", - "@commitlint/lint": "^17.3.0", - "@commitlint/load": "^17.3.0", + "@commitlint/lint": "^17.2.0", + "@commitlint/load": "^17.2.0", "@commitlint/read": "^17.2.0", "@commitlint/types": "^17.0.0", "execa": "^5.0.0", - "lodash.isfunction": "^3.0.9", + "lodash": "^4.17.19", "resolve-from": "5.0.0", "resolve-global": "1.0.0", "yargs": "^17.0.0" @@ -1956,10 +1931,104 @@ "node": ">=v14" } }, + "node_modules/@commitlint/cli/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@commitlint/cli/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@commitlint/cli/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/cli/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/@commitlint/cli/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@commitlint/cli/node_modules/yargs": { + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@commitlint/cli/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/@commitlint/config-conventional": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.3.0.tgz", - "integrity": "sha512-hgI+fN5xF8nhS9uG/V06xyT0nlcyvHHMkq0kwRSr96vl5BFlRGaL2C0/YY4kQagfU087tmj01bJkG9Ek98Wllw==", + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.2.0.tgz", + "integrity": "sha512-g5hQqRa80f++SYS233dbDSg16YdyounMTAhVcmqtInNeY/GF3aA4st9SVtJxpeGrGmueMrU4L+BBb+6Vs5wrcg==", "dev": true, "dependencies": { "conventional-changelog-conventionalcommits": "^5.0.0" @@ -1998,18 +2067,36 @@ "node": ">=v14" } }, + "node_modules/@commitlint/config-validator/node_modules/ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@commitlint/config-validator/node_modules/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 + }, "node_modules/@commitlint/ensure": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-17.3.0.tgz", - "integrity": "sha512-kWbrQHDoW5veIUQx30gXoLOCjWvwC6OOEofhPCLl5ytRPBDAQObMbxTha1Bt2aSyNE/IrJ0s0xkdZ1Gi3wJwQg==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-17.0.0.tgz", + "integrity": "sha512-M2hkJnNXvEni59S0QPOnqCKIK52G1XyXBGw51mvh7OXDudCmZ9tZiIPpU882p475Mhx48Ien1MbWjCP1zlyC0A==", "dev": true, "dependencies": { "@commitlint/types": "^17.0.0", - "lodash.camelcase": "^4.3.0", - "lodash.kebabcase": "^4.1.1", - "lodash.snakecase": "^4.1.1", - "lodash.startcase": "^4.4.0", - "lodash.upperfirst": "^4.3.1" + "lodash": "^4.17.19" }, "engines": { "node": ">=v14" @@ -2120,18 +2207,6 @@ "node": ">=v14" } }, - "node_modules/@commitlint/is-ignored/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@commitlint/is-ignored/node_modules/semver": { "version": "7.3.7", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", @@ -2148,14 +2223,14 @@ } }, "node_modules/@commitlint/lint": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-17.3.0.tgz", - "integrity": "sha512-VilOTPg0i9A7CCWM49E9bl5jytfTvfTxf9iwbWAWNjxJ/A5mhPKbm3sHuAdwJ87tDk1k4j8vomYfH23iaY+1Rw==", + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-17.2.0.tgz", + "integrity": "sha512-N2oLn4Dj672wKH5qJ4LGO+73UkYXGHO+NTVUusGw83SjEv7GjpqPGKU6KALW2kFQ/GsDefSvOjpSi3CzWHQBDg==", "dev": true, "dependencies": { "@commitlint/is-ignored": "^17.2.0", "@commitlint/parse": "^17.2.0", - "@commitlint/rules": "^17.3.0", + "@commitlint/rules": "^17.2.0", "@commitlint/types": "^17.0.0" }, "engines": { @@ -2163,22 +2238,20 @@ } }, "node_modules/@commitlint/load": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-17.3.0.tgz", - "integrity": "sha512-u/pV6rCAJrCUN+HylBHLzZ4qj1Ew3+eN9GBPhNi9otGxtOfA8b+8nJSxaNbcC23Ins/kcpjGf9zPSVW7628Umw==", + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-17.2.0.tgz", + "integrity": "sha512-HDD57qSqNrk399R4TIjw31AWBG8dBjNj1MrDKZKmC/wvimtnIFlqzcu1+sxfXIOHj/+M6tcMWDtvknGUd7SU+g==", "dev": true, "dependencies": { "@commitlint/config-validator": "^17.1.0", "@commitlint/execute-rule": "^17.0.0", - "@commitlint/resolve-extends": "^17.3.0", + "@commitlint/resolve-extends": "^17.1.0", "@commitlint/types": "^17.0.0", "@types/node": "^14.0.0", "chalk": "^4.1.0", "cosmiconfig": "^7.0.0", "cosmiconfig-typescript-loader": "^4.0.0", - "lodash.isplainobject": "^4.0.6", - "lodash.merge": "^4.6.2", - "lodash.uniq": "^4.5.0", + "lodash": "^4.17.19", "resolve-from": "^5.0.0", "ts-node": "^10.8.1", "typescript": "^4.6.4" @@ -2188,9 +2261,9 @@ } }, "node_modules/@commitlint/load/node_modules/@types/node": { - "version": "14.18.35", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.35.tgz", - "integrity": "sha512-2ATO8pfhG1kDvw4Lc4C0GXIMSQFFJBCo/R1fSgTwmUlq5oy95LXyjDQinsRVgQY6gp6ghh3H91wk9ES5/5C+Tw==", + "version": "14.18.33", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.33.tgz", + "integrity": "sha512-qelS/Ra6sacc4loe/3MSjXNL1dNQ/GjxNHVzuChwMfmk7HuycRLVQN2qNY3XahK+fZc5E2szqQSKUyAF0E+2bg==", "dev": true }, "node_modules/@commitlint/load/node_modules/ansi-styles": { @@ -2302,16 +2375,39 @@ "node": ">=v14" } }, + "node_modules/@commitlint/read/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@commitlint/read/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/@commitlint/resolve-extends": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.3.0.tgz", - "integrity": "sha512-Lf3JufJlc5yVEtJWC8o4IAZaB8FQAUaVlhlAHRACd0TTFizV2Lk2VH70et23KgvbQNf7kQzHs/2B4QZalBv6Cg==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.1.0.tgz", + "integrity": "sha512-jqKm00LJ59T0O8O4bH4oMa4XyJVEOK4GzH8Qye9XKji+Q1FxhZznxMV/bDLyYkzbTodBt9sL0WLql8wMtRTbqQ==", "dev": true, "dependencies": { "@commitlint/config-validator": "^17.1.0", "@commitlint/types": "^17.0.0", "import-fresh": "^3.0.0", - "lodash.mergewith": "^4.6.2", + "lodash": "^4.17.19", "resolve-from": "^5.0.0", "resolve-global": "^1.0.0" }, @@ -2320,12 +2416,12 @@ } }, "node_modules/@commitlint/rules": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-17.3.0.tgz", - "integrity": "sha512-s2UhDjC5yP2utx3WWqsnZRzjgzAX8BMwr1nltC0u0p8T/nzpkx4TojEfhlsOUj1t7efxzZRjUAV0NxNwdJyk+g==", + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-17.2.0.tgz", + "integrity": "sha512-1YynwD4Eh7HXZNpqG8mtUlL2pSX2jBy61EejYJv4ooZPcg50Ak7LPOyD3a9UZnsE76AXWFBz+yo9Hv4MIpAa0Q==", "dev": true, "dependencies": { - "@commitlint/ensure": "^17.3.0", + "@commitlint/ensure": "^17.0.0", "@commitlint/message": "^17.2.0", "@commitlint/to-lines": "^17.0.0", "@commitlint/types": "^17.0.0", @@ -2335,6 +2431,50 @@ "node": ">=v14" } }, + "node_modules/@commitlint/rules/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@commitlint/rules/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/rules/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, "node_modules/@commitlint/to-lines": { "version": "17.0.0", "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-17.0.0.tgz", @@ -2356,6 +2496,67 @@ "node": ">=v14" } }, + "node_modules/@commitlint/top-level/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/@commitlint/top-level/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/@commitlint/top-level/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/@commitlint/top-level/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/@commitlint/types": { "version": "17.0.0", "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-17.0.0.tgz", @@ -2480,26 +2681,10 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/@eslint/eslintrc/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/@eslint/eslintrc/node_modules/globals": { - "version": "13.19.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", - "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", + "version": "13.12.1", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", + "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -2520,12 +2705,6 @@ "node": ">= 4" } }, - "node_modules/@eslint/eslintrc/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/@eslint/eslintrc/node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -2594,54 +2773,6 @@ "node": ">=8" } }, - "node_modules/@istanbuljs/load-nyc-config/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==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/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==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/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==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@istanbuljs/load-nyc-config/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==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", @@ -2909,6 +3040,15 @@ "node": ">= 10.14.2" } }, + "node_modules/@jest/core/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@jest/core/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -3153,6 +3293,15 @@ "node": ">= 10.14.2" } }, + "node_modules/@jest/reporters/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@jest/reporters/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -3179,6 +3328,15 @@ "node": ">= 10.14.2" } }, + "node_modules/@jest/source-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@jest/test-result": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", @@ -3337,12 +3495,9 @@ } }, "node_modules/@jest/transform/node_modules/ci-info": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz", - "integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==", - "engines": { - "node": ">=8" - } + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", + "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==" }, "node_modules/@jest/transform/node_modules/color-convert": { "version": "2.0.1", @@ -3384,6 +3539,14 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/@jest/transform/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@jest/transform/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -3481,85 +3644,39 @@ "node": ">=8" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "dev": true, - "peer": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "peer": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", + "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", + "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", + "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, "node_modules/@lerna/add": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/add/-/add-5.6.2.tgz", - "integrity": "sha512-NHrm7kYiqP+EviguY7/NltJ3G9vGmJW6v2BASUOhP9FZDhYbq3O+rCDlFdoVRNtcyrSg90rZFMOWHph4KOoCQQ==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/add/-/add-5.6.1.tgz", + "integrity": "sha512-cZvqMYoAclefw/KQwrRIpeQiKuj/KhbkNItWc6LnWcpweUmnrAm/AEfddIOnSagRHUgkSIY/pafjL2DGdIU25w==", "dev": true, "dependencies": { - "@lerna/bootstrap": "5.6.2", - "@lerna/command": "5.6.2", - "@lerna/filter-options": "5.6.2", - "@lerna/npm-conf": "5.6.2", - "@lerna/validation-error": "5.6.2", + "@lerna/bootstrap": "5.6.1", + "@lerna/command": "5.6.1", + "@lerna/filter-options": "5.6.1", + "@lerna/npm-conf": "5.6.1", + "@lerna/validation-error": "5.6.1", "dedent": "^0.7.0", "npm-package-arg": "8.1.1", "p-map": "^4.0.0", @@ -3570,18 +3687,6 @@ "node": "^14.15.0 || >=16.0.0" } }, - "node_modules/@lerna/add/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@lerna/add/node_modules/semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -3598,23 +3703,23 @@ } }, "node_modules/@lerna/bootstrap": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-5.6.2.tgz", - "integrity": "sha512-S2fMOEXbef7nrybQhzBywIGSLhuiQ5huPp1sU+v9Y6XEBsy/2IA+lb0gsZosvPqlRfMtiaFstL+QunaBhlWECA==", - "dev": true, - "dependencies": { - "@lerna/command": "5.6.2", - "@lerna/filter-options": "5.6.2", - "@lerna/has-npm-version": "5.6.2", - "@lerna/npm-install": "5.6.2", - "@lerna/package-graph": "5.6.2", - "@lerna/pulse-till-done": "5.6.2", - "@lerna/rimraf-dir": "5.6.2", - "@lerna/run-lifecycle": "5.6.2", - "@lerna/run-topologically": "5.6.2", - "@lerna/symlink-binary": "5.6.2", - "@lerna/symlink-dependencies": "5.6.2", - "@lerna/validation-error": "5.6.2", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-5.6.1.tgz", + "integrity": "sha512-YMNDTDtAo5fpt/pmA/JOcU2HvgD/bdwiZAa80312HcRy6MortJqFDo6wOM6trfoqf0XkWOpcw+P7/d/8+b8SVw==", + "dev": true, + "dependencies": { + "@lerna/command": "5.6.1", + "@lerna/filter-options": "5.6.1", + "@lerna/has-npm-version": "5.6.1", + "@lerna/npm-install": "5.6.1", + "@lerna/package-graph": "5.6.1", + "@lerna/pulse-till-done": "5.6.1", + "@lerna/rimraf-dir": "5.6.1", + "@lerna/run-lifecycle": "5.6.1", + "@lerna/run-topologically": "5.6.1", + "@lerna/symlink-binary": "5.6.1", + "@lerna/symlink-dependencies": "5.6.1", + "@lerna/validation-error": "5.6.1", "@npmcli/arborist": "5.3.0", "dedent": "^0.7.0", "get-port": "^5.1.1", @@ -3630,18 +3735,6 @@ "node": "^14.15.0 || >=16.0.0" } }, - "node_modules/@lerna/bootstrap/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@lerna/bootstrap/node_modules/semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -3658,38 +3751,38 @@ } }, "node_modules/@lerna/changed": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-5.6.2.tgz", - "integrity": "sha512-uUgrkdj1eYJHQGsXXlpH5oEAfu3x0qzeTjgvpdNrxHEdQWi7zWiW59hRadmiImc14uJJYIwVK5q/QLugrsdGFQ==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-5.6.1.tgz", + "integrity": "sha512-YVXkTEXlQWW1BSyURwZHz4HDpfl/yAwkLQbRQ2OtEmknkh4QOK41PPBgX0q1SCWKs3OYdSuI30A2H3KY8LMkxg==", "dev": true, "dependencies": { - "@lerna/collect-updates": "5.6.2", - "@lerna/command": "5.6.2", - "@lerna/listable": "5.6.2", - "@lerna/output": "5.6.2" + "@lerna/collect-updates": "5.6.1", + "@lerna/command": "5.6.1", + "@lerna/listable": "5.6.1", + "@lerna/output": "5.6.1" }, "engines": { "node": "^14.15.0 || >=16.0.0" } }, "node_modules/@lerna/check-working-tree": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-5.6.2.tgz", - "integrity": "sha512-6Vf3IB6p+iNIubwVgr8A/KOmGh5xb4SyRmhFtAVqe33yWl2p3yc+mU5nGoz4ET3JLF1T9MhsePj0hNt6qyOTLQ==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-5.6.1.tgz", + "integrity": "sha512-pzM/d+009Yl7ThpbWPntao5WuHi4nb/T9WKTOG/CzS/yLQgceVaX1vRaf3fML92RYmV+XGFPq+PaVQXtwHdMkA==", "dev": true, "dependencies": { - "@lerna/collect-uncommitted": "5.6.2", - "@lerna/describe-ref": "5.6.2", - "@lerna/validation-error": "5.6.2" + "@lerna/collect-uncommitted": "5.6.1", + "@lerna/describe-ref": "5.6.1", + "@lerna/validation-error": "5.6.1" }, "engines": { "node": "^14.15.0 || >=16.0.0" } }, "node_modules/@lerna/child-process": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-5.6.2.tgz", - "integrity": "sha512-QIOQ3jIbWdduHd5892fbo3u7/dQgbhzEBB7cvf+Ys/iCPP8UQrBECi1lfRgA4kcTKC2MyMz0SoyXZz/lFcXc3A==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-5.6.1.tgz", + "integrity": "sha512-+86Z5EwBkdypTyV8z8Se3McbGCHh4wUBfGuOoNmar4NjeY2HVuiRCoaJsyqgoyNLoXJb1gqDGlWkG5LTuKvw/A==", "dev": true, "dependencies": { "chalk": "^4.1.0", @@ -3749,6 +3842,41 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/@lerna/child-process/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@lerna/child-process/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@lerna/child-process/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -3758,6 +3886,15 @@ "node": ">=8" } }, + "node_modules/@lerna/child-process/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, "node_modules/@lerna/child-process/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -3771,16 +3908,16 @@ } }, "node_modules/@lerna/clean": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-5.6.2.tgz", - "integrity": "sha512-A7j8r0Hk2pGyLUyaCmx4keNHen1L/KdcOjb4nR6X8GtTJR5AeA47a8rRKOCz9wwdyMPlo2Dau7d3RV9viv7a5g==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-5.6.1.tgz", + "integrity": "sha512-af+jZ/JT5AKvnW3JwFjqcuZyOiV1MCdYCi8KwHGJbEOT3ak2u7jdgFyHYtTngYTYeFn+VOSi9+vnVZ8RhQ0DQg==", "dev": true, "dependencies": { - "@lerna/command": "5.6.2", - "@lerna/filter-options": "5.6.2", - "@lerna/prompt": "5.6.2", - "@lerna/pulse-till-done": "5.6.2", - "@lerna/rimraf-dir": "5.6.2", + "@lerna/command": "5.6.1", + "@lerna/filter-options": "5.6.1", + "@lerna/prompt": "5.6.1", + "@lerna/pulse-till-done": "5.6.1", + "@lerna/rimraf-dir": "5.6.1", "p-map": "^4.0.0", "p-map-series": "^2.1.0", "p-waterfall": "^2.1.1" @@ -3790,12 +3927,12 @@ } }, "node_modules/@lerna/cli": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/cli/-/cli-5.6.2.tgz", - "integrity": "sha512-w0NRIEqDOmYKlA5t0iyqx0hbY7zcozvApmfvwF0lhkuhf3k6LRAFSamtimGQWicC779a7J2NXw4ASuBV47Fs1Q==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/cli/-/cli-5.6.1.tgz", + "integrity": "sha512-y7GmT30rVovwJHKZQE+1aH5BbR+m9psNwzGhAl3bI3pIi3DPNwa+5Ag7XV+tzKItqwfNtNQbrGIt6u3xbVgR3Q==", "dev": true, "dependencies": { - "@lerna/global-options": "5.6.2", + "@lerna/global-options": "5.6.1", "dedent": "^0.7.0", "npmlog": "^6.0.2", "yargs": "^16.2.0" @@ -3804,6 +3941,26 @@ "node": "^14.15.0 || >=16.0.0" } }, + "node_modules/@lerna/cli/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/@lerna/cli/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/@lerna/cli/node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", @@ -3822,22 +3979,13 @@ "node": ">=10" } }, - "node_modules/@lerna/cli/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/@lerna/collect-uncommitted": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-5.6.2.tgz", - "integrity": "sha512-i0jhxpypyOsW2PpPwIw4xg6EPh7/N3YuiI6P2yL7PynZ8nOv8DkIdoyMkhUP4gALjBfckH8Bj94eIaKMviqW4w==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-5.6.1.tgz", + "integrity": "sha512-Z1I4BFBcbqxX3RRiHtPA3JU92NOyTeJF/pWB5DImWDL7i5AYXWYA6iW99HyKTGfIsA3GrS4BIL0UOmp4vP7Yvw==", "dev": true, "dependencies": { - "@lerna/child-process": "5.6.2", + "@lerna/child-process": "5.6.1", "chalk": "^4.1.0", "npmlog": "^6.0.2" }, @@ -3916,13 +4064,13 @@ } }, "node_modules/@lerna/collect-updates": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-5.6.2.tgz", - "integrity": "sha512-DdTK13X6PIsh9HINiMniFeiivAizR/1FBB+hDVe6tOhsXFBfjHMw1xZhXlE+mYIoFmDm1UFK7zvQSexoaxRqFA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-5.6.1.tgz", + "integrity": "sha512-xY5nJ//ACDVU/k9zn45W//wWw9+Cf4HWN7nla8J1YHLsRmn79uJONZnyK3MBCjMpgVzSAmMe47wuDu+ZzqV/Ew==", "dev": true, "dependencies": { - "@lerna/child-process": "5.6.2", - "@lerna/describe-ref": "5.6.2", + "@lerna/child-process": "5.6.1", + "@lerna/describe-ref": "5.6.1", "minimatch": "^3.0.4", "npmlog": "^6.0.2", "slash": "^3.0.0" @@ -3932,16 +4080,16 @@ } }, "node_modules/@lerna/command": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/command/-/command-5.6.2.tgz", - "integrity": "sha512-eLVGI9TmxcaGt1M7TXGhhBZoeWOtOedMiH7NuCGHtL6TMJ9k+SCExyx+KpNmE6ImyNOzws6EvYLPLjftiqmoaA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/command/-/command-5.6.1.tgz", + "integrity": "sha512-QxJr73TUQQ4B+4mWfwH7kNNTxP3lBnNKN6zX9NnjanQ2u6Nij/SMbvym1L0T2EVgZMseFzZEQnXE3d+jbWn/aQ==", "dev": true, "dependencies": { - "@lerna/child-process": "5.6.2", - "@lerna/package-graph": "5.6.2", - "@lerna/project": "5.6.2", - "@lerna/validation-error": "5.6.2", - "@lerna/write-log-file": "5.6.2", + "@lerna/child-process": "5.6.1", + "@lerna/package-graph": "5.6.1", + "@lerna/project": "5.6.1", + "@lerna/validation-error": "5.6.1", + "@lerna/write-log-file": "5.6.1", "clone-deep": "^4.0.1", "dedent": "^0.7.0", "execa": "^5.0.0", @@ -3952,13 +4100,57 @@ "node": "^14.15.0 || >=16.0.0" } }, + "node_modules/@lerna/command/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@lerna/command/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@lerna/command/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, "node_modules/@lerna/conventional-commits": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-5.6.2.tgz", - "integrity": "sha512-fPrJpYJhxCgY2uyOCTcAAC6+T6lUAtpEGxLbjWHWTb13oKKEygp9THoFpe6SbAD0fYMb3jeZCZCqNofM62rmuA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-5.6.1.tgz", + "integrity": "sha512-H86fO470tU/lnws+xrSxzeJFBehAo10dtI35+AC9kwub7XwWO19AhdbQjf4PwWhG8/CTl65Tn9UMg+kHYilmzA==", "dev": true, "dependencies": { - "@lerna/validation-error": "5.6.2", + "@lerna/validation-error": "5.6.1", "conventional-changelog-angular": "^5.0.12", "conventional-changelog-core": "^4.2.4", "conventional-recommended-bump": "^6.1.0", @@ -3973,31 +4165,16 @@ "node": "^14.15.0 || >=16.0.0" } }, - "node_modules/@lerna/conventional-commits/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "node_modules/@lerna/conventional-commits/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, "engines": { "node": ">=10" - } - }, - "node_modules/@lerna/conventional-commits/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" }, - "engines": { - "node": ">=10" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@lerna/conventional-commits/node_modules/semver": { @@ -4016,17 +4193,18 @@ } }, "node_modules/@lerna/create": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/create/-/create-5.6.2.tgz", - "integrity": "sha512-+Y5cMUxMNXjTTU9IHpgRYIwKo39w+blui1P+s+qYlZUSCUAew0xNpOBG8iN0Nc5X9op4U094oIdHxv7Dyz6tWQ==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/create/-/create-5.6.1.tgz", + "integrity": "sha512-DSDprUvSszb6qedync3TFfDLrFzP264LNPdw+MBSw4o3lpZAmAGelzyw+xSQQQjLNoGC5q/UUePKiCiWps8aPw==", "dev": true, "dependencies": { - "@lerna/child-process": "5.6.2", - "@lerna/command": "5.6.2", - "@lerna/npm-conf": "5.6.2", - "@lerna/validation-error": "5.6.2", + "@lerna/child-process": "5.6.1", + "@lerna/command": "5.6.1", + "@lerna/npm-conf": "5.6.1", + "@lerna/validation-error": "5.6.1", "dedent": "^0.7.0", "fs-extra": "^9.1.0", + "globby": "^11.0.2", "init-package-json": "^3.0.2", "npm-package-arg": "8.1.1", "p-reduce": "^2.1.0", @@ -4043,9 +4221,9 @@ } }, "node_modules/@lerna/create-symlink": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-5.6.2.tgz", - "integrity": "sha512-0WIs3P6ohPVh2+t5axrLZDE5Dt7fe3Kv0Auj0sBiBd6MmKZ2oS76apIl0Bspdbv8jX8+TRKGv6ib0280D0dtEw==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-5.6.1.tgz", + "integrity": "sha512-u46aoyxdoHXiyOQ1vCsA8PPkPkyjZanKuiJxnqMXITMwpQFjo18FvSN9BvnZkbJ6Jwnj/boO1TjDUewrQ4wPjw==", "dev": true, "dependencies": { "cmd-shim": "^5.0.0", @@ -4056,48 +4234,6 @@ "node": "^14.15.0 || >=16.0.0" } }, - "node_modules/@lerna/create-symlink/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@lerna/create/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@lerna/create/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@lerna/create/node_modules/semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -4123,12 +4259,12 @@ } }, "node_modules/@lerna/describe-ref": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-5.6.2.tgz", - "integrity": "sha512-UqU0N77aT1W8duYGir7R+Sk3jsY/c4lhcCEcnayMpFScMbAp0ETGsW04cYsHK29sgg+ZCc5zEwebBqabWhMhnA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-5.6.1.tgz", + "integrity": "sha512-VskLszuC3NoN5l31kSh3NiIt4cqaulBI75Ek1HDT+VcGXR2AJzsE1BweDWrh2xJBdqdK8cLp72R/vgUDbjKQCg==", "dev": true, "dependencies": { - "@lerna/child-process": "5.6.2", + "@lerna/child-process": "5.6.1", "npmlog": "^6.0.2" }, "engines": { @@ -4136,14 +4272,14 @@ } }, "node_modules/@lerna/diff": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-5.6.2.tgz", - "integrity": "sha512-aHKzKvUvUI8vOcshC2Za/bdz+plM3r/ycqUrPqaERzp+kc1pYHyPeXezydVdEmgmmwmyKI5hx4+2QNnzOnun2A==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-5.6.1.tgz", + "integrity": "sha512-5JTxFUuLfEJZwtplAhWAbffv+FzJsP9ndsJFsmobdfKHZxxoyCvwc5fgMFRgQQMZcQue+lnZEYITJim078xy2A==", "dev": true, "dependencies": { - "@lerna/child-process": "5.6.2", - "@lerna/command": "5.6.2", - "@lerna/validation-error": "5.6.2", + "@lerna/child-process": "5.6.1", + "@lerna/command": "5.6.1", + "@lerna/validation-error": "5.6.1", "npmlog": "^6.0.2" }, "engines": { @@ -4151,17 +4287,17 @@ } }, "node_modules/@lerna/exec": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-5.6.2.tgz", - "integrity": "sha512-meZozok5stK7S0oAVn+kdbTmU+kHj9GTXjW7V8kgwG9ld+JJMTH3nKK1L3mEKyk9TFu9vFWyEOF7HNK6yEOoVg==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-5.6.1.tgz", + "integrity": "sha512-nNZAm6yhbHG59xMOCnJjYjQRtjqZqwjSiWakWz8upj+2HBd2Z0eMnQvrX1j9GhurhgHzhG7AM7FLnJHyh1b3Tw==", "dev": true, "dependencies": { - "@lerna/child-process": "5.6.2", - "@lerna/command": "5.6.2", - "@lerna/filter-options": "5.6.2", - "@lerna/profiler": "5.6.2", - "@lerna/run-topologically": "5.6.2", - "@lerna/validation-error": "5.6.2", + "@lerna/child-process": "5.6.1", + "@lerna/command": "5.6.1", + "@lerna/filter-options": "5.6.1", + "@lerna/profiler": "5.6.1", + "@lerna/run-topologically": "5.6.1", + "@lerna/validation-error": "5.6.1", "p-map": "^4.0.0" }, "engines": { @@ -4169,13 +4305,13 @@ } }, "node_modules/@lerna/filter-options": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-5.6.2.tgz", - "integrity": "sha512-4Z0HIhPak2TabTsUqEBQaQeOqgqEt0qyskvsY0oviYvqP/nrJfJBZh4H93jIiNQF59LJCn5Ce3KJJrLExxjlzw==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-5.6.1.tgz", + "integrity": "sha512-uii0ZDlv2j8e6d3D25wp59L0nRUh7C3B6ImCTOraEdkir6E1UEXZK7VmIzxWD44L78vnUW1kl+j/q7Kib3cP/g==", "dev": true, "dependencies": { - "@lerna/collect-updates": "5.6.2", - "@lerna/filter-packages": "5.6.2", + "@lerna/collect-updates": "5.6.1", + "@lerna/filter-packages": "5.6.1", "dedent": "^0.7.0", "npmlog": "^6.0.2" }, @@ -4184,12 +4320,12 @@ } }, "node_modules/@lerna/filter-packages": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-5.6.2.tgz", - "integrity": "sha512-el9V2lTEG0Bbz+Omo45hATkRVnChCTJhcTpth19cMJ6mQ4M5H4IgbWCJdFMBi/RpTnOhz9BhJxDbj95kuIvvzw==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-5.6.1.tgz", + "integrity": "sha512-uKaIebxrx235wg78SqY8A0ZugValdW6PgwkDFjss/Y2m8/9c+PiAbfkBeF5Q8iv8VP7te2MsGcvV12UmIQKDdA==", "dev": true, "dependencies": { - "@lerna/validation-error": "5.6.2", + "@lerna/validation-error": "5.6.1", "multimatch": "^5.0.0", "npmlog": "^6.0.2" }, @@ -4198,9 +4334,9 @@ } }, "node_modules/@lerna/get-npm-exec-opts": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-5.6.2.tgz", - "integrity": "sha512-0RbSDJ+QC9D5UWZJh3DN7mBIU1NhBmdHOE289oHSkjDY+uEjdzMPkEUy+wZ8fCzMLFnnNQkAEqNaOAzZ7dmFLA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-5.6.1.tgz", + "integrity": "sha512-y+Fzd9l1LM6tlarKrWxXQBKm02m7sjzj1T7vgiPW5uo324qEZVil89849iXgm2tLZt7/KD18Gqene2Hik0jmGQ==", "dev": true, "dependencies": { "npmlog": "^6.0.2" @@ -4210,9 +4346,9 @@ } }, "node_modules/@lerna/get-packed": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-5.6.2.tgz", - "integrity": "sha512-pp5nNDmtrtd21aKHjwwOY5CS7XNIHxINzGa+Jholn1jMDYUtdskpN++ZqYbATGpW831++NJuiuBVyqAWi9xbXg==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-5.6.1.tgz", + "integrity": "sha512-PI+WSCHXsBCF2+McaEUtcR3acZu/0JApUH+IJMz0TdYzspF4ewzEWhBn+4Gmw926oFsqnqfz37KInXNHGmBvCg==", "dev": true, "dependencies": { "fs-extra": "^9.1.0", @@ -4223,28 +4359,25 @@ "node": "^14.15.0 || >=16.0.0" } }, - "node_modules/@lerna/get-packed/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "node_modules/@lerna/get-packed/node_modules/ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", "dev": true, "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "minipass": "^3.1.1" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/@lerna/github-client": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/github-client/-/github-client-5.6.2.tgz", - "integrity": "sha512-pjALazZoRZtKqfwLBwmW3HPptVhQm54PvA8s3qhCQ+3JkqrZiIFwkkxNZxs3jwzr+aaSOzfhSzCndg0urb0GXA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/github-client/-/github-client-5.6.1.tgz", + "integrity": "sha512-XGAry8MX2fou8aAP3mf1+6oPP34QdgXzrRbdtXlCv8ksddbp/S1Tn5hNvorEJn2yDMNcjIDIdvrL/T4UiVzQjA==", "dev": true, "dependencies": { - "@lerna/child-process": "5.6.2", + "@lerna/child-process": "5.6.1", "@octokit/plugin-enterprise-rest": "^6.0.1", "@octokit/rest": "^19.0.3", "git-url-parse": "^13.1.0", @@ -4255,9 +4388,9 @@ } }, "node_modules/@lerna/gitlab-client": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-5.6.2.tgz", - "integrity": "sha512-TInJmbrsmYIwUyrRxytjO82KjJbRwm67F7LoZs1shAq6rMvNqi4NxSY9j+hT/939alFmEq1zssoy/caeLXHRfQ==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-5.6.1.tgz", + "integrity": "sha512-zNG27B1dNy4QF45tUPEywthNtsDbzvsUSiokMx847Gxq5qLHtRHRR8kK51Q2dJ6u2biZafGNyzHqT5CQ/0ndnQ==", "dev": true, "dependencies": { "node-fetch": "^2.6.1", @@ -4268,39 +4401,27 @@ } }, "node_modules/@lerna/global-options": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/global-options/-/global-options-5.6.2.tgz", - "integrity": "sha512-kaKELURXTlczthNJskdOvh6GGMyt24qat0xMoJZ8plYMdofJfhz24h1OFcvB/EwCUwP/XV1+ohE5P+vdktbrEg==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/global-options/-/global-options-5.6.1.tgz", + "integrity": "sha512-VgHVo0T2NC/YK/mR9nu8Z3DL65UtoamRclrnqK3HsaTub15UnqAlbcnEk2lB50e5TLsIZAp4TatDYrYNPKKJPQ==", "dev": true, "engines": { "node": "^14.15.0 || >=16.0.0" } }, "node_modules/@lerna/has-npm-version": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-5.6.2.tgz", - "integrity": "sha512-kXCnSzffmTWsaK0ol30coyCfO8WH26HFbmJjRBzKv7VGkuAIcB6gX2gqRRgNLLlvI+Yrp+JSlpVNVnu15SEH2g==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-5.6.1.tgz", + "integrity": "sha512-V6lt830kXnEm/1pHyFh9Pci4lgRbQcBr1eORAD8d03uxQDfxA7Z8Gu9afhH5m0rk+P8txNO/3pUe2pf5Ex4DGg==", "dev": true, "dependencies": { - "@lerna/child-process": "5.6.2", + "@lerna/child-process": "5.6.1", "semver": "^7.3.4" }, "engines": { "node": "^14.15.0 || >=16.0.0" } }, - "node_modules/@lerna/has-npm-version/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@lerna/has-npm-version/node_modules/semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -4317,16 +4438,16 @@ } }, "node_modules/@lerna/import": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/import/-/import-5.6.2.tgz", - "integrity": "sha512-xQUE49mtcP0z3KUdXBsyvp8rGDz6phuYUoQbhcFRJ7WPcQKzMvtm0XYrER6c2YWEX7QOuDac6tU82P8zTrTBaA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/import/-/import-5.6.1.tgz", + "integrity": "sha512-cOLjRAWWfY1ezsiBRIbA6lN4THu89xjtS+wJ8WUqr/xbYbGZ/qr4DBAWnpWpMfLLWN6Eel6nEAhah+Ch1IKNog==", "dev": true, "dependencies": { - "@lerna/child-process": "5.6.2", - "@lerna/command": "5.6.2", - "@lerna/prompt": "5.6.2", - "@lerna/pulse-till-done": "5.6.2", - "@lerna/validation-error": "5.6.2", + "@lerna/child-process": "5.6.1", + "@lerna/command": "5.6.1", + "@lerna/prompt": "5.6.1", + "@lerna/pulse-till-done": "5.6.1", + "@lerna/validation-error": "5.6.1", "dedent": "^0.7.0", "fs-extra": "^9.1.0", "p-map-series": "^2.1.0" @@ -4335,29 +4456,14 @@ "node": "^14.15.0 || >=16.0.0" } }, - "node_modules/@lerna/import/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@lerna/info": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/info/-/info-5.6.2.tgz", - "integrity": "sha512-MPjY5Olj+fiZHgfEdwXUFRKamdEuLr9Ob/qut8JsB/oQSQ4ALdQfnrOcMT8lJIcC2R67EA5yav2lHPBIkezm8A==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/info/-/info-5.6.1.tgz", + "integrity": "sha512-0ixkn6Z8jlesMozQBlG3vdivFOjleapCusjDFZ1F7quuEcWDQuW1bQ4i55ISsVhh5gLCTTwQiNEhPnDQzs7fww==", "dev": true, "dependencies": { - "@lerna/command": "5.6.2", - "@lerna/output": "5.6.2", + "@lerna/command": "5.6.1", + "@lerna/output": "5.6.1", "envinfo": "^7.7.4" }, "engines": { @@ -4365,14 +4471,14 @@ } }, "node_modules/@lerna/init": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/init/-/init-5.6.2.tgz", - "integrity": "sha512-ahU3/lgF+J8kdJAQysihFJROHthkIDXfHmvhw7AYnzf94HjxGNXj7nz6i3At1/dM/1nQhR+4/uNR1/OU4tTYYQ==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/init/-/init-5.6.1.tgz", + "integrity": "sha512-EPA3XCteadwZjb7GOqJFw+QcqwV/CrpWm9FZOEpo9uXNUCvOW8NqDlFzTEMrMiXBTldoP0H9SK9yM81c0Mip7Q==", "dev": true, "dependencies": { - "@lerna/child-process": "5.6.2", - "@lerna/command": "5.6.2", - "@lerna/project": "5.6.2", + "@lerna/child-process": "5.6.1", + "@lerna/command": "5.6.1", + "@lerna/project": "5.6.1", "fs-extra": "^9.1.0", "p-map": "^4.0.0", "write-json-file": "^4.3.0" @@ -4381,31 +4487,16 @@ "node": "^14.15.0 || >=16.0.0" } }, - "node_modules/@lerna/init/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@lerna/link": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/link/-/link-5.6.2.tgz", - "integrity": "sha512-hXxQ4R3z6rUF1v2x62oIzLyeHL96u7ZBhxqYMJrm763D1VMSDcHKF9CjJfc6J9vH5Z2ZbL6CQg50Hw5mUpJbjg==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/link/-/link-5.6.1.tgz", + "integrity": "sha512-iWr7HGviIK3N/WNUoAZVV0RRf0CQzpR9uJXmsfuVKXj5gN8IHqFOdGS8TIIN57ekC0DOpDtR21h65zZXD1TSHQ==", "dev": true, "dependencies": { - "@lerna/command": "5.6.2", - "@lerna/package-graph": "5.6.2", - "@lerna/symlink-dependencies": "5.6.2", - "@lerna/validation-error": "5.6.2", + "@lerna/command": "5.6.1", + "@lerna/package-graph": "5.6.1", + "@lerna/symlink-dependencies": "5.6.1", + "@lerna/validation-error": "5.6.1", "p-map": "^4.0.0", "slash": "^3.0.0" }, @@ -4414,27 +4505,27 @@ } }, "node_modules/@lerna/list": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/list/-/list-5.6.2.tgz", - "integrity": "sha512-WjE5O2tQ3TcS+8LqXUaxi0YdldhxUhNihT5+Gg4vzGdIlrPDioO50Zjo9d8jOU7i3LMIk6EzCma0sZr2CVfEGg==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/list/-/list-5.6.1.tgz", + "integrity": "sha512-4VyAvVwKZQC+ntfjJuL8PbFu5jeR/8t21BzFXVWRkrZc3/sGVxSNtzi+9Brgrxm4n8qir3+wiiC4LSHdYG8Mlw==", "dev": true, "dependencies": { - "@lerna/command": "5.6.2", - "@lerna/filter-options": "5.6.2", - "@lerna/listable": "5.6.2", - "@lerna/output": "5.6.2" + "@lerna/command": "5.6.1", + "@lerna/filter-options": "5.6.1", + "@lerna/listable": "5.6.1", + "@lerna/output": "5.6.1" }, "engines": { "node": "^14.15.0 || >=16.0.0" } }, "node_modules/@lerna/listable": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/listable/-/listable-5.6.2.tgz", - "integrity": "sha512-8Yp49BwkY/5XqVru38Zko+6Wj/sgbwzJfIGEPy3Qu575r1NA/b9eI1gX22aMsEeXUeGOybR7nWT5ewnPQHjqvA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/listable/-/listable-5.6.1.tgz", + "integrity": "sha512-c7vzJYEPiH0DT7BJpjomLt2zwViPupk0g/dU9rCBkm4w2jk6Vult60/O3rx5rb95PUFz/pYM+3w3vkZWXx9AnQ==", "dev": true, "dependencies": { - "@lerna/query-graph": "5.6.2", + "@lerna/query-graph": "5.6.1", "chalk": "^4.1.0", "columnify": "^1.6.0" }, @@ -4513,9 +4604,9 @@ } }, "node_modules/@lerna/log-packed": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-5.6.2.tgz", - "integrity": "sha512-O9GODG7tMtWk+2fufn2MOkIDBYMRoKBhYMHshO5Aw/VIsH76DIxpX1koMzWfUngM/C70R4uNAKcVWineX4qzIw==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-5.6.1.tgz", + "integrity": "sha512-nyrrI8SbwO4nezuwDDQPea2XR3IWVRxgDzuZHA+g5utx75BuCZ2d1yrZe8URzfCIVVoGYI5OuOlv32BtLzt4tw==", "dev": true, "dependencies": { "byte-size": "^7.0.0", @@ -4528,9 +4619,9 @@ } }, "node_modules/@lerna/npm-conf": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-5.6.2.tgz", - "integrity": "sha512-gWDPhw1wjXYXphk/PAghTLexO5T6abVFhXb+KOMCeem366mY0F5bM88PiorL73aErTNUoR8n+V4X29NTZzDZpQ==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-5.6.1.tgz", + "integrity": "sha512-u4Pg0IjMhRIGdgNr18nzwyv6wcP5Qo0QEvf07P6tV8G3ocY+3w8q6mrPyFT3NitodLQ4AMWFDfyFZzXikJI+uw==", "dev": true, "dependencies": { "config-chain": "^1.1.12", @@ -4541,12 +4632,12 @@ } }, "node_modules/@lerna/npm-dist-tag": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-5.6.2.tgz", - "integrity": "sha512-t2RmxV6Eog4acXkUI+EzWuYVbeVVY139pANIWS9qtdajfgp4GVXZi1S8mAIb70yeHdNpCp1mhK0xpCrFH9LvGQ==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-5.6.1.tgz", + "integrity": "sha512-YEbIP1J6V0U9qco7wk9qK0JbApIshPrUGqr0Kp1rx57pwtcwxIAvH/AEbqdVqjmItiPDpYgP7VukG7MI6EGe1w==", "dev": true, "dependencies": { - "@lerna/otplease": "5.6.2", + "@lerna/otplease": "5.6.1", "npm-package-arg": "8.1.1", "npm-registry-fetch": "^13.3.0", "npmlog": "^6.0.2" @@ -4556,13 +4647,13 @@ } }, "node_modules/@lerna/npm-install": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-5.6.2.tgz", - "integrity": "sha512-AT226zdEo+uGENd37jwYgdALKJAIJK4pNOfmXWZWzVb9oMOr8I2YSjPYvSYUNG7gOo2YJQU8x5Zd7OShv2924Q==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-5.6.1.tgz", + "integrity": "sha512-PWJyqWzDQGkhn5/mr88yYfLF+t9NzHadcmMPYxv8lBTBUTZy9sdCw8k0uQ19lNUsI/DfMTLrcYZPSLxqe3mN8A==", "dev": true, "dependencies": { - "@lerna/child-process": "5.6.2", - "@lerna/get-npm-exec-opts": "5.6.2", + "@lerna/child-process": "5.6.1", + "@lerna/get-npm-exec-opts": "5.6.1", "fs-extra": "^9.1.0", "npm-package-arg": "8.1.1", "npmlog": "^6.0.2", @@ -4573,29 +4664,14 @@ "node": "^14.15.0 || >=16.0.0" } }, - "node_modules/@lerna/npm-install/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@lerna/npm-publish": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-5.6.2.tgz", - "integrity": "sha512-ldSyewCfv9fAeC5xNjL0HKGSUxcC048EJoe/B+KRUmd+IPidvZxMEzRu08lSC/q3V9YeUv9ZvRnxATXOM8CffA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-5.6.1.tgz", + "integrity": "sha512-eSotBP+mu6EtRIfhKsbQR3m5RnL7zxhZav1zxtnYvolKPjodLlGxzqcYCqTMdnR6GAIcInFh123uuTfZNzu9CA==", "dev": true, "dependencies": { - "@lerna/otplease": "5.6.2", - "@lerna/run-lifecycle": "5.6.2", + "@lerna/otplease": "5.6.1", + "@lerna/run-lifecycle": "5.6.1", "fs-extra": "^9.1.0", "libnpmpublish": "^6.0.4", "npm-package-arg": "8.1.1", @@ -4607,29 +4683,14 @@ "node": "^14.15.0 || >=16.0.0" } }, - "node_modules/@lerna/npm-publish/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@lerna/npm-run-script": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-5.6.2.tgz", - "integrity": "sha512-MOQoWNcAyJivM8SYp0zELM7vg/Dj07j4YMdxZkey+S1UO0T4/vKBxb575o16hH4WeNzC3Pd7WBlb7C8dLOfNwQ==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-5.6.1.tgz", + "integrity": "sha512-VRScf/chK01PxFCiH6j8GWOlS8w3dH4koq7tVX9OSi3FVwqrNvN7wky/AO7cKRyuTmdoG+puDsI7gHtGclYvrQ==", "dev": true, "dependencies": { - "@lerna/child-process": "5.6.2", - "@lerna/get-npm-exec-opts": "5.6.2", + "@lerna/child-process": "5.6.1", + "@lerna/get-npm-exec-opts": "5.6.1", "npmlog": "^6.0.2" }, "engines": { @@ -4637,21 +4698,21 @@ } }, "node_modules/@lerna/otplease": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/otplease/-/otplease-5.6.2.tgz", - "integrity": "sha512-dGS4lzkEQVTMAgji82jp8RK6UK32wlzrBAO4P4iiVHCUTuwNLsY9oeBXvVXSMrosJnl6Hbe0NOvi43mqSucGoA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/otplease/-/otplease-5.6.1.tgz", + "integrity": "sha512-MbS09KoDHDvsFpnwIYOZ3lu5+d/bDUm2jQ+kcJe7VH3P37t84OFRXmixSVjf1xpLuvoXbSZZsfDsYx9VkAdq4w==", "dev": true, "dependencies": { - "@lerna/prompt": "5.6.2" + "@lerna/prompt": "5.6.1" }, "engines": { "node": "^14.15.0 || >=16.0.0" } }, "node_modules/@lerna/output": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/output/-/output-5.6.2.tgz", - "integrity": "sha512-++d+bfOQwY66yo7q1XuAvRcqtRHCG45e/awP5xQomTZ6R1rhWiZ3whWdc9Z6lF7+UtBB9toSYYffKU/xc3L0yQ==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/output/-/output-5.6.1.tgz", + "integrity": "sha512-XEUvLn8jOVL63PRcjwSd8SdjAJvWLDDNpq75hBfemHHSpcfc7qlqqkXWs+Mz1C938rub8MtPUj7ImEUo12k1KQ==", "dev": true, "dependencies": { "npmlog": "^6.0.2" @@ -4661,15 +4722,15 @@ } }, "node_modules/@lerna/pack-directory": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-5.6.2.tgz", - "integrity": "sha512-w5Jk5fo+HkN4Le7WMOudTcmAymcf0xPd302TqAQncjXpk0cb8tZbj+5bbNHsGb58GRjOIm5icQbHXooQUxbHhA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-5.6.1.tgz", + "integrity": "sha512-vmkvD4LnYJhPps+I9t03pV02rnZak4gyAh/St1lj/OYV9ecRWQWOqWIFhffKOFHBes3Lxmha8FMSN2IOkG1BxQ==", "dev": true, "dependencies": { - "@lerna/get-packed": "5.6.2", - "@lerna/package": "5.6.2", - "@lerna/run-lifecycle": "5.6.2", - "@lerna/temp-write": "5.6.2", + "@lerna/get-packed": "5.6.1", + "@lerna/package": "5.6.1", + "@lerna/run-lifecycle": "5.6.1", + "@lerna/temp-write": "5.6.1", "npm-packlist": "^5.1.1", "npmlog": "^6.0.2", "tar": "^6.1.0" @@ -4679,9 +4740,9 @@ } }, "node_modules/@lerna/package": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/package/-/package-5.6.2.tgz", - "integrity": "sha512-LaOC8moyM5J9WnRiWZkedjOninSclBOJyPqhif6mHb2kCFX6jAroNYzE8KM4cphu8CunHuhI6Ixzswtv+Dultw==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/package/-/package-5.6.1.tgz", + "integrity": "sha512-QTWoRe/wTETDrF9ByhctmyZpFl+UmwSJJUcsTd2pUqvd5QaOd1twXwZdc5/1Rr08Yxl0PZqJCtZYJDcXce0eRg==", "dev": true, "dependencies": { "load-json-file": "^6.2.0", @@ -4693,13 +4754,13 @@ } }, "node_modules/@lerna/package-graph": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-5.6.2.tgz", - "integrity": "sha512-TmL61qBBvA3Tc4qICDirZzdFFwWOA6qicIXUruLiE2PblRowRmCO1bKrrP6XbDOspzwrkPef6N2F2/5gHQAnkQ==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-5.6.1.tgz", + "integrity": "sha512-R3ToEGzFy5x1Po/eoOy8vsM2x/zxR26bFewDLUDWbs5lWDC7ml5v44JqjfWB869M/XprN55yz2/VE5NhEB6QsQ==", "dev": true, "dependencies": { - "@lerna/prerelease-id-from-version": "5.6.2", - "@lerna/validation-error": "5.6.2", + "@lerna/prerelease-id-from-version": "5.6.1", + "@lerna/validation-error": "5.6.1", "npm-package-arg": "8.1.1", "npmlog": "^6.0.2", "semver": "^7.3.4" @@ -4708,18 +4769,6 @@ "node": "^14.15.0 || >=16.0.0" } }, - "node_modules/@lerna/package-graph/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@lerna/package-graph/node_modules/semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -4736,9 +4785,9 @@ } }, "node_modules/@lerna/prerelease-id-from-version": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-5.6.2.tgz", - "integrity": "sha512-7gIm9fecWFVNy2kpj/KbH11bRcpyANAwpsft3X5m6J7y7A6FTUscCbEvl3ZNdpQKHNuvnHgCtkm3A5PMSCEgkA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-5.6.1.tgz", + "integrity": "sha512-+ctzgoA1XAGbTQCeJjMEoQQCzCBW6WVAMVKNEOKrcsEVMb5gsKKSVha8WsKEzvK6gAC/x3pXemtuVWQvtYPw0Q==", "dev": true, "dependencies": { "semver": "^7.3.4" @@ -4747,18 +4796,6 @@ "node": "^14.15.0 || >=16.0.0" } }, - "node_modules/@lerna/prerelease-id-from-version/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@lerna/prerelease-id-from-version/node_modules/semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -4775,9 +4812,9 @@ } }, "node_modules/@lerna/profiler": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/profiler/-/profiler-5.6.2.tgz", - "integrity": "sha512-okwkagP5zyRIOYTceu/9/esW7UZFt7lyL6q6ZgpSG3TYC5Ay+FXLtS6Xiha/FQdVdumFqKULDWTGovzUlxcwaw==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/profiler/-/profiler-5.6.1.tgz", + "integrity": "sha512-HxY0hg5iHxPzyHvb7gVkZzUG+jJKZ1fErATcC53+kA7qOBTGlz2huZ8gU+rpX3SlTJGodnZ5FwHQvHD2bzkTZg==", "dev": true, "dependencies": { "fs-extra": "^9.1.0", @@ -4788,29 +4825,14 @@ "node": "^14.15.0 || >=16.0.0" } }, - "node_modules/@lerna/profiler/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@lerna/project": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/project/-/project-5.6.2.tgz", - "integrity": "sha512-kPIMcIy/0DVWM91FPMMFmXyAnCuuLm3NdhnA8NusE//VuY9wC6QC/3OwuCY39b2dbko/fPZheqKeAZkkMH6sGg==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/project/-/project-5.6.1.tgz", + "integrity": "sha512-GlM+b4pyImtegQztMRsLAkSPCYfmAqCqtgkffjXQS9tMjXnUBqu4+gW/uMBTTOD2CKf+Nikwjc602rpRaUQLyw==", "dev": true, "dependencies": { - "@lerna/package": "5.6.2", - "@lerna/validation-error": "5.6.2", + "@lerna/package": "5.6.1", + "@lerna/validation-error": "5.6.1", "cosmiconfig": "^7.0.0", "dedent": "^0.7.0", "dot-prop": "^6.0.1", @@ -4833,21 +4855,6 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/@lerna/project/node_modules/dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", - "dev": true, - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@lerna/project/node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -4861,9 +4868,9 @@ } }, "node_modules/@lerna/prompt": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/prompt/-/prompt-5.6.2.tgz", - "integrity": "sha512-4hTNmVYADEr0GJTMegWV+GW6n+dzKx1vN9v2ISqyle283Myv930WxuyO0PeYGqTrkneJsyPreCMovuEGCvZ0iQ==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/prompt/-/prompt-5.6.1.tgz", + "integrity": "sha512-CZSHV2yK6I6+35IKz7Fh3SeNSPR4XuCFXsW0RuauTZoNffk3mP2pOt/CrI1P6yOj7tqcyjghzzv1gkINtrq4/w==", "dev": true, "dependencies": { "inquirer": "^8.2.4", @@ -4874,30 +4881,30 @@ } }, "node_modules/@lerna/publish": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/publish/-/publish-5.6.2.tgz", - "integrity": "sha512-QaW0GjMJMuWlRNjeDCjmY/vjriGSWgkLS23yu8VKNtV5U3dt5yIKA3DNGV3HgZACuu45kQxzMDsfLzgzbGNtYA==", - "dev": true, - "dependencies": { - "@lerna/check-working-tree": "5.6.2", - "@lerna/child-process": "5.6.2", - "@lerna/collect-updates": "5.6.2", - "@lerna/command": "5.6.2", - "@lerna/describe-ref": "5.6.2", - "@lerna/log-packed": "5.6.2", - "@lerna/npm-conf": "5.6.2", - "@lerna/npm-dist-tag": "5.6.2", - "@lerna/npm-publish": "5.6.2", - "@lerna/otplease": "5.6.2", - "@lerna/output": "5.6.2", - "@lerna/pack-directory": "5.6.2", - "@lerna/prerelease-id-from-version": "5.6.2", - "@lerna/prompt": "5.6.2", - "@lerna/pulse-till-done": "5.6.2", - "@lerna/run-lifecycle": "5.6.2", - "@lerna/run-topologically": "5.6.2", - "@lerna/validation-error": "5.6.2", - "@lerna/version": "5.6.2", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/publish/-/publish-5.6.1.tgz", + "integrity": "sha512-J2zYyDGXs44YQ1h19933F9bm3fjog0gNpD27kL7Zw2nrMrR/LAuxNIFT/0ljtZSuMjlXllxZ7Kyxyz1gvMv3cA==", + "dev": true, + "dependencies": { + "@lerna/check-working-tree": "5.6.1", + "@lerna/child-process": "5.6.1", + "@lerna/collect-updates": "5.6.1", + "@lerna/command": "5.6.1", + "@lerna/describe-ref": "5.6.1", + "@lerna/log-packed": "5.6.1", + "@lerna/npm-conf": "5.6.1", + "@lerna/npm-dist-tag": "5.6.1", + "@lerna/npm-publish": "5.6.1", + "@lerna/otplease": "5.6.1", + "@lerna/output": "5.6.1", + "@lerna/pack-directory": "5.6.1", + "@lerna/prerelease-id-from-version": "5.6.1", + "@lerna/prompt": "5.6.1", + "@lerna/pulse-till-done": "5.6.1", + "@lerna/run-lifecycle": "5.6.1", + "@lerna/run-topologically": "5.6.1", + "@lerna/validation-error": "5.6.1", + "@lerna/version": "5.6.1", "fs-extra": "^9.1.0", "libnpmaccess": "^6.0.3", "npm-package-arg": "8.1.1", @@ -4912,33 +4919,6 @@ "node": "^14.15.0 || >=16.0.0" } }, - "node_modules/@lerna/publish/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@lerna/publish/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@lerna/publish/node_modules/semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -4955,9 +4935,9 @@ } }, "node_modules/@lerna/pulse-till-done": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-5.6.2.tgz", - "integrity": "sha512-eA/X1RCxU5YGMNZmbgPi+Kyfx1Q3bn4P9jo/LZy+/NRRr1po3ASXP2GJZ1auBh/9A2ELDvvKTOXCVHqczKC6rA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-5.6.1.tgz", + "integrity": "sha512-SCD1gCSkC4roOvCB0GTvnFrYVTLX7o9TXykyg5UTXb/XRMNqr9ZBFH7qZHJnleO9x3eMk1oh4W1rvfFIITyRjw==", "dev": true, "dependencies": { "npmlog": "^6.0.2" @@ -4967,21 +4947,21 @@ } }, "node_modules/@lerna/query-graph": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-5.6.2.tgz", - "integrity": "sha512-KRngr96yBP8XYDi9/U62fnGO+ZXqm04Qk6a2HtoTr/ha8QvO1s7Tgm0xs/G7qWXDQHZgunWIbmK/LhxM7eFQrw==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-5.6.1.tgz", + "integrity": "sha512-ySXS5Ur/GtrBOr+u5FZxrcH0xD3LsBSu68OEPNnMIAdt66AOhh6K4OXmc58biTN0sWAdnE43mulqA87bZH0aMg==", "dev": true, "dependencies": { - "@lerna/package-graph": "5.6.2" + "@lerna/package-graph": "5.6.1" }, "engines": { "node": "^14.15.0 || >=16.0.0" } }, "node_modules/@lerna/resolve-symlink": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-5.6.2.tgz", - "integrity": "sha512-PDQy+7M8JEFtwIVHJgWvSxHkxJf9zXCENkvIWDB+SsoDPhw9+caewt46bTeP5iGm9pOMu3oZukaWo/TvF7sNjg==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-5.6.1.tgz", + "integrity": "sha512-25TdowB5dIVycCJWyZGBDPSz6LoFOi/YRh85+dL1RrvxmvfiDwjrJ8P4eDl03/fDSV9YTFVYYmR8r1K2Vw8kQg==", "dev": true, "dependencies": { "fs-extra": "^9.1.0", @@ -4992,28 +4972,13 @@ "node": "^14.15.0 || >=16.0.0" } }, - "node_modules/@lerna/resolve-symlink/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@lerna/rimraf-dir": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-5.6.2.tgz", - "integrity": "sha512-jgEfzz7uBUiQKteq3G8MtJiA2D2VoKmZSSY3VSiW/tPOSXYxxSHxEsClQdCeNa6+sYrDNDT8fP6MJ3lPLjDeLA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-5.6.1.tgz", + "integrity": "sha512-1lm5FIiwFOpSzCMyNF90HX6NWHzDmY47TgDs07416B8ghMtZgb5aLMHi/aoarqWopn4X0ae3lxsZjUEOhSAWgA==", "dev": true, "dependencies": { - "@lerna/child-process": "5.6.2", + "@lerna/child-process": "5.6.1", "npmlog": "^6.0.2", "path-exists": "^4.0.0", "rimraf": "^3.0.2" @@ -5023,19 +4988,19 @@ } }, "node_modules/@lerna/run": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/run/-/run-5.6.2.tgz", - "integrity": "sha512-c2kJxdFrNg5KOkrhmgwKKUOsfSrGNlFCe26EttufOJ3xfY0VnXlEw9rHOkTgwtu7969rfCdyaVP1qckMrF1Dgw==", - "dev": true, - "dependencies": { - "@lerna/command": "5.6.2", - "@lerna/filter-options": "5.6.2", - "@lerna/npm-run-script": "5.6.2", - "@lerna/output": "5.6.2", - "@lerna/profiler": "5.6.2", - "@lerna/run-topologically": "5.6.2", - "@lerna/timer": "5.6.2", - "@lerna/validation-error": "5.6.2", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/run/-/run-5.6.1.tgz", + "integrity": "sha512-kb4hwnhth3GKWIxoNlA/xdDUWGbK67yx1aLEyZjssmMemxfSKxvqrNB+TaHAPSz27hyAKqnOL9Ym/YkAt7s59A==", + "dev": true, + "dependencies": { + "@lerna/command": "5.6.1", + "@lerna/filter-options": "5.6.1", + "@lerna/npm-run-script": "5.6.1", + "@lerna/output": "5.6.1", + "@lerna/profiler": "5.6.1", + "@lerna/run-topologically": "5.6.1", + "@lerna/timer": "5.6.1", + "@lerna/validation-error": "5.6.1", "fs-extra": "^9.1.0", "p-map": "^4.0.0" }, @@ -5044,12 +5009,12 @@ } }, "node_modules/@lerna/run-lifecycle": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-5.6.2.tgz", - "integrity": "sha512-u9gGgq/50Fm8dvfcc/TSHOCAQvzLD7poVanDMhHYWOAqRDnellJEEmA1K/Yka4vZmySrzluahkry9G6jcREt+g==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-5.6.1.tgz", + "integrity": "sha512-LkEvYDVYNX2mUY3PoNoDDBPDMofzNa5dHvAg7P2NVpffE41VbWBI0c0Q7uhN9nGuCksvsqamTffvmPdU9lCffA==", "dev": true, "dependencies": { - "@lerna/npm-conf": "5.6.2", + "@lerna/npm-conf": "5.6.1", "@npmcli/run-script": "^4.1.7", "npmlog": "^6.0.2", "p-queue": "^6.6.2" @@ -5059,41 +5024,26 @@ } }, "node_modules/@lerna/run-topologically": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-5.6.2.tgz", - "integrity": "sha512-QQ/jGOIsVvUg3izShWsd67RlWYh9UOH2yw97Ol1zySX9+JspCMVQrn9eKq1Pk8twQOFhT87LpT/aaxbTBgREPw==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-5.6.1.tgz", + "integrity": "sha512-UjOppd/1dSQxDfIjQIJOH+c/lLwuTKSNyd9uKhII11OnpO+gmBP1kvA65k1cm9EZVky63o7X9/O+oTB8Tr8C3g==", "dev": true, "dependencies": { - "@lerna/query-graph": "5.6.2", + "@lerna/query-graph": "5.6.1", "p-queue": "^6.6.2" }, "engines": { "node": "^14.15.0 || >=16.0.0" } }, - "node_modules/@lerna/run/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@lerna/symlink-binary": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-5.6.2.tgz", - "integrity": "sha512-Cth+miwYyO81WAmrQbPBrLHuF+F0UUc0el5kRXLH6j5zzaRS3kMM68r40M7MmfH8m3GPi7691UARoWFEotW5jw==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-5.6.1.tgz", + "integrity": "sha512-Y9x8gvvAP281467+QPwp56L6DDGdWtt24pREyWF7D+FIRcooJ29pn2C3B0rmzd5Ti63/6mrfCipUp9DXSWGwNg==", "dev": true, "dependencies": { - "@lerna/create-symlink": "5.6.2", - "@lerna/package": "5.6.2", + "@lerna/create-symlink": "5.6.1", + "@lerna/package": "5.6.1", "fs-extra": "^9.1.0", "p-map": "^4.0.0" }, @@ -5101,30 +5051,15 @@ "node": "^14.15.0 || >=16.0.0" } }, - "node_modules/@lerna/symlink-binary/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@lerna/symlink-dependencies": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-5.6.2.tgz", - "integrity": "sha512-dUVNQLEcjVOIQiT9OlSAKt0ykjyJPy8l9i4NJDe2/0XYaUjo8PWsxJ0vrutz27jzi2aZUy07ASmowQZEmnLHAw==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-5.6.1.tgz", + "integrity": "sha512-lKnJFbEpIdj9R70cpRor6vf3pxBnvk0RF7fwiTlWpF2BmlBYVihM+lML2vCts5G7ZBSQ9zTVyIqlCXG3qhyoxQ==", "dev": true, "dependencies": { - "@lerna/create-symlink": "5.6.2", - "@lerna/resolve-symlink": "5.6.2", - "@lerna/symlink-binary": "5.6.2", + "@lerna/create-symlink": "5.6.1", + "@lerna/resolve-symlink": "5.6.1", + "@lerna/symlink-binary": "5.6.1", "fs-extra": "^9.1.0", "p-map": "^4.0.0", "p-map-series": "^2.1.0" @@ -5133,25 +5068,10 @@ "node": "^14.15.0 || >=16.0.0" } }, - "node_modules/@lerna/symlink-dependencies/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@lerna/temp-write": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/temp-write/-/temp-write-5.6.2.tgz", - "integrity": "sha512-S5ZNVTurSwWBmc9kh5alfSjmO3+BnRT6shYtOlmVIUYqWeYVYA5C1Htj322bbU4CSNCMFK6NQl4qGKL17HMuig==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/temp-write/-/temp-write-5.6.1.tgz", + "integrity": "sha512-o0MOTsAfvMM8RC2o1wQ//F05hUd/cZJjBH8PKTrgXINDweW9VFey2fuUdL7TCpzgC4MUenL2x1nV6o8w87nFOQ==", "dev": true, "dependencies": { "graceful-fs": "^4.1.15", @@ -5162,18 +5082,18 @@ } }, "node_modules/@lerna/timer": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/timer/-/timer-5.6.2.tgz", - "integrity": "sha512-AjMOiLc2B+5Nzdd9hNORetAdZ/WK8YNGX/+2ypzM68TMAPfIT5C40hMlSva9Yg4RsBz22REopXgM5s2zQd5ZQA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/timer/-/timer-5.6.1.tgz", + "integrity": "sha512-MALjTi1KuYZeRPH18xttlJb6+BLAcVuwGIsSYHBREkuXdRwW1oEcnnN5xzGsMGpG0KRxWu5wgNgc94aH/MCz6A==", "dev": true, "engines": { "node": "^14.15.0 || >=16.0.0" } }, "node_modules/@lerna/validation-error": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-5.6.2.tgz", - "integrity": "sha512-4WlDUHaa+RSJNyJRtX3gVIAPVzjZD2tle8AJ0ZYBfdZnZmG0VlB2pD1FIbOQPK8sY2h5m0cHLRvfLoLncqHvdQ==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-5.6.1.tgz", + "integrity": "sha512-0Kl9SmRb72bcXANdRO3fjuz+hHhHL9AEl/exCGODaT+PYAC+xH717Xj2ts/1u4qNuLlsQEE6+iVhAAMLUv86CA==", "dev": true, "dependencies": { "npmlog": "^6.0.2" @@ -5183,25 +5103,25 @@ } }, "node_modules/@lerna/version": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/version/-/version-5.6.2.tgz", - "integrity": "sha512-odNSR2rTbHW++xMZSQKu/F6Syrd/sUvwDLPaMKktoOSPKmycHt/eWcuQQyACdtc43Iqeu4uQd7PCLsniqOVFrw==", - "dev": true, - "dependencies": { - "@lerna/check-working-tree": "5.6.2", - "@lerna/child-process": "5.6.2", - "@lerna/collect-updates": "5.6.2", - "@lerna/command": "5.6.2", - "@lerna/conventional-commits": "5.6.2", - "@lerna/github-client": "5.6.2", - "@lerna/gitlab-client": "5.6.2", - "@lerna/output": "5.6.2", - "@lerna/prerelease-id-from-version": "5.6.2", - "@lerna/prompt": "5.6.2", - "@lerna/run-lifecycle": "5.6.2", - "@lerna/run-topologically": "5.6.2", - "@lerna/temp-write": "5.6.2", - "@lerna/validation-error": "5.6.2", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/version/-/version-5.6.1.tgz", + "integrity": "sha512-s9WIzduXOxeLH2Vu0T2HLBe1ICd9gxUsB3tlUyQveIAGE5wBuTAIL3nGQ3ljImPzFnriPqcS0xa5PC2DaW9JLA==", + "dev": true, + "dependencies": { + "@lerna/check-working-tree": "5.6.1", + "@lerna/child-process": "5.6.1", + "@lerna/collect-updates": "5.6.1", + "@lerna/command": "5.6.1", + "@lerna/conventional-commits": "5.6.1", + "@lerna/github-client": "5.6.1", + "@lerna/gitlab-client": "5.6.1", + "@lerna/output": "5.6.1", + "@lerna/prerelease-id-from-version": "5.6.1", + "@lerna/prompt": "5.6.1", + "@lerna/run-lifecycle": "5.6.1", + "@lerna/run-topologically": "5.6.1", + "@lerna/temp-write": "5.6.1", + "@lerna/validation-error": "5.6.1", "@nrwl/devkit": ">=14.8.1 < 16", "chalk": "^4.1.0", "dedent": "^0.7.0", @@ -5278,18 +5198,6 @@ "node": ">=8" } }, - "node_modules/@lerna/version/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@lerna/version/node_modules/semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -5318,9 +5226,9 @@ } }, "node_modules/@lerna/write-log-file": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-5.6.2.tgz", - "integrity": "sha512-J09l18QnWQ3sXIRwuJkjXY3+KwPR2uO5NgbZGE3GXJK1V/LzOBRMvjGAIbuQHXw25uqe7vpLUpB8drtnFrubCQ==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-5.6.1.tgz", + "integrity": "sha512-wvgkL/tMozHbW6EkCFH7yLhLh5D3djRuwREsn5ptZxcCcay1RQjraON18yMX06mwsPfbpDItMH4D68q1dMSk5w==", "dev": true, "dependencies": { "npmlog": "^6.0.2", @@ -5343,15 +5251,6 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", - "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", - "dev": true, - "dependencies": { - "eslint-scope": "5.1.1" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -5435,10 +5334,102 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/@npmcli/arborist/node_modules/@npmcli/fs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", + "dev": true, + "dependencies": { + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@npmcli/arborist/node_modules/@npmcli/move-file": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", + "dev": true, + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@npmcli/arborist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@npmcli/arborist/node_modules/cacache": { + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", + "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", + "dev": true, + "dependencies": { + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@npmcli/arborist/node_modules/cacache/node_modules/lru-cache": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", + "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@npmcli/arborist/node_modules/glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@npmcli/arborist/node_modules/hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", "dev": true, "dependencies": { "lru-cache": "^7.5.1" @@ -5447,6 +5438,39 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/@npmcli/arborist/node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", + "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@npmcli/arborist/node_modules/minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/arborist/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@npmcli/arborist/node_modules/npm-package-arg": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", @@ -5477,56 +5501,40 @@ "node": ">=10" } }, - "node_modules/@npmcli/arborist/node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", - "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", + "node_modules/@npmcli/arborist/node_modules/ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", "dev": true, "dependencies": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" + "minipass": "^3.1.1" }, "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/@npmcli/fs/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/@npmcli/arborist/node_modules/unique-filename": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", + "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "unique-slug": "^3.0.0" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/@npmcli/fs/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "node_modules/@npmcli/arborist/node_modules/unique-slug": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", + "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "imurmurhash": "^0.1.4" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/@npmcli/git": { @@ -5549,6 +5557,27 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", + "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@npmcli/git/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@npmcli/git/node_modules/semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -5636,9 +5665,9 @@ } }, "node_modules/@npmcli/map-workspaces/node_modules/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -5662,13 +5691,117 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/@npmcli/metavuln-calculator/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/@npmcli/metavuln-calculator/node_modules/@npmcli/fs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@npmcli/metavuln-calculator/node_modules/@npmcli/move-file": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", + "dev": true, + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@npmcli/metavuln-calculator/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@npmcli/metavuln-calculator/node_modules/cacache": { + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", + "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", + "dev": true, + "dependencies": { + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@npmcli/metavuln-calculator/node_modules/cacache/node_modules/lru-cache": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", + "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@npmcli/metavuln-calculator/node_modules/glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@npmcli/metavuln-calculator/node_modules/minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/metavuln-calculator/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" }, "engines": { "node": ">=10" @@ -5689,15 +5822,37 @@ "node": ">=10" } }, - "node_modules/@npmcli/move-file": { + "node_modules/@npmcli/metavuln-calculator/node_modules/ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@npmcli/metavuln-calculator/node_modules/unique-filename": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "deprecated": "This functionality has been moved to @npmcli/fs", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", + "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", "dev": true, "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" + "unique-slug": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@npmcli/metavuln-calculator/node_modules/unique-slug": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", + "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" }, "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" @@ -5759,64 +5914,42 @@ } }, "node_modules/@nrwl/cli": { - "version": "14.8.6", - "resolved": "https://registry.npmjs.org/@nrwl/cli/-/cli-14.8.6.tgz", - "integrity": "sha512-R4udxekMd4jhoRPEksJu+224DocOIrAqenFo0D2R36epE5FaCnZQX7xg+b3TjRbdS10e426i4D9LuXdQmP5jJg==", + "version": "14.8.3", + "resolved": "https://registry.npmjs.org/@nrwl/cli/-/cli-14.8.3.tgz", + "integrity": "sha512-a8URAbqyZvegXMYU8pCA3Hfv0UdiDJc6HboazxinCJJgZWyqKYxRIWmKiWnfpXsr+qF6ntmBR/tC6yHbOL22gQ==", "dev": true, "dependencies": { - "nx": "14.8.6" + "nx": "14.8.3" } }, "node_modules/@nrwl/devkit": { - "version": "15.3.3", - "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-15.3.3.tgz", - "integrity": "sha512-48R9HAp6r6umWNXTlVTMsH94YYjU/XUPLDTtXBgKESMVbdq8Fk+HDHuN0thXG5dL6DFkXgD0MICLm3jSQU6xMw==", + "version": "14.8.3", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-14.8.3.tgz", + "integrity": "sha512-jEH+oKS4F4MJvoIe0Zw6zUODO2j2ib7f+62D4lMDKl5qopcgnKyU9rVnSCDolqCH81j326dfr8b7FfE6Z7p71A==", "dev": true, "dependencies": { "@phenomnomnominal/tsquery": "4.1.1", "ejs": "^3.1.7", "ignore": "^5.0.4", - "semver": "7.3.4", "tslib": "^2.3.0" }, "peerDependencies": { - "nx": ">= 14 <= 16" - } - }, - "node_modules/@nrwl/devkit/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "nx": ">= 13.10 <= 15" } }, - "node_modules/@nrwl/devkit/node_modules/semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } + "node_modules/@nrwl/devkit/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true }, "node_modules/@nrwl/nx-cloud": { - "version": "15.0.2", - "resolved": "https://registry.npmjs.org/@nrwl/nx-cloud/-/nx-cloud-15.0.2.tgz", - "integrity": "sha512-DaTASuXmGyQHMxJuK6y3f7fs+Q0qQCfYDIDVGK9muNwN/QItLeWdRNltLQxbrBeS112kQTu2FPsr0DmRD60+0A==", + "version": "14.7.0", + "resolved": "https://registry.npmjs.org/@nrwl/nx-cloud/-/nx-cloud-14.7.0.tgz", + "integrity": "sha512-sEGK5Ire5DC2liIsT89qR6SzZa46uinmWEAMz8ocMuu7nIMnwV9m15qajxhmYKasYsq9vTeT+x7BlZ4fnxPrNg==", "dev": true, "dependencies": { - "axios": "^0.21.2", + "axios": "^0.21.1", "chalk": "4.1.0", "dotenv": "~10.0.0", "fs-extra": "^10.1.0", @@ -5887,6 +6020,20 @@ "node": ">=10" } }, + "node_modules/@nrwl/nx-cloud/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@nrwl/nx-cloud/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -5908,41 +6055,59 @@ "node": ">=8" } }, + "node_modules/@nrwl/nx-cloud/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@nrwl/nx-cloud/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/@nrwl/tao": { - "version": "14.8.6", - "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-14.8.6.tgz", - "integrity": "sha512-CByqrsfSJeonOd7TLAHP8bRYNWgDksxA7j+yncSzgQnFLEbZdJGG/AqqIovx8g6g2v0JS+nRgGC+w5UPf04UrQ==", + "version": "14.8.3", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-14.8.3.tgz", + "integrity": "sha512-lN7+1biSM/7PYMMgh3jjOXJ9fe6VjhVrtZsDcB6lcklpShjXfHXqlpXDM7vjlw19aLeZMdFWHFoU2C5BTBtzgQ==", "dev": true, "dependencies": { - "nx": "14.8.6" + "nx": "14.8.3" }, "bin": { "tao": "index.js" } }, "node_modules/@octokit/auth-token": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.2.tgz", - "integrity": "sha512-pq7CwIMV1kmzkFTimdwjAINCXKTajZErLB4wMLYapR2nuB/Jpr66+05wOTZMSCBXP6n4DdDWT2W19Bm17vU69Q==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.1.tgz", + "integrity": "sha512-/USkK4cioY209wXRpund6HZzHo9GmjakpV9ycOkpMcMxMk7QVcVFVyCMtzvXYiHsB2crgDgrtNYSELYFBXhhaA==", "dev": true, "dependencies": { - "@octokit/types": "^8.0.0" + "@octokit/types": "^7.0.0" }, "engines": { "node": ">= 14" } }, "node_modules/@octokit/core": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.1.0.tgz", - "integrity": "sha512-Czz/59VefU+kKDy+ZfDwtOIYIkFjExOKf+HA92aiTZJ6EfWpFzYQWw0l54ji8bVmyhc+mGaLUbSUmXazG7z5OQ==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.0.5.tgz", + "integrity": "sha512-4R3HeHTYVHCfzSAi0C6pbGXV8UDI5Rk+k3G7kLVNckswN9mvpOzW9oENfjfH3nEmzg8y3AmKmzs8Sg6pLCeOCA==", "dev": true, "dependencies": { "@octokit/auth-token": "^3.0.0", "@octokit/graphql": "^5.0.0", "@octokit/request": "^6.0.0", "@octokit/request-error": "^3.0.0", - "@octokit/types": "^8.0.0", + "@octokit/types": "^7.0.0", "before-after-hook": "^2.2.0", "universal-user-agent": "^6.0.0" }, @@ -5951,12 +6116,12 @@ } }, "node_modules/@octokit/endpoint": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.3.tgz", - "integrity": "sha512-57gRlb28bwTsdNXq+O3JTQ7ERmBTuik9+LelgcLIVfYwf235VHbN9QNo4kXExtp/h8T423cR5iJThKtFYxC7Lw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.2.tgz", + "integrity": "sha512-8/AUACfE9vpRpehE6ZLfEtzkibe5nfsSwFZVMsG8qabqRt1M81qZYUFRZa1B8w8lP6cdfDJfRq9HWS+MbmR7tw==", "dev": true, "dependencies": { - "@octokit/types": "^8.0.0", + "@octokit/types": "^7.0.0", "is-plain-object": "^5.0.0", "universal-user-agent": "^6.0.0" }, @@ -5965,13 +6130,13 @@ } }, "node_modules/@octokit/graphql": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.4.tgz", - "integrity": "sha512-amO1M5QUQgYQo09aStR/XO7KAl13xpigcy/kI8/N1PnZYSS69fgte+xA4+c2DISKqUZfsh0wwjc2FaCt99L41A==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.1.tgz", + "integrity": "sha512-sxmnewSwAixkP1TrLdE6yRG53eEhHhDTYUykUwdV9x8f91WcbhunIHk9x1PZLALdBZKRPUO2HRcm4kezZ79HoA==", "dev": true, "dependencies": { "@octokit/request": "^6.0.0", - "@octokit/types": "^8.0.0", + "@octokit/types": "^7.0.0", "universal-user-agent": "^6.0.0" }, "engines": { @@ -5979,9 +6144,9 @@ } }, "node_modules/@octokit/openapi-types": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-14.0.0.tgz", - "integrity": "sha512-HNWisMYlR8VCnNurDU6os2ikx0s0VyEjDYHNS/h4cgb8DeOxQ0n72HyinUtdDVxJhFy3FWLGl0DJhfEWk3P5Iw==", + "version": "13.13.1", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-13.13.1.tgz", + "integrity": "sha512-4EuKSk3N95UBWFau3Bz9b3pheQ8jQYbKmBL5+GSuY8YDPDwu03J4BjI+66yNi8aaX/3h1qDpb0mbBkLdr+cfGQ==", "dev": true }, "node_modules/@octokit/plugin-enterprise-rest": { @@ -5991,12 +6156,12 @@ "dev": true }, "node_modules/@octokit/plugin-paginate-rest": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-5.0.1.tgz", - "integrity": "sha512-7A+rEkS70pH36Z6JivSlR7Zqepz3KVucEFVDnSrgHXzG7WLAzYwcHZbKdfTXHwuTHbkT1vKvz7dHl1+HNf6Qyw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-4.3.1.tgz", + "integrity": "sha512-h8KKxESmSFTcXX409CAxlaOYscEDvN2KGQRsLCGT1NSqRW+D6EXLVQ8vuHhFznS9MuH9QYw1GfsUN30bg8hjVA==", "dev": true, "dependencies": { - "@octokit/types": "^8.0.0" + "@octokit/types": "^7.5.0" }, "engines": { "node": ">= 14" @@ -6015,12 +6180,12 @@ } }, "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.7.0.tgz", - "integrity": "sha512-orxQ0fAHA7IpYhG2flD2AygztPlGYNAdlzYz8yrD8NDgelPfOYoRPROfEyIe035PlxvbYrgkfUZIhSBKju/Cvw==", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.6.2.tgz", + "integrity": "sha512-n9dL5KMpz9qVFSNdcVWC8ZPbl68QbTk7+CMPXCXqaMZOLn1n1YuoSFFCy84Ge0fx333fUqpnBHv8BFjwGtUQkA==", "dev": true, "dependencies": { - "@octokit/types": "^8.0.0", + "@octokit/types": "^7.5.0", "deprecation": "^2.3.1" }, "engines": { @@ -6031,14 +6196,14 @@ } }, "node_modules/@octokit/request": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.2.tgz", - "integrity": "sha512-6VDqgj0HMc2FUX2awIs+sM6OwLgwHvAi4KCK3mT2H2IKRt6oH9d0fej5LluF5mck1lRR/rFWN0YIDSYXYSylbw==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.1.tgz", + "integrity": "sha512-gYKRCia3cpajRzDSU+3pt1q2OcuC6PK8PmFIyxZDWCzRXRSIBH8jXjFJ8ZceoygBIm0KsEUg4x1+XcYBz7dHPQ==", "dev": true, "dependencies": { "@octokit/endpoint": "^7.0.0", "@octokit/request-error": "^3.0.0", - "@octokit/types": "^8.0.0", + "@octokit/types": "^7.0.0", "is-plain-object": "^5.0.0", "node-fetch": "^2.6.7", "universal-user-agent": "^6.0.0" @@ -6048,12 +6213,12 @@ } }, "node_modules/@octokit/request-error": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.2.tgz", - "integrity": "sha512-WMNOFYrSaX8zXWoJg9u/pKgWPo94JXilMLb2VManNOby9EZxrQaBe/QSC4a1TzpAlpxofg2X/jMnCyZgL6y7eg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.1.tgz", + "integrity": "sha512-ym4Bp0HTP7F3VFssV88WD1ZyCIRoE8H35pXSKwLeMizcdZAYc/t6N9X9Yr9n6t3aG9IH75XDnZ6UeZph0vHMWQ==", "dev": true, "dependencies": { - "@octokit/types": "^8.0.0", + "@octokit/types": "^7.0.0", "deprecation": "^2.0.0", "once": "^1.4.0" }, @@ -6062,27 +6227,27 @@ } }, "node_modules/@octokit/rest": { - "version": "19.0.5", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.5.tgz", - "integrity": "sha512-+4qdrUFq2lk7Va+Qff3ofREQWGBeoTKNqlJO+FGjFP35ZahP+nBenhZiGdu8USSgmq4Ky3IJ/i4u0xbLqHaeow==", + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.4.tgz", + "integrity": "sha512-LwG668+6lE8zlSYOfwPj4FxWdv/qFXYBpv79TWIQEpBLKA9D/IMcWsF/U9RGpA3YqMVDiTxpgVpEW3zTFfPFTA==", "dev": true, "dependencies": { - "@octokit/core": "^4.1.0", - "@octokit/plugin-paginate-rest": "^5.0.0", + "@octokit/core": "^4.0.0", + "@octokit/plugin-paginate-rest": "^4.0.0", "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^6.7.0" + "@octokit/plugin-rest-endpoint-methods": "^6.0.0" }, "engines": { "node": ">= 14" } }, "node_modules/@octokit/types": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-8.0.0.tgz", - "integrity": "sha512-65/TPpOJP1i3K4lBJMnWqPUJ6zuOtzhtagDvydAWbEXpbFYA0oMKKyLb95NFZZP0lSh/4b6K+DQlzvYQJQQePg==", + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-7.5.1.tgz", + "integrity": "sha512-Zk4OUMLCSpXNI8KZZn47lVLJSsgMyCimsWWQI5hyjZg7hdYm0kjotaIkbG0Pp8SfU2CofMBzonboTqvzn3FrJA==", "dev": true, "dependencies": { - "@octokit/openapi-types": "^14.0.0" + "@octokit/openapi-types": "^13.11.0" } }, "node_modules/@parcel/watcher": { @@ -6116,9 +6281,9 @@ } }, "node_modules/@sinonjs/commons": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", - "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", "dev": true, "dependencies": { "type-detect": "4.0.8" @@ -6133,38 +6298,10 @@ "@sinonjs/commons": "^1.7.0" } }, - "node_modules/@stylelint/postcss-css-in-js": { - "version": "0.37.3", - "resolved": "https://registry.npmjs.org/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.3.tgz", - "integrity": "sha512-scLk3cSH1H9KggSniseb2KNAU5D9FWc3H7BxCSAIdtU9OWIyw0zkEZ9qEKHryRM+SExYXRKNb7tOOVNAsQ3iwg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.17.9" - }, - "peerDependencies": { - "postcss": ">=7.0.0", - "postcss-syntax": ">=0.36.2" - } - }, - "node_modules/@stylelint/postcss-markdown": { - "version": "0.36.2", - "resolved": "https://registry.npmjs.org/@stylelint/postcss-markdown/-/postcss-markdown-0.36.2.tgz", - "integrity": "sha512-2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ==", - "deprecated": "Use the original unforked package instead: postcss-markdown", - "dev": true, - "dependencies": { - "remark": "^13.0.0", - "unist-util-find-all-after": "^3.0.2" - }, - "peerDependencies": { - "postcss": ">=7.0.0", - "postcss-syntax": ">=0.36.2" - } - }, "node_modules/@testing-library/dom": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.19.0.tgz", - "integrity": "sha512-6YWYPPpxG3e/xOo6HIWwB/58HukkwIVTOaZ0VwdMVjhRUX/01E4FtQbck9GazOOj7MXHc5RBzMrU86iBJHbI+A==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.11.3.tgz", + "integrity": "sha512-9LId28I+lx70wUiZjLvi1DB/WT2zGOxUh46glrSNMaWVx849kKAluezVzZrXJfTKKoQTmEOutLes/bHg4Bj3aA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.10.4", @@ -6251,16 +6388,16 @@ } }, "node_modules/@testing-library/jest-dom": { - "version": "5.16.5", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz", - "integrity": "sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==", + "version": "5.16.2", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.2.tgz", + "integrity": "sha512-6ewxs1MXWwsBFZXIk4nKKskWANelkdUehchEOokHsN8X7c2eKXGw+77aRV63UU8f/DTSVUPLaGxdrj4lN7D/ug==", "dev": true, "dependencies": { - "@adobe/css-tools": "^4.0.1", "@babel/runtime": "^7.9.2", "@types/testing-library__jest-dom": "^5.9.1", "aria-query": "^5.0.0", "chalk": "^3.0.0", + "css": "^3.0.0", "css.escape": "^1.5.1", "dom-accessibility-api": "^0.5.6", "lodash": "^4.17.15", @@ -6340,41 +6477,20 @@ } }, "node_modules/@testing-library/react": { - "version": "12.1.5", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-12.1.5.tgz", - "integrity": "sha512-OfTXCJUFgjd/digLUuPxa0+/3ZxsQmE7ub9kcbW/wi96Bh3o/p5vrETcBGfP17NWPGqeYYl5LTRpwyGoMC4ysg==", + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-12.1.2.tgz", + "integrity": "sha512-ihQiEOklNyHIpo2Y8FREkyD1QAea054U0MVbwH1m8N9TxeFz+KoJ9LkqoKqJlzx2JDm56DVwaJ1r36JYxZM05g==", "dev": true, "dependencies": { "@babel/runtime": "^7.12.5", - "@testing-library/dom": "^8.0.0", - "@types/react-dom": "<18.0.0" + "@testing-library/dom": "^8.0.0" }, "engines": { "node": ">=12" }, "peerDependencies": { - "react": "<18.0.0", - "react-dom": "<18.0.0" - } - }, - "node_modules/@testing-library/react/node_modules/@types/react": { - "version": "17.0.52", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.52.tgz", - "integrity": "sha512-vwk8QqVODi0VaZZpDXQCmEmiOuyjEFPY7Ttaw5vjM112LOq37yz1CDJGrRJwA1fYEq4Iitd5rnjd1yWAc/bT+A==", - "dev": true, - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@testing-library/react/node_modules/@types/react-dom": { - "version": "17.0.18", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.18.tgz", - "integrity": "sha512-rLVtIfbwyur2iFKykP2w0pl/1unw26b5td16d5xMgp7/yjTHomkyxPYChFoCr/FtEX1lN9wY6lFj1qvKdS5kDw==", - "dev": true, - "dependencies": { - "@types/react": "^17" + "react": "*", + "react-dom": "*" } }, "node_modules/@testing-library/user-event": { @@ -6433,9 +6549,9 @@ "dev": true }, "node_modules/@types/babel__core": { - "version": "7.1.20", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz", - "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==", + "version": "7.1.18", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz", + "integrity": "sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ==", "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0", @@ -6462,9 +6578,9 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", - "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", + "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", "dependencies": { "@babel/types": "^7.3.0" } @@ -6480,9 +6596,9 @@ } }, "node_modules/@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", "dev": true, "peer": true, "dependencies": { @@ -6491,9 +6607,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", - "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", "dev": true }, "node_modules/@types/graceful-fs": { @@ -6532,25 +6648,119 @@ } }, "node_modules/@types/jest": { - "version": "27.5.2", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.2.tgz", - "integrity": "sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==", + "version": "27.5.0", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.0.tgz", + "integrity": "sha512-9RBFx7r4k+msyj/arpfaa0WOOEcaAZNmN+j80KFbFCoSqCJGHTz7YMAMGQW9Xmqm5w6l5c25vbSjMwlikJi5+g==", "dev": true, "dependencies": { "jest-matcher-utils": "^27.0.0", "pretty-format": "^27.0.0" } }, + "node_modules/@types/jest/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" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@types/jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@types/jest/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/@types/jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@types/jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@types/jest/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@types/jest/node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@types/jest/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/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", "dev": true }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", "dev": true }, "node_modules/@types/mdast": { @@ -6575,9 +6785,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "17.0.45", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", - "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.32.tgz", + "integrity": "sha512-eAIcfAvhf/BkHcf4pkLJ7ECpBAhh9kcxRBpip9cTiO+hf+aJrsxYxBeS6OXvOd9WqNAJmavXVpZvY1rBjNsXmw==" }, "node_modules/@types/normalize-package-data": { "version": "2.4.1", @@ -6592,20 +6802,20 @@ "dev": true }, "node_modules/@types/prettier": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", - "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.4.tgz", + "integrity": "sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA==", "dev": true }, "node_modules/@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + "version": "15.7.4", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", + "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==" }, "node_modules/@types/react": { - "version": "18.0.26", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.26.tgz", - "integrity": "sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==", + "version": "18.0.9", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.9.tgz", + "integrity": "sha512-9bjbg1hJHUm4De19L1cHiW0Jvx3geel6Qczhjd0qY5VKVE2X5+x77YxAepuCwVh4vrgZJdgEJw48zrhRIeF4Nw==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -6613,18 +6823,18 @@ } }, "node_modules/@types/react-dom": { - "version": "18.0.9", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.9.tgz", - "integrity": "sha512-qnVvHxASt/H7i+XG1U1xMiY5t+IHcPGUK7TDMDzom08xa7e86eCeKOiLZezwCKVxJn6NEiiy2ekgX8aQssjIKg==", + "version": "18.0.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.3.tgz", + "integrity": "sha512-1RRW9kst+67gveJRYPxGmVy8eVJ05O43hg77G2j5m76/RFJtMbcfAs2viQ2UNsvvDg8F7OfQZx8qQcl6ymygaQ==", "dev": true, "dependencies": { "@types/react": "*" } }, "node_modules/@types/react-router": { - "version": "5.1.19", - "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.19.tgz", - "integrity": "sha512-Fv/5kb2STAEMT3wHzdKQK2z8xKq38EDIGVrutYLmQVVLe+4orDFquU52hQrULnEHinMKv9FSA6lf9+uNT1ITtA==", + "version": "5.1.18", + "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.18.tgz", + "integrity": "sha512-YYknwy0D0iOwKQgz9v8nOzt2J6l4gouBmDnWqUUznltOTaon+r8US8ky8HvN0tXvc38U9m6z/t2RsVsnd1zM0g==", "dev": true, "dependencies": { "@types/history": "^4.7.11", @@ -6643,9 +6853,9 @@ } }, "node_modules/@types/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.4.tgz", + "integrity": "sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==", "dependencies": { "@types/react": "*" } @@ -6661,9 +6871,9 @@ } }, "node_modules/@types/react-virtualized/node_modules/@types/react": { - "version": "17.0.52", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.52.tgz", - "integrity": "sha512-vwk8QqVODi0VaZZpDXQCmEmiOuyjEFPY7Ttaw5vjM112LOq37yz1CDJGrRJwA1fYEq4Iitd5rnjd1yWAc/bT+A==", + "version": "17.0.50", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.50.tgz", + "integrity": "sha512-ZCBHzpDb5skMnc1zFXAXnL3l1FAdi+xZvwxK+PkglMmBrwjpp9nKaWuEvrGnSifCJmBFGxZOOFuwC6KH/s0NuA==", "dev": true, "dependencies": { "@types/prop-types": "*", @@ -6676,12 +6886,6 @@ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" }, - "node_modules/@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", - "dev": true - }, "node_modules/@types/stack-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", @@ -6689,9 +6893,9 @@ "dev": true }, "node_modules/@types/testing-library__jest-dom": { - "version": "5.14.5", - "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz", - "integrity": "sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ==", + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.2.tgz", + "integrity": "sha512-vehbtyHUShPxIa9SioxDwCvgxukDMH//icJG90sXQBUm5lJOHLT5kNeU9tnivhnA/TkOFMzGIXN2cTc4hY8/kg==", "dev": true, "dependencies": { "@types/jest": "*" @@ -6713,24 +6917,24 @@ } }, "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" + "version": "20.2.1", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", + "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.47.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.47.0.tgz", - "integrity": "sha512-AHZtlXAMGkDmyLuLZsRpH3p4G/1iARIwc/T0vIem2YB+xW6pZaXYXzCBnZSF/5fdM97R9QqZWZ+h3iW10XgevQ==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.11.0.tgz", + "integrity": "sha512-HJh33bgzXe6jGRocOj4FmefD7hRY4itgjzOrSs3JPrTNXsX7j5+nQPciAUj/1nZtwo2kAc3C75jZO+T23gzSGw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.47.0", - "@typescript-eslint/type-utils": "5.47.0", - "@typescript-eslint/utils": "5.47.0", - "debug": "^4.3.4", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", + "@typescript-eslint/scope-manager": "5.11.0", + "@typescript-eslint/type-utils": "5.11.0", + "@typescript-eslint/utils": "5.11.0", + "debug": "^4.3.2", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", "regexpp": "^3.2.0", - "semver": "^7.3.7", + "semver": "^7.3.5", "tsutils": "^3.21.0" }, "engines": { @@ -6750,22 +6954,87 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.11.0.tgz", + "integrity": "sha512-wDqdsYO6ofLaD4DsGZ0jGwxp4HrzD2YKulpEZXmgN3xo4BHJwf7kq49JTRpV0Gx6bxkSUmc9s0EIK1xPbFFpIA==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "@typescript-eslint/utils": "5.11.0", + "debug": "^4.3.2", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.11.0.tgz", + "integrity": "sha512-g2I480tFE1iYRDyMhxPAtLQ9HAn0jjBtipgTCZmd9I9s11OV8CTsG+YfFciuNDcHqm4csbAgC2aVZCHzLxMSUw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.11.0", + "@typescript-eslint/types": "5.11.0", + "@typescript-eslint/typescript-estree": "5.11.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils/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/@typescript-eslint/eslint-plugin/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/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -6875,22 +7144,37 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/experimental-utils/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/@typescript-eslint/experimental-utils/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": { - "yallist": "^4.0.0" + "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/@typescript-eslint/experimental-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/@typescript-eslint/experimental-utils/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -6903,15 +7187,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.47.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.47.0.tgz", - "integrity": "sha512-udPU4ckK+R1JWCGdQC4Qa27NtBg7w020ffHqGyAK8pAgOVuNw7YaKXGChk+udh+iiGIJf6/E/0xhVXyPAbsczw==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.11.0.tgz", + "integrity": "sha512-x0DCjetHZYBRovJdr3U0zG9OOdNXUaFLJ82ehr1AlkArljJuwEsgnud+Q7umlGDFLFrs8tU8ybQDFocp/eX8mQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.47.0", - "@typescript-eslint/types": "5.47.0", - "@typescript-eslint/typescript-estree": "5.47.0", - "debug": "^4.3.4" + "@typescript-eslint/scope-manager": "5.11.0", + "@typescript-eslint/types": "5.11.0", + "@typescript-eslint/typescript-estree": "5.11.0", + "debug": "^4.3.2" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -6930,13 +7214,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.47.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.47.0.tgz", - "integrity": "sha512-dvJab4bFf7JVvjPuh3sfBUWsiD73aiftKBpWSfi3sUkysDQ4W8x+ZcFpNp7Kgv0weldhpmMOZBjx1wKN8uWvAw==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.11.0.tgz", + "integrity": "sha512-z+K4LlahDFVMww20t/0zcA7gq/NgOawaLuxgqGRVKS0PiZlCTIUtX0EJbC0BK1JtR4CelmkPK67zuCgpdlF4EA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.47.0", - "@typescript-eslint/visitor-keys": "5.47.0" + "@typescript-eslint/types": "5.11.0", + "@typescript-eslint/visitor-keys": "5.11.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -6946,37 +7230,10 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.47.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.47.0.tgz", - "integrity": "sha512-1J+DFFrYoDUXQE1b7QjrNGARZE6uVhBqIvdaXTe5IN+NmEyD68qXR1qX1g2u4voA+nCaelQyG8w30SAOihhEYg==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "5.47.0", - "@typescript-eslint/utils": "5.47.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, "node_modules/@typescript-eslint/types": { - "version": "5.47.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.47.0.tgz", - "integrity": "sha512-eslFG0Qy8wpGzDdYKu58CEr3WLkjwC5Usa6XbuV89ce/yN5RITLe1O8e+WFEuxnfftHiJImkkOBADj58ahRxSg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.11.0.tgz", + "integrity": "sha512-cxgBFGSRCoBEhvSVLkKw39+kMzUKHlJGVwwMbPcTZX3qEhuXhrjwaZXWMxVfxDgyMm+b5Q5b29Llo2yow8Y7xQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -6987,17 +7244,17 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.47.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.47.0.tgz", - "integrity": "sha512-LxfKCG4bsRGq60Sqqu+34QT5qT2TEAHvSCCJ321uBWywgE2dS0LKcu5u+3sMGo+Vy9UmLOhdTw5JHzePV/1y4Q==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.11.0.tgz", + "integrity": "sha512-yVH9hKIv3ZN3lw8m/Jy5I4oXO4ZBMqijcXCdA4mY8ull6TPTAoQnKKrcZ0HDXg7Bsl0Unwwx7jcXMuNZc0m4lg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.47.0", - "@typescript-eslint/visitor-keys": "5.47.0", - "debug": "^4.3.4", - "globby": "^11.1.0", + "@typescript-eslint/types": "5.11.0", + "@typescript-eslint/visitor-keys": "5.11.0", + "debug": "^4.3.2", + "globby": "^11.0.4", "is-glob": "^4.0.3", - "semver": "^7.3.7", + "semver": "^7.3.5", "tsutils": "^3.21.0" }, "engines": { @@ -7013,75 +7270,10 @@ } } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.47.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.47.0.tgz", - "integrity": "sha512-U9xcc0N7xINrCdGVPwABjbAKqx4GK67xuMV87toI+HUqgXj26m6RBp9UshEXcTrgCkdGYFzgKLt8kxu49RilDw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.47.0", - "@typescript-eslint/types": "5.47.0", - "@typescript-eslint/typescript-estree": "5.47.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -7094,13 +7286,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.47.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.47.0.tgz", - "integrity": "sha512-ByPi5iMa6QqDXe/GmT/hR6MZtVPi0SqMQPDx15FczCBXJo/7M8T88xReOALAfpBLm+zxpPfmhuEvPb577JRAEg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.11.0.tgz", + "integrity": "sha512-E8w/vJReMGuloGxJDkpPlGwhxocxOpSVgSvjiLO5IxZPmxZF30weOeJYyPSEACwM+X4NziYS9q+WkN/2DHYQwA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.47.0", - "eslint-visitor-keys": "^3.3.0" + "@typescript-eslint/types": "5.11.0", + "eslint-visitor-keys": "^3.0.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -7110,15 +7302,6 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -7301,9 +7484,9 @@ "dev": true }, "node_modules/@yarnpkg/parsers": { - "version": "3.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.34.tgz", - "integrity": "sha512-NhEA0BusInyk7EiJ7i7qF1Mkrb6gGjZcQQ/W1xxGazxapubEmGO7v5WSll6hWxFXE2ngtLj8lflq1Ff5VtqEww==", + "version": "3.0.0-rc.24", + "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.24.tgz", + "integrity": "sha512-A5wXsIUOipZUGDly1SHBht1OjKKW4y+E9EzzJxR2tby0Pj3atgCta9RSYa4+aXLkFfIMX3onnykmJnwJWqJj5g==", "dev": true, "dependencies": { "js-yaml": "^3.10.0", @@ -7313,6 +7496,12 @@ "node": ">=14.15.0" } }, + "node_modules/@yarnpkg/parsers/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, "node_modules/@zkochan/js-yaml": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.6.tgz", @@ -7332,9 +7521,9 @@ "dev": true }, "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", "dev": true }, "node_modules/abbrev": { @@ -7344,10 +7533,11 @@ "dev": true }, "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", "dev": true, + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -7365,6 +7555,18 @@ "acorn-walk": "^7.1.1" } }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -7429,14 +7631,14 @@ } }, "node_modules/ajv": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", - "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "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", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" }, "funding": { @@ -7444,10 +7646,19 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true, "engines": { "node": ">=6" @@ -7489,9 +7700,9 @@ } }, "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -7534,18 +7745,18 @@ } }, "node_modules/aria-query": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", - "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", + "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", "dev": true, - "dependencies": { - "deep-equal": "^2.0.5" + "engines": { + "node": ">=6.0" } }, "node_modules/arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true, "engines": { "node": ">=0.10.0" @@ -7563,7 +7774,7 @@ "node_modules/arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true, "engines": { "node": ">=0.10.0" @@ -7581,7 +7792,7 @@ "node_modules/array-find": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", - "integrity": "sha512-kO/vVCacW9mnpn3WPWbTVlEnOabK2L7LWi2HViURtCM46y1zb6I8UMjx4LgbiqadTgHnLInUronwn3ampNTJtQ==", + "integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=", "dev": true }, "node_modules/array-ify": { @@ -7591,15 +7802,15 @@ "dev": true }, "node_modules/array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", "is-string": "^1.0.7" }, "engines": { @@ -7621,22 +7832,21 @@ "node_modules/array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" }, "engines": { "node": ">= 0.4" @@ -7646,15 +7856,14 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", + "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" }, "engines": { "node": ">= 0.4" @@ -7663,23 +7872,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", - "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.1.3" - } - }, "node_modules/arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true, "engines": { "node": ">=0.10.0" @@ -7694,7 +7890,7 @@ "node_modules/assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true, "engines": { "node": ">=0.10.0" @@ -7709,16 +7905,10 @@ "node": ">=8" } }, - "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true - }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, "node_modules/at-least-node": { @@ -7787,16 +7977,13 @@ "url": "https://opencollective.com/postcss/" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "node_modules/autoprefixer/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, "node_modules/axios": { @@ -7916,6 +8103,15 @@ "node": ">=8" } }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "dependencies": { + "object.assign": "^4.1.0" + } + }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", @@ -7946,13 +8142,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", - "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", + "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.1", "semver": "^6.1.1" }, "peerDependencies": { @@ -7960,25 +8156,25 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", - "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", - "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3" + "@babel/helper-define-polyfill-provider": "^0.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" @@ -7987,7 +8183,7 @@ "node_modules/babel-polyfill": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", - "integrity": "sha512-F2rZGQnAdaHWQ8YAoeRbukc7HS9QgdgeyJ0rQDd485v9opwuPvjpPFcOOT/WmkKTdgy9ESgSPXDcTNpzrGr6iQ==", + "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "dev": true, "dependencies": { "babel-runtime": "^6.26.0", @@ -7998,7 +8194,7 @@ "node_modules/babel-polyfill/node_modules/regenerator-runtime": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha512-02YopEIhAgiBHWeoTiA8aitHDt8z6w+rQqNuIftlM+ZtvSl/brTouaU7DW6GO/cHtvxJvS4Hwv2ibKdxIRi24w==", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", "dev": true }, "node_modules/babel-preset-current-node-syntax": { @@ -8041,7 +8237,7 @@ "node_modules/babel-runtime": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "dependencies": { "core-js": "^2.4.0", @@ -8090,7 +8286,7 @@ "node_modules/base/node_modules/define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "dependencies": { "is-descriptor": "^1.0.0" @@ -8184,6 +8380,30 @@ "readable-stream": "^3.4.0" } }, + "node_modules/bl/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "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": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -8257,30 +8477,6 @@ "node-int64": "^0.4.0" } }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "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": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -8296,18 +8492,6 @@ "semver": "^7.0.0" } }, - "node_modules/builtins/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/builtins/node_modules/semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -8332,75 +8516,6 @@ "node": ">=10" } }, - "node_modules/cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "dev": true, - "dependencies": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/cacache/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/cacache/node_modules/glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/cacache/node_modules/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -8469,9 +8584,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001441", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz", - "integrity": "sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg==", + "version": "1.0.30001427", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001427.tgz", + "integrity": "sha512-lfXQ73oB9c8DP5Suxaszm+Ta2sr/4tf8+381GkIm1MLj/YdLf+rEDyDSRCzeltuyTVGm+/s18gdZ0q+Wmp8VsQ==", "funding": [ { "type": "opencollective", @@ -8547,6 +8662,15 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/charcodes": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/charcodes/-/charcodes-0.2.0.tgz", + "integrity": "sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", @@ -8629,7 +8753,7 @@ "node_modules/class-utils/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "dependencies": { "is-descriptor": "^0.1.0" @@ -8641,7 +8765,7 @@ "node_modules/class-utils/node_modules/is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "dependencies": { "kind-of": "^3.0.2" @@ -8653,7 +8777,7 @@ "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { "is-buffer": "^1.1.5" @@ -8671,7 +8795,7 @@ "node_modules/class-utils/node_modules/is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "dependencies": { "kind-of": "^3.0.2" @@ -8683,7 +8807,7 @@ "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { "is-buffer": "^1.1.5" @@ -8774,14 +8898,61 @@ } }, "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/cliui/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" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cliui/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/cliui/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/clone": { @@ -8855,7 +9026,7 @@ "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", "dev": true, "engines": { "iojs": ">= 1.0.0", @@ -8871,7 +9042,7 @@ "node_modules/collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "dependencies": { "map-visit": "^1.0.0", @@ -8892,7 +9063,7 @@ "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "node_modules/color-support": { "version": "1.1.3", @@ -8904,9 +9075,9 @@ } }, "node_modules/colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", "dev": true }, "node_modules/columnify": { @@ -8934,15 +9105,6 @@ "node": ">= 0.8" } }, - "node_modules/commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/common-ancestor-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", @@ -8959,6 +9121,27 @@ "dot-prop": "^5.1.0" } }, + "node_modules/compare-func/node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/compare-func/node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", @@ -8968,7 +9151,7 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "node_modules/concat-stream": { "version": "2.0.0", @@ -9071,6 +9254,18 @@ "node": ">=4" } }, + "node_modules/conventional-changelog-core/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/conventional-changelog-core/node_modules/locate-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", @@ -9084,6 +9279,21 @@ "node": ">=4" } }, + "node_modules/conventional-changelog-core/node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/conventional-changelog-core/node_modules/p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", @@ -9139,6 +9349,21 @@ "node": ">=4" } }, + "node_modules/conventional-changelog-core/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/conventional-changelog-preset-loader": { "version": "2.3.4", "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", @@ -9227,14 +9452,17 @@ } }, "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dependencies": { + "safe-buffer": "~5.1.1" + } }, "node_modules/copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true, "engines": { "node": ">=0.10.0" @@ -9244,27 +9472,37 @@ "version": "2.6.12", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "deprecated": "core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.", "dev": true, "hasInstallScript": true }, "node_modules/core-js-compat": { - "version": "3.26.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.1.tgz", - "integrity": "sha512-622/KzTudvXCDLRw70iHW4KKs1aGpcRcowGWyYJr2DEBfRrd6hNJybxSWJFuZYD4ma86xhrwDDHxmDaIq4EA8A==", + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.0.tgz", + "integrity": "sha512-OSXseNPSK2OPJa6GdtkMz/XxeXx8/CJvfhQWTqd6neuUraujcL4jVsjkLQz1OWnax8xVQJnRPe0V2jqNWORA+A==", "dev": true, "dependencies": { - "browserslist": "^4.21.4" + "browserslist": "^4.19.1", + "semver": "7.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, + "node_modules/core-js-compat/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/core-js-pure": { - "version": "3.26.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.1.tgz", - "integrity": "sha512-VVXcDpp/xJ21KdULRq/lXdLzQAtX7+37LzpyfFM973il0tWSsDEoyzG38G14AjTpK9VTfiNM9jnFauq/CpaWGQ==", + "version": "3.25.5", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.5.tgz", + "integrity": "sha512-oml3M22pHM+igfWHDfdLVq2ShWmjM2V4L+dQEBs0DWVIqEm9WHCwGAlZ6BmyBQGy5sFrJmcx+856D9lVKyGWYg==", "dev": true, "hasInstallScript": true, "funding": { @@ -9273,15 +9511,15 @@ } }, "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", "dev": true, "dependencies": { "@types/parse-json": "^4.0.0", @@ -9295,9 +9533,9 @@ } }, "node_modules/cosmiconfig-typescript-loader": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.3.0.tgz", - "integrity": "sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.2.0.tgz", + "integrity": "sha512-NkANeMnaHrlaSSlpKGyvn2R4rqUDeE/9E5YHx+b4nwo0R8dZyAqcih8/gxpCZvqWP9Vf6xuLpMSzSgdVEIM78g==", "dev": true, "engines": { "node": ">=12", @@ -9330,10 +9568,21 @@ "node": ">= 8" } }, + "node_modules/css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + } + }, "node_modules/css-rule-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/css-rule-stream/-/css-rule-stream-1.1.0.tgz", - "integrity": "sha512-qiio/Zkr8I19jh/XuzEkK8OKDQRTrEYaRyIHy4Bwh/tPUe0w8GcQs7r6x24Yc9lT+FbnZFYULxEIXCmaymguUQ==", + "integrity": "sha1-N4bnGYmD2WWibjGVfgkHjLt3BaI=", "dev": true, "dependencies": { "css-tokenize": "^1.0.1", @@ -9348,13 +9597,13 @@ "node_modules/css-rule-stream/node_modules/isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, "node_modules/css-rule-stream/node_modules/readable-stream": { "version": "1.0.34", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -9366,13 +9615,13 @@ "node_modules/css-rule-stream/node_modules/string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true }, "node_modules/css-rule-stream/node_modules/through2": { "version": "0.6.5", "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", "dev": true, "dependencies": { "readable-stream": ">=1.0.33-1 <1.1.0-0", @@ -9382,7 +9631,7 @@ "node_modules/css-tokenize": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/css-tokenize/-/css-tokenize-1.0.1.tgz", - "integrity": "sha512-gLmmbJdwH9HLY4bcA17lnZ8GgPwEXRbvxBJGHnkiB6gLhRpTzjkjtMIvz7YORGW/Ptv2oMk8b5g+u7mRD6Dd7A==", + "integrity": "sha1-RiXLHtohwUOFi3+B1oA8HSb8FL4=", "dev": true, "dependencies": { "inherits": "^2.0.1", @@ -9392,13 +9641,13 @@ "node_modules/css-tokenize/node_modules/isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, "node_modules/css-tokenize/node_modules/readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -9410,15 +9659,24 @@ "node_modules/css-tokenize/node_modules/string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true }, "node_modules/css.escape": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=", "dev": true }, + "node_modules/css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", @@ -9456,9 +9714,9 @@ "dev": true }, "node_modules/csstype": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", - "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", + "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==" }, "node_modules/dargs": { "version": "7.0.0", @@ -9520,16 +9778,16 @@ "node_modules/decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/decamelize-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", "dev": true, "dependencies": { "decamelize": "^1.1.0", @@ -9537,30 +9795,27 @@ }, "engines": { "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/decamelize-keys/node_modules/map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", "dev": true }, "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true, "engines": { "node": ">=0.10" @@ -9569,35 +9824,9 @@ "node_modules/dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", "dev": true }, - "node_modules/deep-equal": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.1.0.tgz", - "integrity": "sha512-2pxgvWu3Alv1PoWEyVg7HS8YhGlUFUV7N5oOvfL6d+7xAmLSemMwv/c8Zv/i9KFzxV5Kt5CAvQc70fLwVuf4UA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "es-get-iterator": "^1.1.2", - "get-intrinsic": "^1.1.3", - "is-arguments": "^1.1.1", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.8" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -9614,15 +9843,12 @@ } }, "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==", "dev": true, "dependencies": { "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/define-lazy-prop": { @@ -9666,7 +9892,7 @@ "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true, "engines": { "node": ">=0.4.0" @@ -9721,15 +9947,6 @@ "wrappy": "1" } }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, "node_modules/diff-sequences": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", @@ -9787,15 +10004,35 @@ "node": ">=10" } }, + "node_modules/doiuse/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, "node_modules/doiuse/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true, "engines": { "node": ">= 8" } }, + "node_modules/doiuse/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/doiuse/node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", @@ -9814,19 +10051,10 @@ "node": ">=10" } }, - "node_modules/doiuse/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/dom-accessibility-api": { - "version": "0.5.14", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz", - "integrity": "sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==", + "version": "0.5.11", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.11.tgz", + "integrity": "sha512-7X6GvzjYf4yTdRKuCVScV+aA9Fvh5r8WzWrXBH9w82ZWB/eYDMGCnazoC/YAqAzUJWHzLOnZqr46K3iEyUhUvw==", "dev": true }, "node_modules/dom-serializer": { @@ -9840,9 +10068,9 @@ } }, "node_modules/dom-serializer/node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", "dev": true, "funding": [ { @@ -9907,13 +10135,25 @@ } }, "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", "dev": true, "dependencies": { "is-obj": "^2.0.0" }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dot-prop/node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, "engines": { "node": ">=8" } @@ -9935,7 +10175,7 @@ "node_modules/duplexer2": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", - "integrity": "sha512-+AWBwjGadtksxjOQSFDhPNQbed7icNXApT4+2BNpsXzcCBiInq2H9XW0O8sfHFaPmnQRs7cg/P0fAr2IWQSW0g==", + "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", "dev": true, "dependencies": { "readable-stream": "~1.1.9" @@ -9944,13 +10184,13 @@ "node_modules/duplexer2/node_modules/isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, "node_modules/duplexer2/node_modules/readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -9962,7 +10202,7 @@ "node_modules/duplexer2/node_modules/string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true }, "node_modules/ejs": { @@ -9981,9 +10221,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" + "version": "1.4.258", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.258.tgz", + "integrity": "sha512-vutF4q0dTUXoAFI7Vbtdwen/BJVwPgj8GRg/SElOodfH7VTX+svUe62A5BG41QRQGk5HsZPB0M++KH1lAlOt0A==" }, "node_modules/emittery": { "version": "0.7.2", @@ -10038,7 +10278,7 @@ "node_modules/enhanced-resolve": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", - "integrity": "sha512-kxpoMgrdtkXZ5h0SeraBS1iRntpTpQ3R8ussdb38+UAFnMGX5DDyJXePm+OCHOcoXvHDw7mc2erbJBpDnl7TPw==", + "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=", "dev": true, "dependencies": { "graceful-fs": "^4.1.2", @@ -10104,9 +10344,9 @@ } }, "node_modules/es-abstract": { - "version": "1.20.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.5.tgz", - "integrity": "sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==", + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", + "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", @@ -10115,7 +10355,6 @@ "function.prototype.name": "^1.1.5", "get-intrinsic": "^1.1.3", "get-symbol-description": "^1.0.0", - "gopd": "^1.0.1", "has": "^1.0.3", "has-property-descriptors": "^1.0.0", "has-symbols": "^1.0.3", @@ -10131,8 +10370,8 @@ "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.4.3", "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", "unbox-primitive": "^1.0.2" }, "engines": { @@ -10142,25 +10381,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-get-iterator": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", - "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.0", - "has-symbols": "^1.0.1", - "is-arguments": "^1.1.0", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.5", - "isarray": "^2.0.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/es-module-lexer": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", @@ -10168,15 +10388,6 @@ "dev": true, "peer": true }, - "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - } - }, "node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -10205,7 +10416,7 @@ "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==", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "engines": { "node": ">=0.8.0" } @@ -10235,7 +10446,7 @@ "node_modules/escodegen/node_modules/levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "dependencies": { "prelude-ls": "~1.1.2", @@ -10265,16 +10476,26 @@ "node_modules/escodegen/node_modules/prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true, "engines": { "node": ">= 0.8.0" } }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/escodegen/node_modules/type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "dependencies": { "prelude-ls": "~1.1.2" @@ -10361,8 +10582,7 @@ "node_modules/eslint-config-binary": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/eslint-config-binary/-/eslint-config-binary-1.0.2.tgz", - "integrity": "sha512-4PCr0wR6/aE+v9TKrcl4p/Qhs8u7mayoZuQe+599D12MIOmfRFPyhlxczORG5dSBr6+loNGmMtPTJe3tJv3ktg==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "integrity": "sha1-i6McWtAl6hFNMn0SFbvyfNvD6dI=", "dev": true }, "node_modules/eslint-config-prettier": { @@ -10553,20 +10773,16 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", "dev": true, "dependencies": { - "debug": "^3.2.7" + "debug": "^3.2.7", + "find-up": "^2.1.0" }, "engines": { "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } } }, "node_modules/eslint-module-utils/node_modules/debug": { @@ -10578,10 +10794,77 @@ "ms": "^2.1.1" } }, + "node_modules/eslint-module-utils/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "version": "2.25.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", + "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", "dev": true, "dependencies": { "array-includes": "^3.1.4", @@ -10589,14 +10872,14 @@ "debug": "^2.6.9", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", + "eslint-module-utils": "^2.7.2", "has": "^1.0.3", - "is-core-module": "^2.8.1", + "is-core-module": "^2.8.0", "is-glob": "^4.0.3", - "minimatch": "^3.1.2", + "minimatch": "^3.0.4", "object.values": "^1.1.5", - "resolve": "^1.22.0", - "tsconfig-paths": "^3.14.1" + "resolve": "^1.20.0", + "tsconfig-paths": "^3.12.0" }, "engines": { "node": ">=4" @@ -10629,7 +10912,7 @@ "node_modules/eslint-plugin-import/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "node_modules/eslint-plugin-jest-dom": { @@ -10756,6 +11039,12 @@ "node": ">= 10" } }, + "node_modules/eslint-plugin-jest-dom/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, "node_modules/eslint-plugin-jest-dom/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -10790,26 +11079,25 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.31.11", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.11.tgz", - "integrity": "sha512-TTvq5JsT5v56wPa9OYHzsrOlHzKZKjV+aLgS+55NJP/cuzdiQPC7PfYoUjMoxlffKtvijpk7vA/jmuqRb9nohw==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.28.0.tgz", + "integrity": "sha512-IOlFIRHzWfEQQKcAD4iyYDndHwTQiCMcJVJjxempf203jnNLUnW34AXLrV33+nEXoifJE2ZEGmcjKPL8957eSw==", "dev": true, "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "array.prototype.tosorted": "^1.1.1", + "array-includes": "^3.1.4", + "array.prototype.flatmap": "^1.2.5", "doctrine": "^2.1.0", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "object.hasown": "^1.1.2", - "object.values": "^1.1.6", - "prop-types": "^15.8.1", + "minimatch": "^3.0.4", + "object.entries": "^1.1.5", + "object.fromentries": "^2.0.5", + "object.hasown": "^1.1.0", + "object.values": "^1.1.5", + "prop-types": "^15.7.2", "resolve": "^2.0.0-next.3", "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.8" + "string.prototype.matchall": "^4.0.6" }, "engines": { "node": ">=4" @@ -10819,9 +11107,9 @@ } }, "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", - "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz", + "integrity": "sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==", "dev": true, "engines": { "node": ">=10" @@ -10843,17 +11131,13 @@ } }, "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "version": "2.0.0-next.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", + "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", "dev": true, "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -10876,9 +11160,9 @@ } }, "node_modules/eslint-rule-docs": { - "version": "1.1.235", - "resolved": "https://registry.npmjs.org/eslint-rule-docs/-/eslint-rule-docs-1.1.235.tgz", - "integrity": "sha512-+TQ+x4JdTnDoFEXXb3fDvfGOwnyNV7duH8fXWTPD1ieaBmB8omj7Gw/pMBBu4uI2uJCCU8APDaQJzWuXnTsH4A==", + "version": "1.1.231", + "resolved": "https://registry.npmjs.org/eslint-rule-docs/-/eslint-rule-docs-1.1.231.tgz", + "integrity": "sha512-egHz9A1WG7b8CS0x1P6P/Rj5FqZOjray/VjpJa14tMZalfRKvpE2ONJ3plCM7+PcinmU4tcmbPLv0VtwzSdLVA==", "dev": true }, "node_modules/eslint-scope": { @@ -10904,30 +11188,36 @@ } }, "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==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, "dependencies": { - "eslint-visitor-keys": "^2.0.0" + "eslint-visitor-keys": "^1.1.0" }, "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" } }, "node_modules/eslint-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==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "dev": true, "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/eslint/node_modules/@babel/code-frame": { @@ -10939,22 +11229,6 @@ "@babel/highlight": "^7.10.4" } }, - "node_modules/eslint/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/eslint/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -11016,34 +11290,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/eslint-utils": { + "node_modules/eslint/node_modules/eslint-visitor-keys": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "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": ">=4" + "node": ">=10" } }, "node_modules/eslint/node_modules/globals": { - "version": "13.19.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", - "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", + "version": "13.12.1", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", + "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -11073,28 +11332,10 @@ "node": ">= 4" } }, - "node_modules/eslint/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/eslint/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/eslint/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -11144,6 +11385,18 @@ "node": "^10.12.0 || >=12.0.0" } }, + "node_modules/espree/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/espree/node_modules/eslint-visitor-keys": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", @@ -11230,19 +11483,19 @@ "dev": true }, "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", "dev": true, "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", "strip-final-newline": "^2.0.0" }, "engines": { @@ -11267,7 +11520,7 @@ "node_modules/exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", "dev": true, "engines": { "node": ">= 0.8.0" @@ -11276,7 +11529,7 @@ "node_modules/expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "dependencies": { "debug": "^2.3.3", @@ -11303,7 +11556,7 @@ "node_modules/expand-brackets/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "dependencies": { "is-descriptor": "^0.1.0" @@ -11315,7 +11568,7 @@ "node_modules/expand-brackets/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { "is-extendable": "^0.1.0" @@ -11327,7 +11580,7 @@ "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "dependencies": { "kind-of": "^3.0.2" @@ -11339,7 +11592,7 @@ "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { "is-buffer": "^1.1.5" @@ -11357,7 +11610,7 @@ "node_modules/expand-brackets/node_modules/is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "dependencies": { "kind-of": "^3.0.2" @@ -11369,7 +11622,7 @@ "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { "is-buffer": "^1.1.5" @@ -11395,7 +11648,7 @@ "node_modules/expand-brackets/node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true, "engines": { "node": ">=0.10.0" @@ -11413,7 +11666,7 @@ "node_modules/expand-brackets/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "node_modules/expect": { @@ -11448,22 +11701,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/expect/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/expect/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -11482,54 +11719,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/expect/node_modules/diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", - "dev": true, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/expect/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/expect/node_modules/jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/expect/node_modules/jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, "node_modules/expect/node_modules/jest-regex-util": { "version": "26.0.0", "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", @@ -11539,33 +11728,6 @@ "node": ">= 10.14.2" } }, - "node_modules/expect/node_modules/pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/expect/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/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -11575,7 +11737,7 @@ "node_modules/extend-shallow": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "dependencies": { "assign-symbols": "^1.0.0", @@ -11621,7 +11783,7 @@ "node_modules/extglob/node_modules/define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "dependencies": { "is-descriptor": "^1.0.0" @@ -11633,7 +11795,7 @@ "node_modules/extglob/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { "is-extendable": "^0.1.0" @@ -11645,7 +11807,7 @@ "node_modules/extglob/node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true, "engines": { "node": ">=0.10.0" @@ -11664,9 +11826,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -11687,31 +11849,28 @@ "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==", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, "node_modules/fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", - "dev": true, - "engines": { - "node": ">= 4.9.1" - } + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", + "dev": true }, "node_modules/fastq": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", - "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", "dev": true, "dependencies": { "reusify": "^1.0.4" } }, "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", "dependencies": { "bser": "2.1.1" } @@ -11762,9 +11921,9 @@ } }, "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -11791,28 +11950,15 @@ "dev": true }, "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, + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dependencies": { - "locate-path": "^6.0.0", + "locate-path": "^5.0.0", "path-exists": "^4.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "bin": { - "flat": "cli.js" + "node": ">=8" } }, "node_modules/flat-cache": { @@ -11829,9 +11975,9 @@ } }, "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "dev": true }, "node_modules/follow-redirects": { @@ -11854,19 +12000,10 @@ } } }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, "node_modules/for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true, "engines": { "node": ">=0.10.0" @@ -11889,7 +12026,7 @@ "node_modules/fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "dependencies": { "map-cache": "^0.2.2" @@ -11905,17 +12042,27 @@ "dev": true }, "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, "dependencies": { + "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" }, "engines": { - "node": ">=12" + "node": ">=10" + } + }, + "node_modules/fs-extra/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" } }, "node_modules/fs-minipass": { @@ -11933,7 +12080,7 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "node_modules/fsevents": { "version": "2.3.2", @@ -11975,7 +12122,7 @@ "node_modules/functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, "node_modules/functions-have-names": { @@ -12069,11 +12216,28 @@ "node": ">=6.9.0" } }, - "node_modules/get-pkg-repo/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "node_modules/get-pkg-repo/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/get-pkg-repo/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } }, "node_modules/get-pkg-repo/node_modules/readable-stream": { "version": "2.3.7", @@ -12090,12 +12254,6 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/get-pkg-repo/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, "node_modules/get-pkg-repo/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -12115,6 +12273,15 @@ "xtend": "~4.0.1" } }, + "node_modules/get-pkg-repo/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/get-pkg-repo/node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", @@ -12133,15 +12300,6 @@ "node": ">=10" } }, - "node_modules/get-pkg-repo/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/get-port": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", @@ -12167,12 +12325,15 @@ } }, "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -12197,7 +12358,7 @@ "node_modules/get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "dev": true, "engines": { "node": ">=0.10.0" @@ -12289,14 +12450,14 @@ } }, "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.1.1", + "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, @@ -12407,7 +12568,7 @@ "node_modules/globjoin": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", - "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", + "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", "dev": true }, "node_modules/gonzales-pe": { @@ -12425,27 +12586,15 @@ "node": ">=0.6.0" } }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" }, "node_modules/growly": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", "dev": true, "optional": true }, @@ -12470,6 +12619,15 @@ "uglify-js": "^3.1.4" } }, + "node_modules/handlebars/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/hard-rejection": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", @@ -12503,7 +12661,7 @@ "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "engines": { "node": ">=4" } @@ -12556,7 +12714,7 @@ "node_modules/has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "dependencies": { "get-value": "^2.0.6", @@ -12570,7 +12728,7 @@ "node_modules/has-values": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "dependencies": { "is-number": "^3.0.0", @@ -12589,7 +12747,7 @@ "node_modules/has-values/node_modules/is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "dependencies": { "kind-of": "^3.0.2" @@ -12601,7 +12759,7 @@ "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { "is-buffer": "^1.1.5" @@ -12613,7 +12771,7 @@ "node_modules/has-values/node_modules/kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "dependencies": { "is-buffer": "^1.1.5" @@ -12623,28 +12781,10 @@ } }, "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } + "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-encoding-sniffer": { "version": "2.0.1", @@ -12665,15 +12805,12 @@ "dev": true }, "node_modules/html-tags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", - "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", + "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==", "dev": true, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/htmlparser2": { @@ -12711,9 +12848,9 @@ } }, "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "dev": true, "dependencies": { "agent-base": "6", @@ -12724,12 +12861,12 @@ } }, "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", "dev": true, "engines": { - "node": ">=10.17.0" + "node": ">=8.12.0" } }, "node_modules/humanize-ms": { @@ -12789,9 +12926,9 @@ ] }, "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "dev": true, "engines": { "node": ">= 4" @@ -12819,9 +12956,9 @@ } }, "node_modules/ignore-walk/node_modules/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -12886,7 +13023,7 @@ "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "engines": { "node": ">=0.8.19" } @@ -12909,7 +13046,7 @@ "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -12945,9 +13082,9 @@ } }, "node_modules/init-package-json/node_modules/hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", "dev": true, "dependencies": { "lru-cache": "^7.5.1" @@ -12956,6 +13093,15 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/init-package-json/node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", + "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/init-package-json/node_modules/npm-package-arg": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", @@ -12986,22 +13132,10 @@ "node": ">=10" } }, - "node_modules/init-package-json/node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/inquirer": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", - "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", + "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", "dev": true, "dependencies": { "ansi-escapes": "^4.2.1", @@ -13082,6 +13216,15 @@ "node": ">=8" } }, + "node_modules/inquirer/node_modules/rxjs": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz", + "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, "node_modules/inquirer/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -13094,13 +13237,19 @@ "node": ">=8" } }, + "node_modules/inquirer/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, "node_modules/internal-slot": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", - "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.3", + "get-intrinsic": "^1.1.0", "has": "^1.0.3", "side-channel": "^1.0.4" }, @@ -13118,9 +13267,9 @@ } }, "node_modules/ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", "dev": true }, "node_modules/irregular-plurals": { @@ -13168,26 +13317,10 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "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==", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, "node_modules/is-bigint": { @@ -13278,9 +13411,9 @@ } }, "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -13382,7 +13515,7 @@ "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true, "engines": { "node": ">=0.10.0" @@ -13443,15 +13576,6 @@ "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", "dev": true }, - "node_modules/is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-negative-zero": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", @@ -13473,9 +13597,9 @@ } }, "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" @@ -13488,18 +13612,18 @@ } }, "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, "node_modules/is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", "dev": true, "engines": { "node": ">=0.10.0" @@ -13539,21 +13663,12 @@ "node_modules/is-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-shared-array-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", @@ -13629,29 +13744,10 @@ "node": ">=0.10.0" } }, - "node_modules/is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "node_modules/is-unicode-supported": { "version": "0.1.0", @@ -13665,15 +13761,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -13686,19 +13773,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -13721,21 +13795,21 @@ } }, "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "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": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "engines": { "node": ">=0.10.0" @@ -13750,9 +13824,9 @@ } }, "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", + "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", @@ -13813,10 +13887,19 @@ "node": ">=10" } }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", + "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", "dev": true, "dependencies": { "html-escaper": "^2.0.0", @@ -13859,6 +13942,12 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/jake/node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, "node_modules/jake/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -13932,9 +14021,9 @@ } }, "node_modules/jest-chain": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/jest-chain/-/jest-chain-1.1.6.tgz", - "integrity": "sha512-eIkGzVBGQ1VuEErDceMYAET53pcwYVVTXtJEbY+x60Dwi+2M2uOt4rhKAej+wfVOAlE4G0plI9mstmv6GBtJjw==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/jest-chain/-/jest-chain-1.1.5.tgz", + "integrity": "sha512-bTx51vQP/6/XVDrMtz0WmT3wZoXvj5QAAnw1to+o6pvtjcwTIVuB6uR5URRXH/9rHf1WuM1UgsfVTWhTC/QAzw==", "dev": true }, "node_modules/jest-changed-files": { @@ -13951,53 +14040,6 @@ "node": ">= 10.14.2" } }, - "node_modules/jest-changed-files/node_modules/execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/jest-changed-files/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-changed-files/node_modules/human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true, - "engines": { - "node": ">=8.12.0" - } - }, "node_modules/jest-cli": { "version": "26.6.3", "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", @@ -14056,17 +14098,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-cli/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, "node_modules/jest-cli/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -14085,19 +14116,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-cli/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/jest-cli/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -14107,45 +14125,6 @@ "node": ">=8" } }, - "node_modules/jest-cli/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/jest-cli/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/jest-cli/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/jest-cli/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -14158,61 +14137,6 @@ "node": ">=8" } }, - "node_modules/jest-cli/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "node_modules/jest-cli/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/jest-config": { "version": "26.6.3", "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", @@ -14451,6 +14375,21 @@ "node": ">= 10" } }, + "node_modules/jest-config/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "node_modules/jest-config/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/jest-config/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -14658,6 +14597,12 @@ "node": ">= 10" } }, + "node_modules/jest-each/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, "node_modules/jest-each/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -14720,6 +14665,64 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/jest-extended/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" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-extended/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-extended/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/jest-extended/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-extended/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-extended/node_modules/jest-get-type": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", @@ -14729,6 +14732,33 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-extended/node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-extended/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/jest-get-type": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", @@ -14816,12 +14846,9 @@ } }, "node_modules/jest-haste-map/node_modules/ci-info": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz", - "integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==", - "engines": { - "node": ">=8" - } + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", + "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==" }, "node_modules/jest-haste-map/node_modules/color-convert": { "version": "2.0.1", @@ -14979,15 +15006,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-jasmine2/node_modules/diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", - "dev": true, - "engines": { - "node": ">= 10.14.2" - } - }, "node_modules/jest-jasmine2/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -14997,36 +15015,6 @@ "node": ">=8" } }, - "node_modules/jest-jasmine2/node_modules/jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-jasmine2/node_modules/jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, "node_modules/jest-jasmine2/node_modules/pretty-format": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", @@ -15042,6 +15030,12 @@ "node": ">= 10" } }, + "node_modules/jest-jasmine2/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, "node_modules/jest-jasmine2/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -15115,19 +15109,25 @@ "node": ">= 10" } }, + "node_modules/jest-leak-detector/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, "node_modules/jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", + "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", "dev": true, "dependencies": { "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">= 10.14.2" } }, "node_modules/jest-matcher-utils/node_modules/ansi-styles": { @@ -15179,6 +15179,15 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/jest-matcher-utils/node_modules/diff-sequences": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", + "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", + "dev": true, + "engines": { + "node": ">= 10.14.2" + } + }, "node_modules/jest-matcher-utils/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -15188,15 +15197,42 @@ "node": ">=8" } }, - "node_modules/jest-matcher-utils/node_modules/jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "node_modules/jest-matcher-utils/node_modules/jest-diff": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", + "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">= 10.14.2" + } + }, + "node_modules/jest-matcher-utils/node_modules/pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dev": true, + "dependencies": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": ">= 10" } }, + "node_modules/jest-matcher-utils/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, "node_modules/jest-matcher-utils/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -15302,6 +15338,12 @@ "node": ">= 10" } }, + "node_modules/jest-message-util/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, "node_modules/jest-message-util/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -15328,9 +15370,9 @@ } }, "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", "dev": true, "engines": { "node": ">=6" @@ -15712,17 +15754,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-runtime/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, "node_modules/jest-runtime/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -15741,19 +15772,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-runtime/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/jest-runtime/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -15812,43 +15830,13 @@ "node": ">= 10.14.2" } }, - "node_modules/jest-runtime/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/jest-runtime/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/jest-runtime/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==", + "node_modules/jest-runtime/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, "node_modules/jest-runtime/node_modules/supports-color": { @@ -15863,61 +15851,6 @@ "node": ">=8" } }, - "node_modules/jest-runtime/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "node_modules/jest-runtime/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/jest-serializer": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", @@ -16066,21 +15999,6 @@ "fsevents": "^2.1.2" } }, - "node_modules/jest-snapshot/node_modules/jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, "node_modules/jest-snapshot/node_modules/jest-regex-util": { "version": "26.0.0", "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", @@ -16103,18 +16021,6 @@ "node": ">= 10.14.2" } }, - "node_modules/jest-snapshot/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/jest-snapshot/node_modules/pretty-format": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", @@ -16130,10 +16036,16 @@ "node": ">= 10" } }, + "node_modules/jest-snapshot/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -16346,6 +16258,12 @@ "node": ">= 10" } }, + "node_modules/jest-validate/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, "node_modules/jest-validate/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -16545,9 +16463,9 @@ } }, "node_modules/jsdom/node_modules/acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -16580,15 +16498,15 @@ "dev": true }, "node_modules/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==", + "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": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, "node_modules/json-stringify-nice": { @@ -16607,9 +16525,12 @@ "dev": true }, "node_modules/json5": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.2.tgz", - "integrity": "sha512-46Tk9JiOL2z7ytNQWFLpj99RZkVgeHf87yGQKsIkaPz1qSH9UczKH1rO7K3wgRselo0tYMUNfecYpm/p1vC7tQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dependencies": { + "minimist": "^1.2.5" + }, "bin": { "json5": "lib/cli.js" }, @@ -16635,6 +16556,15 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/jsonfile/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", @@ -16661,28 +16591,28 @@ } }, "node_modules/jsx-ast-utils": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", - "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz", + "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==", "dev": true, "dependencies": { - "array-includes": "^3.1.5", - "object.assign": "^4.1.3" + "array-includes": "^3.1.3", + "object.assign": "^4.1.2" }, "engines": { "node": ">=4.0" } }, "node_modules/just-diff": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-5.2.0.tgz", - "integrity": "sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-5.1.1.tgz", + "integrity": "sha512-u8HXJ3HlNrTzY7zrYYKjNEfBlyjqhdBkoyTVdjtn7p02RJD5NvR8rIClzeGA7t+UYP1/7eAkWNLU0+P3QrEqKQ==", "dev": true }, "node_modules/just-diff-apply": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.5.0.tgz", - "integrity": "sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.4.1.tgz", + "integrity": "sha512-AAV5Jw7tsniWwih8Ly3fXxEZ06y+6p5TwQMsw0dzZ/wPKilzyDgdAnL0Ug4NNIquPUOh1vfFWEHbmXUqM5+o8g==", "dev": true }, "node_modules/kind-of": { @@ -16712,7 +16642,7 @@ "node_modules/ldjson-stream": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ldjson-stream/-/ldjson-stream-1.2.1.tgz", - "integrity": "sha512-xw/nNEXafuPSLu8NjjG3+atVVw+8U1APZAQylmwQn19Hgw6rC7QjHvP6MupnHWCrzSm9m0xs5QWkCLuRvBPjgQ==", + "integrity": "sha1-kb7O2lrE7SsX5kn7d356v6AYnCs=", "dev": true, "dependencies": { "split2": "^0.2.1", @@ -16722,13 +16652,13 @@ "node_modules/ldjson-stream/node_modules/isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, "node_modules/ldjson-stream/node_modules/readable-stream": { "version": "1.0.34", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -16740,7 +16670,7 @@ "node_modules/ldjson-stream/node_modules/split2": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/split2/-/split2-0.2.1.tgz", - "integrity": "sha512-D/oTExYAkC9nWleOCTOyNmAuzfAT/6rHGBA9LIK7FVnGo13CSvrKCUzKenwH6U1s2znY9MqH6v0UQTEDa3vJmg==", + "integrity": "sha1-At2smtwD7Au3jBKC7Aecpuha6QA=", "dev": true, "dependencies": { "through2": "~0.6.1" @@ -16749,13 +16679,13 @@ "node_modules/ldjson-stream/node_modules/string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true }, "node_modules/ldjson-stream/node_modules/through2": { "version": "0.6.5", "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", "dev": true, "dependencies": { "readable-stream": ">=1.0.33-1 <1.1.0-0", @@ -16763,28 +16693,28 @@ } }, "node_modules/lerna": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/lerna/-/lerna-5.6.2.tgz", - "integrity": "sha512-Y0yMPslvnBnTZi7Nrs/gDyYZYauNf61xWNCehISHIORxZmmpoluNkcWTfcyb47is5uJQCv5QJX5xKKubbs+a6w==", - "dev": true, - "dependencies": { - "@lerna/add": "5.6.2", - "@lerna/bootstrap": "5.6.2", - "@lerna/changed": "5.6.2", - "@lerna/clean": "5.6.2", - "@lerna/cli": "5.6.2", - "@lerna/command": "5.6.2", - "@lerna/create": "5.6.2", - "@lerna/diff": "5.6.2", - "@lerna/exec": "5.6.2", - "@lerna/import": "5.6.2", - "@lerna/info": "5.6.2", - "@lerna/init": "5.6.2", - "@lerna/link": "5.6.2", - "@lerna/list": "5.6.2", - "@lerna/publish": "5.6.2", - "@lerna/run": "5.6.2", - "@lerna/version": "5.6.2", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/lerna/-/lerna-5.6.1.tgz", + "integrity": "sha512-gAZxKlQVpYpAvzXMOpc6VfFa6WYZmdD7u6js1u3wu7tOwnwHcSQK+qGOO3/Ky/YP+LbrXuH0BnLj09d+ev9OwA==", + "dev": true, + "dependencies": { + "@lerna/add": "5.6.1", + "@lerna/bootstrap": "5.6.1", + "@lerna/changed": "5.6.1", + "@lerna/clean": "5.6.1", + "@lerna/cli": "5.6.1", + "@lerna/command": "5.6.1", + "@lerna/create": "5.6.1", + "@lerna/diff": "5.6.1", + "@lerna/exec": "5.6.1", + "@lerna/import": "5.6.1", + "@lerna/info": "5.6.1", + "@lerna/init": "5.6.1", + "@lerna/link": "5.6.1", + "@lerna/list": "5.6.1", + "@lerna/publish": "5.6.1", + "@lerna/run": "5.6.1", + "@lerna/version": "5.6.1", "@nrwl/devkit": ">=14.8.1 < 16", "import-local": "^3.0.2", "inquirer": "^8.2.4", @@ -16837,9 +16767,9 @@ } }, "node_modules/libnpmaccess/node_modules/hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", "dev": true, "dependencies": { "lru-cache": "^7.5.1" @@ -16848,6 +16778,15 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/libnpmaccess/node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", + "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/libnpmaccess/node_modules/npm-package-arg": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", @@ -16878,18 +16817,6 @@ "node": ">=10" } }, - "node_modules/libnpmaccess/node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/libnpmpublish": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-6.0.5.tgz", @@ -16907,9 +16834,9 @@ } }, "node_modules/libnpmpublish/node_modules/hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", "dev": true, "dependencies": { "lru-cache": "^7.5.1" @@ -16918,6 +16845,15 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/libnpmpublish/node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", + "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/libnpmpublish/node_modules/normalize-package-data": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.1.tgz", @@ -16963,16 +16899,16 @@ "node": ">=10" } }, - "node_modules/libnpmpublish/node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/libnpmpublish/node_modules/ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "minipass": "^3.1.1" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/lines-and-columns": { @@ -17059,42 +16995,13 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/lint-staged/node_modules/execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/lint-staged/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "node_modules/lint-staged/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 6" } }, "node_modules/lint-staged/node_modules/has-flag": { @@ -17106,15 +17013,6 @@ "node": ">=8" } }, - "node_modules/lint-staged/node_modules/human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true, - "engines": { - "node": ">=8.12.0" - } - }, "node_modules/lint-staged/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -17154,6 +17052,21 @@ } } }, + "node_modules/listr2/node_modules/rxjs": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.4.tgz", + "integrity": "sha512-h5M3Hk78r6wAheJF0a5YahB1yRQKCsZ4MsGdZ5O9ETbVtjPcScGfrMmoOq7EBsCRzd4BDkvDJ7ogP8Sz5tTFiQ==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/listr2/node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + }, "node_modules/load-json-file": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz", @@ -17179,9 +17092,9 @@ } }, "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", + "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", "dev": true, "peer": true, "engines": { @@ -17189,18 +17102,14 @@ } }, "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, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dependencies": { - "p-locate": "^5.0.0" + "p-locate": "^4.1.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/lodash": { @@ -17209,22 +17118,10 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true - }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "node_modules/lodash.isfunction": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", - "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", "dev": true }, "node_modules/lodash.ismatch": { @@ -17233,58 +17130,16 @@ "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", "dev": true }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true - }, - "node_modules/lodash.kebabcase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", - "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/lodash.mergewith": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", - "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", - "dev": true - }, - "node_modules/lodash.snakecase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", - "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", - "dev": true - }, - "node_modules/lodash.startcase": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", - "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", - "dev": true - }, "node_modules/lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "dev": true - }, - "node_modules/lodash.upperfirst": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", - "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", "dev": true }, "node_modules/log-symbols": { @@ -17477,18 +17332,21 @@ } }, "node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, "engines": { - "node": ">=12" + "node": ">=10" } }, "node_modules/lz-string": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", - "integrity": "sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==", + "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=", "dev": true, "bin": { "lz-string": "bin/bin.js" @@ -17542,6 +17400,32 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/make-fetch-happen/node_modules/@npmcli/fs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", + "dev": true, + "dependencies": { + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/@npmcli/move-file": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", + "dev": true, + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "node_modules/make-fetch-happen/node_modules/@tootallnate/once": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", @@ -17551,6 +17435,63 @@ "node": ">= 10" } }, + "node_modules/make-fetch-happen/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/cacache": { + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", + "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", + "dev": true, + "dependencies": { + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/make-fetch-happen/node_modules/http-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", @@ -17565,6 +17506,119 @@ "node": ">= 6" } }, + "node_modules/make-fetch-happen/node_modules/lru-cache": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", + "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-fetch-happen/node_modules/minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-fetch-happen/node_modules/minipass-fetch": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", + "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", + "dev": true, + "dependencies": { + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/make-fetch-happen/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-fetch-happen/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-fetch-happen/node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-fetch-happen/node_modules/ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/unique-filename": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", + "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", + "dev": true, + "dependencies": { + "unique-slug": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/unique-slug": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", + "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "node_modules/makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", @@ -17576,7 +17630,7 @@ "node_modules/map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true, "engines": { "node": ">=0.10.0" @@ -17597,7 +17651,7 @@ "node_modules/map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "dependencies": { "object-visit": "^1.0.0" @@ -17664,7 +17718,7 @@ "node_modules/memory-fs": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", - "integrity": "sha512-+y4mDxU4rvXXu5UDSGCGNiesFmwCHuefGMoPCO1WYucNYj7DsLqrFaa2fXVI0H+NNiPTwwzKwspn9yTZqUGqng==", + "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=", "dev": true }, "node_modules/meow": { @@ -17692,6 +17746,48 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/meow/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/meow/node_modules/type-fest": { "version": "0.18.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", @@ -17704,15 +17800,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/meow/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -17748,33 +17835,33 @@ } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" + "braces": "^3.0.1", + "picomatch": "^2.2.3" }, "engines": { "node": ">=8.6" } }, "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", "dev": true, "dependencies": { - "mime-db": "1.52.0" + "mime-db": "1.51.0" }, "engines": { "node": ">= 0.6" @@ -17799,9 +17886,9 @@ } }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.1.tgz", + "integrity": "sha512-reLxBcKUPNBnc/sVtAbxgRVFSegoGeLaSjmphNhcwcolhYLRgtJscn5mRl6YRZNQv40Y7P6JM2YhSIsbL9OB5A==", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -17810,13 +17897,9 @@ } }, "node_modules/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "node_modules/minimist-options": { "version": "4.1.0", @@ -17833,9 +17916,9 @@ } }, "node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", "dev": true, "dependencies": { "yallist": "^4.0.0" @@ -17856,23 +17939,6 @@ "node": ">= 8" } }, - "node_modules/minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", - "dev": true, - "dependencies": { - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, "node_modules/minipass-flush": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", @@ -17945,18 +18011,6 @@ "node": ">=0.10.0" } }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/mkdirp-infer-owner": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz", @@ -17971,6 +18025,18 @@ "node": ">=10" } }, + "node_modules/mkdirp-infer-owner/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/modify-values": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", @@ -18056,13 +18122,7 @@ "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, "node_modules/negotiator": { @@ -18115,19 +18175,19 @@ "node_modules/node-fetch/node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", "dev": true }, "node_modules/node-fetch/node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", "dev": true }, "node_modules/node-fetch/node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", "dev": true, "dependencies": { "tr46": "~0.0.3", @@ -18135,9 +18195,9 @@ } }, "node_modules/node-gyp": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.1.tgz", - "integrity": "sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.2.0.tgz", + "integrity": "sha512-/+/YxGfIJOh/fnMsr4Ep0v6oOIjnO1BgLd2dcDspBX1spTkQU7xSIox5RdRE/2/Uq3ZwK8Z5swRIbMUmPlslmg==", "dev": true, "dependencies": { "env-paths": "^2.2.0", @@ -18155,7 +18215,7 @@ "node-gyp": "bin/node-gyp.js" }, "engines": { - "node": "^12.13 || ^14.13 || >=16" + "node": "^12.22 || ^14.13 || >=16" } }, "node_modules/node-gyp-build": { @@ -18169,18 +18229,6 @@ "node-gyp-build-test": "build-test.js" } }, - "node_modules/node-gyp/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/node-gyp/node_modules/nopt": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", @@ -18214,7 +18262,7 @@ "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" }, "node_modules/node-machine-id": { "version": "1.1.12", @@ -18237,23 +18285,10 @@ "which": "^2.0.2" } }, - "node_modules/node-notifier/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/node-notifier/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "optional": true, "dependencies": { @@ -18267,9 +18302,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", - "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==" + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" }, "node_modules/nopt": { "version": "5.0.0", @@ -18287,45 +18322,24 @@ } }, "node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "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": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/normalize-package-data/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" } }, "node_modules/normalize-package-data/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "semver": "bin/semver" } }, "node_modules/normalize-path": { @@ -18339,7 +18353,7 @@ "node_modules/normalize-range": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", "dev": true, "engines": { "node": ">=0.10.0" @@ -18348,7 +18362,7 @@ "node_modules/normalize-selector": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz", - "integrity": "sha512-dxvWdI8gw6eAvk9BlPffgEoGfM7AdijoCwOEJge3e3ulT2XLgmU7KvvxprOaCu05Q1uGRHmOhHe1r6emZoKyFw==", + "integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=", "dev": true }, "node_modules/npm-bundled": { @@ -18372,18 +18386,6 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/npm-install-checks/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/npm-install-checks/node_modules/semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -18437,18 +18439,6 @@ "node": ">=10" } }, - "node_modules/npm-package-arg/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/npm-package-arg/node_modules/semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -18520,9 +18510,9 @@ } }, "node_modules/npm-packlist/node_modules/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -18568,9 +18558,9 @@ } }, "node_modules/npm-pick-manifest/node_modules/hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", "dev": true, "dependencies": { "lru-cache": "^7.5.1" @@ -18579,6 +18569,15 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/npm-pick-manifest/node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", + "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/npm-pick-manifest/node_modules/npm-normalize-package-bin": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", @@ -18618,18 +18617,6 @@ "node": ">=10" } }, - "node_modules/npm-pick-manifest/node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/npm-registry-fetch": { "version": "13.3.1", "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.3.1.tgz", @@ -18649,9 +18636,9 @@ } }, "node_modules/npm-registry-fetch/node_modules/hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", "dev": true, "dependencies": { "lru-cache": "^7.5.1" @@ -18660,6 +18647,32 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/npm-registry-fetch/node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", + "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/npm-registry-fetch/node_modules/minipass-fetch": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", + "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", + "dev": true, + "dependencies": { + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, "node_modules/npm-registry-fetch/node_modules/npm-package-arg": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", @@ -18690,18 +18703,6 @@ "node": ">=10" } }, - "node_modules/npm-registry-fetch/node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -18732,29 +18733,29 @@ "node_modules/num2fraction": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", "dev": true }, "node_modules/nwsapi": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", - "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", "dev": true }, "node_modules/nx": { - "version": "14.8.6", - "resolved": "https://registry.npmjs.org/nx/-/nx-14.8.6.tgz", - "integrity": "sha512-QLU3sip/g3JdNO8n5Nw2esN+0G26Jsy3u1LlrB9Giu4zf/+KsfN8CcXMbEVqOnPR1FkCS52xliaq7IBQfvvMQA==", + "version": "14.8.3", + "resolved": "https://registry.npmjs.org/nx/-/nx-14.8.3.tgz", + "integrity": "sha512-6aMYrzlTqE77vHbaE1teI5P1A2oYkJGkuDMIo/zegRwUxCAjRzLAluUgPrmgqhuPTyTDn8p4aDfxAWV3Q0o/2Q==", "dev": true, "hasInstallScript": true, "dependencies": { - "@nrwl/cli": "14.8.6", - "@nrwl/tao": "14.8.6", + "@nrwl/cli": "14.8.3", + "@nrwl/tao": "14.8.3", "@parcel/watcher": "2.0.4", "@yarnpkg/lockfile": "^1.1.0", "@yarnpkg/parsers": "^3.0.0-rc.18", "@zkochan/js-yaml": "0.0.6", - "axios": "^1.0.0", + "axios": "0.21.1", "chalk": "4.1.0", "chokidar": "^3.5.1", "cli-cursor": "3.1.0", @@ -18822,14 +18823,12 @@ "dev": true }, "node_modules/nx/node_modules/axios": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.1.tgz", - "integrity": "sha512-I88cFiGu9ryt/tfVEi4kX2SITsvDddTajXTOFmt2uK1ZVA8LytjtdeyefdQWEf5PU8w+4SSJDoYnggflB5tW4A==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", + "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", "dev": true, "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" + "follow-redirects": "^1.10.0" } }, "node_modules/nx/node_modules/chalk": { @@ -18848,6 +18847,17 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/nx/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, "node_modules/nx/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -18891,18 +18901,27 @@ "node": ">=8" } }, - "node_modules/nx/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "node_modules/nx/node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/nx/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">= 6" + "node": ">=12" } }, "node_modules/nx/node_modules/glob": { @@ -18943,18 +18962,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/nx/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/nx/node_modules/minimatch": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", @@ -19006,6 +19013,48 @@ "node": ">=8.17.0" } }, + "node_modules/nx/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, + "node_modules/nx/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/nx/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/nx/node_modules/yargs": { + "version": "17.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.0.tgz", + "integrity": "sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/nx/node_modules/yargs-parser": { "version": "21.0.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", @@ -19015,10 +19064,24 @@ "node": ">=12" } }, + "node_modules/nx/node_modules/yargs/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "engines": { "node": ">=0.10.0" } @@ -19026,7 +19089,7 @@ "node_modules/object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "dependencies": { "copy-descriptor": "^0.1.0", @@ -19040,7 +19103,7 @@ "node_modules/object-copy/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "dependencies": { "is-descriptor": "^0.1.0" @@ -19052,7 +19115,7 @@ "node_modules/object-copy/node_modules/is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "dependencies": { "kind-of": "^3.0.2" @@ -19070,7 +19133,7 @@ "node_modules/object-copy/node_modules/is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "dependencies": { "kind-of": "^3.0.2" @@ -19105,7 +19168,7 @@ "node_modules/object-copy/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { "is-buffer": "^1.1.5" @@ -19123,22 +19186,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -19151,7 +19198,7 @@ "node_modules/object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "dependencies": { "isobject": "^3.0.0" @@ -19179,28 +19226,28 @@ } }, "node_modules/object.entries": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", - "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" }, "engines": { "node": ">= 0.4" } }, "node_modules/object.fromentries": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", - "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" }, "engines": { "node": ">= 0.4" @@ -19210,13 +19257,13 @@ } }, "node_modules/object.hasown": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", - "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", + "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", "dev": true, "dependencies": { - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -19225,7 +19272,7 @@ "node_modules/object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "dependencies": { "isobject": "^3.0.1" @@ -19235,14 +19282,14 @@ } }, "node_modules/object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" }, "engines": { "node": ">= 0.4" @@ -19254,7 +19301,7 @@ "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dependencies": { "wrappy": "1" } @@ -19404,7 +19451,7 @@ "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true, "engines": { "node": ">=0.10.0" @@ -19425,40 +19472,35 @@ "node_modules/p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true, "engines": { "node": ">=4" } }, "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, + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dependencies": { - "yocto-queue": "^0.1.0" + "p-try": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=6" }, "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, + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dependencies": { - "p-limit": "^3.0.2" + "p-limit": "^2.2.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/p-map": { @@ -19592,10 +19634,93 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/pacote/node_modules/@npmcli/fs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", + "dev": true, + "dependencies": { + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/pacote/node_modules/@npmcli/move-file": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", + "dev": true, + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/pacote/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/pacote/node_modules/cacache": { + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", + "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", + "dev": true, + "dependencies": { + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/pacote/node_modules/glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/pacote/node_modules/hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", "dev": true, "dependencies": { "lru-cache": "^7.5.1" @@ -19604,6 +19729,39 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/pacote/node_modules/lru-cache": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", + "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/pacote/node_modules/minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pacote/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/pacote/node_modules/npm-package-arg": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", @@ -19646,6 +19804,42 @@ "node": ">=10" } }, + "node_modules/pacote/node_modules/ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/pacote/node_modules/unique-filename": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", + "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", + "dev": true, + "dependencies": { + "unique-slug": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/pacote/node_modules/unique-slug": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", + "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -19735,7 +19929,7 @@ "node_modules/pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true, "engines": { "node": ">=0.10.0" @@ -19752,7 +19946,7 @@ "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": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "engines": { "node": ">=0.10.0" } @@ -19829,58 +20023,6 @@ "node": ">=8" } }, - "node_modules/pkg-dir/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/pkg-dir/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/pkg-dir/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/pkg-dir/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/please-upgrade-node": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", @@ -19908,16 +20050,16 @@ "node_modules/posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss": { - "version": "8.4.20", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.20.tgz", - "integrity": "sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==", + "version": "8.4.19", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", + "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", "dev": true, "funding": [ { @@ -19972,17 +20114,13 @@ "url": "https://opencollective.com/postcss/" } }, - "node_modules/postcss-html": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.36.0.tgz", - "integrity": "sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw==", + "node_modules/postcss-bem-linter/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "dependencies": { - "htmlparser2": "^3.10.0" - }, - "peerDependencies": { - "postcss": ">=5.0.0", - "postcss-syntax": ">=0.36.0" + "engines": { + "node": ">=0.10.0" } }, "node_modules/postcss-less": { @@ -20020,16 +20158,25 @@ "url": "https://opencollective.com/postcss/" } }, + "node_modules/postcss-less/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/postcss-media-query-parser": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", - "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", + "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", "dev": true }, "node_modules/postcss-resolve-nested-selector": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", - "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", + "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", "dev": true }, "node_modules/postcss-safe-parser": { @@ -20067,6 +20214,15 @@ "url": "https://opencollective.com/postcss/" } }, + "node_modules/postcss-safe-parser/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/postcss-sass": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.4.4.tgz", @@ -20100,45 +20256,19 @@ "url": "https://opencollective.com/postcss/" } }, - "node_modules/postcss-scss": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-2.1.1.tgz", - "integrity": "sha512-jQmGnj0hSGLd9RscFw9LyuSVAa5Bl1/KBPqG1NQw9w8ND55nY4ZEsdlVuYJvLPpV+y0nwTV5v/4rHPzZRihQbA==", - "dev": true, - "dependencies": { - "postcss": "^7.0.6" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-scss/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "node_modules/postcss-scss/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "node_modules/postcss-sass/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" + "node": ">=0.10.0" } }, "node_modules/postcss-selector-parser": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", - "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -20148,15 +20278,6 @@ "node": ">=4" } }, - "node_modules/postcss-syntax": { - "version": "0.36.2", - "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz", - "integrity": "sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==", - "dev": true, - "peerDependencies": { - "postcss": ">=5.0.0" - } - }, "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", @@ -20173,18 +20294,15 @@ } }, "node_modules/prettier": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz", - "integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", + "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", "dev": true, "bin": { "prettier": "bin-prettier.js" }, "engines": { "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" } }, "node_modules/prettier-linter-helpers": { @@ -20225,6 +20343,12 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/pretty-format/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, "node_modules/proc-log": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-2.0.1.tgz", @@ -20270,7 +20394,7 @@ "node_modules/promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "dev": true }, "node_modules/promise-retry": { @@ -20312,17 +20436,13 @@ "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" } }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, "node_modules/proto-list": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", @@ -20335,16 +20455,10 @@ "integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==", "dev": true }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", "dev": true }, "node_modules/pump": { @@ -20369,19 +20483,13 @@ "node_modules/q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", "dev": true, "engines": { "node": ">=0.6.0", "teleport": ">=0.2.0" } }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -20422,54 +20530,31 @@ } }, "node_modules/react": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", - "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", "dependencies": { "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" + "object-assign": "^4.1.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", - "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", "dependencies": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" + "scheduler": "^0.20.2" }, "peerDependencies": { - "react": "^16.14.0" + "react": "17.0.2" } }, "node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/react-test-renderer": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.14.0.tgz", - "integrity": "sha512-L8yPjqPE5CZO6rKsKXRO/rVPiaCOy0tQQJbC+UjPNlobl5mad59lvPjwFsQHTvL03caVDIVr9x9/OSgDe6I5Eg==", - "dev": true, - "dependencies": { - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "react-is": "^16.8.6", - "scheduler": "^0.19.1" - }, - "peerDependencies": { - "react": "^16.14.0" - } - }, - "node_modules/react-test-renderer/node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", @@ -20553,9 +20638,9 @@ } }, "node_modules/read-package-json/node_modules/hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", "dev": true, "dependencies": { "lru-cache": "^7.5.1" @@ -20564,10 +20649,19 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/read-package-json/node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", + "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/read-package-json/node_modules/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -20615,18 +20709,6 @@ "node": ">=10" } }, - "node_modules/read-package-json/node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/read-pkg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", @@ -20658,76 +20740,6 @@ "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/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/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/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/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/read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", @@ -20752,15 +20764,6 @@ "node": ">=8" } }, - "node_modules/read-pkg-up/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, "node_modules/read-pkg-up/node_modules/type-fest": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", @@ -20770,12 +20773,6 @@ "node": ">=8" } }, - "node_modules/read-pkg/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/read-pkg/node_modules/load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", @@ -20791,18 +20788,6 @@ "node": ">=4" } }, - "node_modules/read-pkg/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/read-pkg/node_modules/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -20837,15 +20822,6 @@ "node": ">=4" } }, - "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, "node_modules/read-pkg/node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -20873,7 +20849,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", - "deprecated": "This functionality has been moved to @npmcli/fs", "dev": true, "dependencies": { "debuglog": "^1.0.1", @@ -20914,9 +20889,9 @@ "dev": true }, "node_modules/regenerate-unicode-properties": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", - "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", "dev": true, "dependencies": { "regenerate": "^1.4.2" @@ -20932,9 +20907,9 @@ "dev": true }, "node_modules/regenerator-transform": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", - "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", "dev": true, "dependencies": { "@babel/runtime": "^7.8.4" @@ -20983,32 +20958,32 @@ } }, "node_modules/regexpu-core": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz", - "integrity": "sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", + "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", "dev": true, "dependencies": { "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsgen": "^0.7.1", - "regjsparser": "^0.9.1", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" + "unicode-match-property-value-ecmascript": "^2.0.0" }, "engines": { "node": ">=4" } }, "node_modules/regjsgen": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", - "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", "dev": true }, "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", "dev": true, "dependencies": { "jsesc": "~0.5.0" @@ -21020,7 +20995,7 @@ "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==", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", "dev": true, "bin": { "jsesc": "bin/jsesc" @@ -21070,7 +21045,7 @@ "node_modules/remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", "dev": true }, "node_modules/repeat-element": { @@ -21085,7 +21060,7 @@ "node_modules/repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true, "engines": { "node": ">=0.10" @@ -21094,7 +21069,7 @@ "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true, "engines": { "node": ">=0.10.0" @@ -21124,19 +21099,13 @@ "node": ">=0.10.5" } }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true - }, "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", "dev": true, "dependencies": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.8.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -21182,7 +21151,7 @@ "node_modules/resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "deprecated": "https://github.com/lydell/resolve-url#deprecated", "dev": true }, @@ -21211,7 +21180,7 @@ "node_modules/retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", "dev": true, "engines": { "node": ">= 4" @@ -21289,39 +21258,15 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "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" - } - ] + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "node_modules/safe-regex": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "dependencies": { "ret": "~0.1.10" @@ -21405,7 +21350,7 @@ "node_modules/sane/node_modules/braces/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { "is-extendable": "^0.1.0" @@ -21451,7 +21396,7 @@ "node_modules/sane/node_modules/fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "dependencies": { "extend-shallow": "^2.0.1", @@ -21466,7 +21411,7 @@ "node_modules/sane/node_modules/fill-range/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { "is-extendable": "^0.1.0" @@ -21496,7 +21441,7 @@ "node_modules/sane/node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true, "engines": { "node": ">=0.10.0" @@ -21505,7 +21450,7 @@ "node_modules/sane/node_modules/is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "dependencies": { "kind-of": "^3.0.2" @@ -21517,7 +21462,7 @@ "node_modules/sane/node_modules/is-number/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { "is-buffer": "^1.1.5" @@ -21529,7 +21474,7 @@ "node_modules/sane/node_modules/is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true, "engines": { "node": ">=0.10.0" @@ -21562,7 +21507,7 @@ "node_modules/sane/node_modules/normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "dependencies": { "remove-trailing-separator": "^1.0.1" @@ -21574,7 +21519,7 @@ "node_modules/sane/node_modules/npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "dependencies": { "path-key": "^2.0.0" @@ -21586,7 +21531,7 @@ "node_modules/sane/node_modules/path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true, "engines": { "node": ">=4" @@ -21604,7 +21549,7 @@ "node_modules/sane/node_modules/shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "dependencies": { "shebang-regex": "^1.0.0" @@ -21616,7 +21561,7 @@ "node_modules/sane/node_modules/shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true, "engines": { "node": ">=0.10.0" @@ -21625,7 +21570,7 @@ "node_modules/sane/node_modules/to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "dependencies": { "is-number": "^3.0.0", @@ -21660,9 +21605,9 @@ } }, "node_modules/scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", "dependencies": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" @@ -21686,37 +21631,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/schema-utils/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/schema-utils/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/schema-utils/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/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -21728,7 +21642,7 @@ "node_modules/semver-compare": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", "dev": true }, "node_modules/serialize-javascript": { @@ -21744,7 +21658,7 @@ "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, "node_modules/set-value": { @@ -21765,7 +21679,7 @@ "node_modules/set-value/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { "is-extendable": "^0.1.0" @@ -21777,7 +21691,7 @@ "node_modules/set-value/node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true, "engines": { "node": ">=0.10.0" @@ -21961,7 +21875,7 @@ "node_modules/snapdragon-node/node_modules/define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "dependencies": { "is-descriptor": "^1.0.0" @@ -21991,7 +21905,7 @@ "node_modules/snapdragon-util/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { "is-buffer": "^1.1.5" @@ -22012,7 +21926,7 @@ "node_modules/snapdragon/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "dependencies": { "is-descriptor": "^0.1.0" @@ -22024,7 +21938,7 @@ "node_modules/snapdragon/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { "is-extendable": "^0.1.0" @@ -22036,7 +21950,7 @@ "node_modules/snapdragon/node_modules/is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "dependencies": { "kind-of": "^3.0.2" @@ -22048,7 +21962,7 @@ "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { "is-buffer": "^1.1.5" @@ -22066,7 +21980,7 @@ "node_modules/snapdragon/node_modules/is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "dependencies": { "kind-of": "^3.0.2" @@ -22078,7 +21992,7 @@ "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { "is-buffer": "^1.1.5" @@ -22104,7 +22018,7 @@ "node_modules/snapdragon/node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true, "engines": { "node": ">=0.10.0" @@ -22122,25 +22036,30 @@ "node_modules/snapdragon/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "node_modules/snapdragon/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "node_modules/snapdragon/node_modules/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==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", "dev": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "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" } }, "node_modules/socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", + "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", "dev": true, "dependencies": { - "ip": "^2.0.0", + "ip": "^1.1.5", "smart-buffer": "^4.2.0" }, "engines": { @@ -22187,9 +22106,9 @@ } }, "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "engines": { "node": ">=0.10.0" } @@ -22204,17 +22123,14 @@ } }, "node_modules/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==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", "dev": true, "dependencies": { "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" + "decode-uri-component": "^0.2.0" } }, "node_modules/source-map-support": { @@ -22227,6 +22143,15 @@ "source-map": "^0.6.0" } }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-url": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", @@ -22261,9 +22186,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", - "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", "dev": true }, "node_modules/specificity": { @@ -22311,24 +22236,12 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" - }, - "node_modules/ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dev": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", "dev": true, "dependencies": { "escape-string-regexp": "^2.0.0" @@ -22349,7 +22262,7 @@ "node_modules/static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "dependencies": { "define-property": "^0.2.5", @@ -22362,7 +22275,7 @@ "node_modules/static-extend/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "dependencies": { "is-descriptor": "^0.1.0" @@ -22374,7 +22287,7 @@ "node_modules/static-extend/node_modules/is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "dependencies": { "kind-of": "^3.0.2" @@ -22386,7 +22299,7 @@ "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { "is-buffer": "^1.1.5" @@ -22404,7 +22317,7 @@ "node_modules/static-extend/node_modules/is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "dependencies": { "kind-of": "^3.0.2" @@ -22416,7 +22329,7 @@ "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { "is-buffer": "^1.1.5" @@ -22457,6 +22370,26 @@ "safe-buffer": "~5.2.0" } }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "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/string-argv": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", @@ -22494,18 +22427,18 @@ } }, "node_modules/string.prototype.matchall": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", - "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz", + "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.2", "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.3", + "regexp.prototype.flags": "^1.3.1", "side-channel": "^1.0.4" }, "funding": { @@ -22513,28 +22446,28 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "es-abstract": "^1.19.5" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "es-abstract": "^1.19.5" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -22554,15 +22487,6 @@ "node": ">=4" } }, - "node_modules/stringify-object/node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -22587,7 +22511,7 @@ "node_modules/strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true, "engines": { "node": ">=0.10.0" @@ -22646,7 +22570,7 @@ "node_modules/style-search": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", - "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", + "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", "dev": true }, "node_modules/stylelint": { @@ -22852,15 +22776,15 @@ } }, "node_modules/stylelint-webpack-plugin": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/stylelint-webpack-plugin/-/stylelint-webpack-plugin-2.4.0.tgz", - "integrity": "sha512-MhXDqd8HPXdY51nGeDeUEXToximoIbc0Z5TQC1M0ApR0ejrOwj9dRZKiL/00MDRrQfuAGkjcJ6sOVvc4gRzbgQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/stylelint-webpack-plugin/-/stylelint-webpack-plugin-2.3.2.tgz", + "integrity": "sha512-gjerWQ7nY+4JdebL3LTDPp80DV10O1OOWtM+v+W29+ThzLsKGz3UptEVd0jVdFpWEohEXVilbnan2b/YXxakqA==", "dev": true, "dependencies": { "arrify": "^2.0.1", "globby": "^11.0.4", - "jest-worker": "^28.1.0", - "micromatch": "^4.0.5", + "jest-worker": "^27.3.1", + "micromatch": "^4.0.4", "normalize-path": "^3.0.0", "schema-utils": "^3.1.1" }, @@ -22895,9 +22819,9 @@ } }, "node_modules/stylelint-webpack-plugin/node_modules/jest-worker": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", - "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, "dependencies": { "@types/node": "*", @@ -22905,7 +22829,7 @@ "supports-color": "^8.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + "node": ">= 10.13.0" } }, "node_modules/stylelint-webpack-plugin/node_modules/supports-color": { @@ -22923,6 +22847,34 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/stylelint/node_modules/@stylelint/postcss-css-in-js": { + "version": "0.37.2", + "resolved": "https://registry.npmjs.org/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz", + "integrity": "sha512-nEhsFoJurt8oUmieT8qy4nk81WRHmJynmVwn/Vts08PL9fhgIsMhk1GId5yAN643OzqEEb5S/6At2TZW7pqPDA==", + "dev": true, + "dependencies": { + "@babel/core": ">=7.9.0" + }, + "peerDependencies": { + "postcss": ">=7.0.0", + "postcss-syntax": ">=0.36.2" + } + }, + "node_modules/stylelint/node_modules/@stylelint/postcss-markdown": { + "version": "0.36.2", + "resolved": "https://registry.npmjs.org/@stylelint/postcss-markdown/-/postcss-markdown-0.36.2.tgz", + "integrity": "sha512-2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ==", + "deprecated": "Use the original unforked package instead: postcss-markdown", + "dev": true, + "dependencies": { + "remark": "^13.0.0", + "unist-util-find-all-after": "^3.0.2" + }, + "peerDependencies": { + "postcss": ">=7.0.0", + "postcss-syntax": ">=0.36.2" + } + }, "node_modules/stylelint/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -22987,6 +22939,18 @@ "node": ">=8" } }, + "node_modules/stylelint/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/stylelint/node_modules/meow": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", @@ -23013,6 +22977,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/stylelint/node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/stylelint/node_modules/picocolors": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", @@ -23036,6 +23015,64 @@ "url": "https://opencollective.com/postcss/" } }, + "node_modules/stylelint/node_modules/postcss-html": { + "version": "0.36.0", + "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.36.0.tgz", + "integrity": "sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw==", + "dev": true, + "dependencies": { + "htmlparser2": "^3.10.0" + }, + "peerDependencies": { + "postcss": ">=5.0.0", + "postcss-syntax": ">=0.36.0" + } + }, + "node_modules/stylelint/node_modules/postcss-scss": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-2.1.1.tgz", + "integrity": "sha512-jQmGnj0hSGLd9RscFw9LyuSVAa5Bl1/KBPqG1NQw9w8ND55nY4ZEsdlVuYJvLPpV+y0nwTV5v/4rHPzZRihQbA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.6" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/stylelint/node_modules/postcss-syntax": { + "version": "0.36.2", + "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz", + "integrity": "sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==", + "dev": true, + "peerDependencies": { + "postcss": ">=5.0.0" + } + }, + "node_modules/stylelint/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stylelint/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/stylelint/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -23060,15 +23097,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stylelint/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/sugarss": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-2.0.0.tgz", @@ -23101,6 +23129,15 @@ "url": "https://opencollective.com/postcss/" } }, + "node_modules/sugarss/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -23113,9 +23150,9 @@ } }, "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", "dev": true, "dependencies": { "has-flag": "^4.0.0", @@ -23161,7 +23198,7 @@ "node_modules/svg-tags": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", - "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", "dev": true }, "node_modules/symbol-tree": { @@ -23171,9 +23208,9 @@ "dev": true }, "node_modules/table": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", + "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", "dev": true, "dependencies": { "ajv": "^8.0.1", @@ -23186,6 +23223,22 @@ "node": ">=10.0.0" } }, + "node_modules/table/node_modules/ajv": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", + "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, "node_modules/table/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -23219,6 +23272,12 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/table/node_modules/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 + }, "node_modules/table/node_modules/slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", @@ -23239,7 +23298,7 @@ "node_modules/tapable": { "version": "0.1.10", "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", - "integrity": "sha512-jX8Et4hHg57mug1/079yitEKWGB3LCwoxByLsNim89LABq8NqgiX+6iYVOsq0vX8uJHkU+DZ5fnq95f800bEsQ==", + "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=", "dev": true, "engines": { "node": ">=0.6" @@ -23278,6 +23337,18 @@ "node": ">=6" } }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/temp-dir": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", @@ -23303,37 +23374,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/terser": { - "version": "5.16.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", - "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", - "dev": true, - "peer": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/terser-webpack-plugin": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", - "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", + "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", "dev": true, "peer": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.14", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.0", - "terser": "^5.14.1" + "source-map": "^0.6.1", + "terser": "^5.7.2" }, "engines": { "node": ">= 10.13.0" @@ -23357,6 +23409,27 @@ } } }, + "node_modules/terser-webpack-plugin/node_modules/acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true, + "optional": true, + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "peer": true + }, "node_modules/terser-webpack-plugin/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -23382,6 +23455,16 @@ "node": ">= 10.13.0" } }, + "node_modules/terser-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/terser-webpack-plugin/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -23398,25 +23481,41 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/terser/node_modules/acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "node_modules/terser-webpack-plugin/node_modules/terser": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", + "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==", "dev": true, "peer": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.20" + }, "bin": { - "acorn": "bin/acorn" + "terser": "bin/terser" }, "engines": { - "node": ">=0.4.0" + "node": ">=10" + }, + "peerDependencies": { + "acorn": "^8.5.0" + }, + "peerDependenciesMeta": { + "acorn": { + "optional": true + } } }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "node_modules/terser-webpack-plugin/node_modules/terser/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true, - "peer": true + "peer": true, + "engines": { + "node": ">= 8" + } }, "node_modules/test-exclude": { "version": "6.0.0", @@ -23443,7 +23542,7 @@ "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, "node_modules/throat": { @@ -23455,7 +23554,7 @@ "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, "node_modules/through2": { @@ -23487,7 +23586,7 @@ "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "engines": { "node": ">=4" } @@ -23495,7 +23594,7 @@ "node_modules/to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "dependencies": { "kind-of": "^3.0.2" @@ -23513,7 +23612,7 @@ "node_modules/to-object-path/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { "is-buffer": "^1.1.5" @@ -23549,29 +23648,19 @@ } }, "node_modules/tough-cookie": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", - "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", "dev": true, "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" + "universalify": "^0.1.2" }, "engines": { "node": ">=6" } }, - "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/tr46": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", @@ -23640,22 +23729,22 @@ "typescript": ">=3.8 <5.0" } }, - "node_modules/ts-jest/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/ts-jest/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" + "bin": { + "mkdirp": "bin/cmd.js" }, "engines": { "node": ">=10" } }, "node_modules/ts-jest/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -23667,15 +23756,6 @@ "node": ">=10" } }, - "node_modules/ts-jest/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/ts-node": { "version": "10.9.1", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", @@ -23740,6 +23820,15 @@ "node": ">=0.4.0" } }, + "node_modules/ts-node/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/tsconfig-paths": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", @@ -23767,16 +23856,16 @@ "node_modules/tsconfig-paths/node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/tsutils": { @@ -23794,12 +23883,6 @@ "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" } }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -23836,7 +23919,7 @@ "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, "node_modules/typedarray-to-buffer": { @@ -23848,9 +23931,9 @@ } }, "node_modules/typescript": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", - "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", + "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -23860,9 +23943,9 @@ } }, "node_modules/uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "version": "3.15.5", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.5.tgz", + "integrity": "sha512-hNM5q5GbBRB5xB+PMqVRcgYe4c8jbyZ1pzZhS6jbq54/4F2gFK869ZheiE5A8/t+W5jtTNpWef/5Q9zk639FNQ==", "dev": true, "optional": true, "bin": { @@ -23910,18 +23993,18 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", "dev": true, "engines": { "node": ">=4" @@ -23972,36 +24055,12 @@ "node_modules/union-value/node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "dev": true, - "dependencies": { - "unique-slug": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/unist-util-find-all-after": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz", @@ -24045,18 +24104,18 @@ "dev": true }, "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, "engines": { - "node": ">= 10.0.0" + "node": ">= 4.0.0" } }, "node_modules/unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "dependencies": { "has-value": "^0.3.1", @@ -24069,7 +24128,7 @@ "node_modules/unset-value/node_modules/has-value": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "dependencies": { "get-value": "^2.0.3", @@ -24083,7 +24142,7 @@ "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "dependencies": { "isarray": "1.0.0" @@ -24095,18 +24154,12 @@ "node_modules/unset-value/node_modules/has-values": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/unset-value/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, "node_modules/upath": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", @@ -24118,9 +24171,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", + "integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", "funding": [ { "type": "opencollective", @@ -24154,20 +24207,10 @@ "node_modules/urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "deprecated": "Please see https://github.com/lydell/urix#deprecated", "dev": true }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dev": true, - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, "node_modules/use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -24180,7 +24223,7 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, "node_modules/uuid": { @@ -24219,9 +24262,9 @@ } }, "node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true, "engines": { "node": ">= 8" @@ -24283,7 +24326,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", "dev": true, "dependencies": { "browser-process-hrtime": "^1.0.0" @@ -24316,9 +24358,9 @@ } }, "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", + "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", "dev": true, "peer": true, "dependencies": { @@ -24348,35 +24390,35 @@ } }, "node_modules/webpack": { - "version": "5.75.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", - "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", + "version": "5.68.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.68.0.tgz", + "integrity": "sha512-zUcqaUO0772UuuW2bzaES2Zjlm/y3kRBQDVFVCge+s2Y8mwuUTdperGaAv65/NtRL/1zanpSJOq/MD8u61vo6g==", "dev": true, "peer": true, "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", + "@types/eslint-scope": "^3.7.0", + "@types/estree": "^0.0.50", "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/wasm-edit": "1.11.1", "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.7.1", + "acorn": "^8.4.1", "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", + "enhanced-resolve": "^5.8.3", "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", + "json-parse-better-errors": "^1.0.2", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", "schema-utils": "^3.1.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.4.0", + "watchpack": "^2.3.1", "webpack-sources": "^3.2.3" }, "bin": { @@ -24406,16 +24448,16 @@ } }, "node_modules/webpack/node_modules/@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", "dev": true, "peer": true }, "node_modules/webpack/node_modules/acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", "dev": true, "peer": true, "bin": { @@ -24436,9 +24478,9 @@ } }, "node_modules/webpack/node_modules/enhanced-resolve": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", - "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.0.tgz", + "integrity": "sha512-weDYmzbBygL7HzGGS26M3hGQx68vehdEg6VUmqSOaFzXExFqlnKuSvsEJCVGQHScS8CQMbrAqftT+AzzHNt/YA==", "dev": true, "peer": true, "dependencies": { @@ -24519,47 +24561,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", - "dev": true, - "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, - "node_modules/which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/wide-align": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", @@ -24581,7 +24588,7 @@ "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", "dev": true }, "node_modules/wrap-ansi": { @@ -24637,7 +24644,7 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "node_modules/write-file-atomic": { "version": "3.0.3", @@ -24783,9 +24790,9 @@ } }, "node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", + "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", "dev": true, "engines": { "node": ">=8.3.0" @@ -24825,13 +24832,10 @@ } }, "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true }, "node_modules/yallist": { "version": "4.0.0", @@ -24849,44 +24853,47 @@ } }, "node_modules/yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" }, "engines": { - "node": ">=12" + "node": ">=8" } }, "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, "engines": { - "node": ">=12" + "node": ">=10" } }, - "node_modules/yargs/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "node_modules/yargs/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" }, "engines": { - "node": ">=12" + "node": ">=6" } }, "node_modules/yn": { @@ -24922,150 +24929,141 @@ } }, "dependencies": { - "@adobe/css-tools": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.0.1.tgz", - "integrity": "sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g==", - "dev": true - }, "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.1.tgz", + "integrity": "sha512-Aolwjd7HSC2PyY0fDj/wA/EimQT4HfEnFYNp5s9CQlrdhyvWTtvZ5YzrUPu6R6/1jKiUlxu8bUhkdSnKHNAHMA==", "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.0" } }, "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", "requires": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.16.7" } }, "@babel/compat-data": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz", - "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==" + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz", + "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==" }, "@babel/core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.5.tgz", - "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==", - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-module-transforms": "^7.20.2", - "@babel/helpers": "^7.20.5", - "@babel/parser": "^7.20.5", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5", + "version": "7.17.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.2.tgz", + "integrity": "sha512-R3VH5G42VSDolRHyUO4V2cfag8WHcZyxdq5Z/m8Xyb92lW/Erm/6kM+XtRFGf3Mulre3mveni2NHfEUws8wSvw==", + "requires": { + "@ampproject/remapping": "^2.0.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.0", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helpers": "^7.17.2", + "@babel/parser": "^7.17.0", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.0", + "@babel/types": "^7.17.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", + "json5": "^2.1.2", "semver": "^6.3.0" } }, "@babel/eslint-parser": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz", - "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz", + "integrity": "sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA==", "dev": true, "requires": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-scope": "^5.1.1", "eslint-visitor-keys": "^2.1.0", "semver": "^6.3.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 + } } }, "@babel/generator": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.5.tgz", - "integrity": "sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.0.tgz", + "integrity": "sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw==", "requires": { - "@babel/types": "^7.20.5", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" } }, "@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.16.7" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", - "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", + "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.9" + "@babel/helper-explode-assignable-expression": "^7.16.7", + "@babel/types": "^7.16.7" } }, "@babel/helper-compilation-targets": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", - "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", + "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", "requires": { - "@babel/compat-data": "^7.20.0", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", + "@babel/compat-data": "^7.16.4", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.17.5", "semver": "^6.3.0" } }, "@babel/helper-create-class-features-plugin": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.5.tgz", - "integrity": "sha512-3RCdA/EmEaikrhayahwToF0fpweU/8o2p8vhc1c/1kftHOdTKuC65kik/TLc+qfbS8JKw4qqJbne4ovICDhmww==", + "version": "7.17.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz", + "integrity": "sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ==", "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-member-expression-to-functions": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.19.1", - "@babel/helper-split-export-declaration": "^7.18.6" + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz", - "integrity": "sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", + "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.2.1" + "@babel/helper-annotate-as-pure": "^7.16.7", + "regexpu-core": "^5.0.1" } }, "@babel/helper-define-polyfill-provider": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", - "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", "dev": true, "requires": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", "resolve": "^1.14.2", @@ -25073,138 +25071,144 @@ } }, "@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==" + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", + "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "requires": { + "@babel/types": "^7.16.7" + } }, "@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", + "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", "dev": true, "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.16.7" } }, "@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", + "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", "requires": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" + "@babel/helper-get-function-arity": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", + "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", + "requires": { + "@babel/types": "^7.16.7" } }, "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.16.7" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", - "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", + "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", "requires": { - "@babel/types": "^7.18.9" + "@babel/types": "^7.16.7" } }, "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.16.7" } }, "@babel/helper-module-transforms": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", - "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", + "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.2" + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" } }, "@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", + "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.16.7" } }, "@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==" + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz", + "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==" }, "@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", - "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", + "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-wrap-function": "^7.16.8", + "@babel/types": "^7.16.8" } }, "@babel/helper-replace-supers": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", - "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", + "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.19.1", - "@babel/types": "^7.19.0" + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-member-expression-to-functions": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/traverse": "^7.16.7", + "@babel/types": "^7.16.7" } }, "@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", + "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", "requires": { - "@babel/types": "^7.20.2" + "@babel/types": "^7.16.7" } }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", - "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", "dev": true, "requires": { - "@babel/types": "^7.20.0" + "@babel/types": "^7.16.0" } }, "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.16.7" } }, - "@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==" - }, "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" }, "@babel/helper-validator-option": { "version": "7.18.6", @@ -25212,242 +25216,241 @@ "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==" }, "@babel/helper-wrap-function": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", - "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", + "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" + "@babel/helper-function-name": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8" } }, "@babel/helpers": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz", - "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==", + "version": "7.17.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz", + "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", "requires": { - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.0", + "@babel/types": "^7.17.0" } }, "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", "requires": { - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz", - "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==" + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.0.tgz", + "integrity": "sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw==" }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", + "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", - "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", + "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", - "@babel/plugin-proposal-optional-chaining": "^7.18.9" + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.7" } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz", - "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==", + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", + "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8", "@babel/plugin-syntax-async-generators": "^7.8.4" } }, "@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", + "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-proposal-class-static-block": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", - "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz", + "integrity": "sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-class-static-block": "^7.14.5" } }, "@babel/plugin-proposal-decorators": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.20.5.tgz", - "integrity": "sha512-Lac7PpRJXcC3s9cKsBfl+uc+DYXU5FD06BrTFunQO6QIQT+DwyzDPURAowI3bcvD1dZF/ank1Z5rstUJn3Hn4Q==", + "version": "7.17.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.2.tgz", + "integrity": "sha512-WH8Z95CwTq/W8rFbMqb9p3hicpt4RX4f0K659ax2VHxgOyT6qQmUaEVEjIh4WR9Eh9NymkVn5vwsrE68fAQNUw==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.19.1", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/plugin-syntax-decorators": "^7.19.0" + "@babel/helper-create-class-features-plugin": "^7.17.1", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/plugin-syntax-decorators": "^7.17.0", + "charcodes": "^0.2.0" } }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", + "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3" } }, "@babel/plugin-proposal-export-default-from": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.18.10.tgz", - "integrity": "sha512-5H2N3R2aQFxkV4PIBUR/i7PUSwgTZjouJKzI8eKswfIjT0PhvzkPn0t0wIS5zn6maQuvtT0t1oHtMUz61LOuow==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.16.7.tgz", + "integrity": "sha512-+cENpW1rgIjExn+o5c8Jw/4BuH4eGKKYvkMB8/0ZxFQ9mC0t4z09VsPIwNg6waF69QYC81zxGeAsREGuqQoKeg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-default-from": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-export-default-from": "^7.16.7" } }, "@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", - "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", + "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", + "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-json-strings": "^7.8.3" } }, "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", - "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", + "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", + "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" } }, "@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", + "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-numeric-separator": "^7.10.4" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz", - "integrity": "sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz", + "integrity": "sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA==", "dev": true, "requires": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-plugin-utils": "^7.20.2", + "@babel/compat-data": "^7.16.4", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.1" + "@babel/plugin-transform-parameters": "^7.16.7" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", + "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", - "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", + "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, "@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "version": "7.16.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", + "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-class-features-plugin": "^7.16.10", + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-proposal-private-property-in-object": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz", - "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", + "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", + "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-syntax-async-generators": { @@ -25484,12 +25487,12 @@ } }, "@babel/plugin-syntax-decorators": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.19.0.tgz", - "integrity": "sha512-xaBZUEDntt4faL1yN8oIFlhfXeQAWJW7CLKYsHTUqriCUbj8xOra8bfxxKGi/UwExPFBuPdH4XfHc9rGQhrVkQ==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz", + "integrity": "sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-syntax-dynamic-import": { @@ -25502,12 +25505,12 @@ } }, "@babel/plugin-syntax-export-default-from": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.18.6.tgz", - "integrity": "sha512-Kr//z3ujSVNx6E9z9ih5xXXMqK07VVTuqPmqGe6Mss/zW5XPeLZeSDZoP9ab/hT4wPKqAgjl2PnhPrcpk8Seew==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.16.7.tgz", + "integrity": "sha512-4C3E4NsrLOgftKaTYTULhHsuQrGv3FHrBzOMDiS7UYKIpgGBkAdawg4h+EI8zPeK9M0fiIIh72hIwsI24K7MbA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-syntax-export-namespace-from": { @@ -25519,15 +25522,6 @@ "@babel/helper-plugin-utils": "^7.8.3" } }, - "@babel/plugin-syntax-import-assertions": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", - "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.19.0" - } - }, "@babel/plugin-syntax-import-meta": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", @@ -25545,12 +25539,12 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", - "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", + "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-syntax-logical-assignment-operators": { @@ -25619,411 +25613,410 @@ } }, "@babel/plugin-syntax-typescript": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", - "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz", + "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==", "requires": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", - "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", + "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", - "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", + "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-remap-async-to-generator": "^7.18.6" + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", + "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.5.tgz", - "integrity": "sha512-WvpEIW9Cbj9ApF3yJCjIEEf1EiNJLtXagOrL5LNWEZOo3jv8pmPoYTSNJQvqej8OavVlgOoOPw6/htGZro6IkA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", + "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-classes": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz", - "integrity": "sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.19.1", - "@babel/helper-split-export-declaration": "^7.18.6", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", + "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", - "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", + "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-destructuring": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz", - "integrity": "sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz", + "integrity": "sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", + "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", - "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", + "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", + "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-for-of": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", - "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", + "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", - "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", + "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", "dev": true, "requires": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", - "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", + "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", + "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", - "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", + "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", - "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz", + "integrity": "sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-simple-access": "^7.19.4" + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-simple-access": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", - "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", + "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-validator-identifier": "^7.19.1" + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", + "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", - "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", + "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-create-regexp-features-plugin": "^7.16.7" } }, "@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", + "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", + "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7" } }, "@babel/plugin-transform-parameters": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.5.tgz", - "integrity": "sha512-h7plkOmcndIUWXZFLgpbrh2+fXAi47zcUX7IrOQuZdLD0I0KvjJ6cvo3BEcAOsDOcZhVKGJqv07mkSqK0y2isQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", + "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", + "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-react-display-name": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", - "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", + "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-react-jsx": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz", - "integrity": "sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.7.tgz", + "integrity": "sha512-8D16ye66fxiE8m890w0BpPpngG9o9OVBBy0gH2E+2AR7qMR2ZpTYJEqLxAsoroenMId0p/wMW+Blc0meDgu0Ag==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/plugin-syntax-jsx": "^7.18.6", - "@babel/types": "^7.19.0" + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-jsx": "^7.16.7", + "@babel/types": "^7.16.7" } }, "@babel/plugin-transform-react-jsx-development": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", - "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", + "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", "dev": true, "requires": { - "@babel/plugin-transform-react-jsx": "^7.18.6" + "@babel/plugin-transform-react-jsx": "^7.16.7" } }, "@babel/plugin-transform-react-pure-annotations": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", - "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz", + "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-regenerator": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", - "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", + "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "regenerator-transform": "^0.15.1" + "regenerator-transform": "^0.14.2" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", + "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", + "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-spread": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", - "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", + "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", + "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-template-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", - "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", + "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", - "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", + "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-typescript": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.2.tgz", - "integrity": "sha512-jvS+ngBfrnTUBfOQq8NfGnSbF9BrqlR6hjJ2yVxMkmO5nL/cdifNbI30EfjRlN4g5wYWNnMPyj5Sa6R1pbLeag==", + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz", + "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.20.2", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-typescript": "^7.20.0" + "@babel/helper-create-class-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-typescript": "^7.16.7" } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", - "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", + "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", + "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/preset-env": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", - "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.20.1", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.18.6", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.2", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "version": "7.16.11", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", + "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.16.8", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-async-generator-functions": "^7.16.8", + "@babel/plugin-proposal-class-properties": "^7.16.7", + "@babel/plugin-proposal-class-static-block": "^7.16.7", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.16.7", + "@babel/plugin-proposal-json-strings": "^7.16.7", + "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.16.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-private-methods": "^7.16.11", + "@babel/plugin-proposal-private-property-in-object": "^7.16.7", + "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.20.0", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -26033,44 +26026,44 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.18.6", - "@babel/plugin-transform-async-to-generator": "^7.18.6", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.20.2", - "@babel/plugin-transform-classes": "^7.20.2", - "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.20.2", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.8", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.19.6", - "@babel/plugin-transform-modules-commonjs": "^7.19.6", - "@babel/plugin-transform-modules-systemjs": "^7.19.6", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.20.1", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.18.6", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.19.0", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.18.10", - "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.16.7", + "@babel/plugin-transform-async-to-generator": "^7.16.8", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.16.7", + "@babel/plugin-transform-classes": "^7.16.7", + "@babel/plugin-transform-computed-properties": "^7.16.7", + "@babel/plugin-transform-destructuring": "^7.16.7", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.16.7", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.16.7", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.16.7", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.16.7", + "@babel/plugin-transform-modules-commonjs": "^7.16.8", + "@babel/plugin-transform-modules-systemjs": "^7.16.7", + "@babel/plugin-transform-modules-umd": "^7.16.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", + "@babel/plugin-transform-new-target": "^7.16.7", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.16.7", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.16.7", + "@babel/plugin-transform-reserved-words": "^7.16.7", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.16.7", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.16.7", + "@babel/plugin-transform-typeof-symbol": "^7.16.7", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.20.2", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", + "@babel/types": "^7.16.8", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.20.2", "semver": "^6.3.0" } }, @@ -26088,82 +26081,81 @@ } }, "@babel/preset-react": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", - "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz", + "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-transform-react-display-name": "^7.18.6", - "@babel/plugin-transform-react-jsx": "^7.18.6", - "@babel/plugin-transform-react-jsx-development": "^7.18.6", - "@babel/plugin-transform-react-pure-annotations": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-transform-react-display-name": "^7.16.7", + "@babel/plugin-transform-react-jsx": "^7.16.7", + "@babel/plugin-transform-react-jsx-development": "^7.16.7", + "@babel/plugin-transform-react-pure-annotations": "^7.16.7" } }, "@babel/preset-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz", - "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz", + "integrity": "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==", "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-transform-typescript": "^7.18.6" + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-transform-typescript": "^7.16.7" } }, "@babel/runtime": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.6.tgz", - "integrity": "sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz", + "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", "dev": true, "requires": { - "regenerator-runtime": "^0.13.11" + "regenerator-runtime": "^0.13.4" } }, "@babel/runtime-corejs3": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.20.6.tgz", - "integrity": "sha512-tqeujPiuEfcH067mx+7otTQWROVMKHXEaOQcAeNV5dDdbPWvPcFA8/W9LXw2NfjNmOetqLl03dfnG2WALPlsRQ==", + "version": "7.17.2", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.2.tgz", + "integrity": "sha512-NcKtr2epxfIrNM4VOmPKO46TvDMCBhgi2CrSHaEarrz+Plk2K5r9QemmOFTGpZaoKnWoGH5MO+CzeRsih/Fcgg==", "dev": true, "requires": { - "core-js-pure": "^3.25.1", - "regenerator-runtime": "^0.13.11" + "core-js-pure": "^3.20.2", + "regenerator-runtime": "^0.13.4" } }, "@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" } }, "@babel/traverse": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.5.tgz", - "integrity": "sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==", - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.5", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.5", - "@babel/types": "^7.20.5", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.0.tgz", + "integrity": "sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg==", + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.0", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.17.0", + "@babel/types": "^7.17.0", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz", - "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-validator-identifier": "^7.16.7", "to-fast-properties": "^2.0.0" } }, @@ -26184,27 +26176,96 @@ } }, "@commitlint/cli": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-17.3.0.tgz", - "integrity": "sha512-/H0md7TsKflKzVPz226VfXzVafJFO1f9+r2KcFvmBu08V0T56lZU1s8WL7/xlxqLMqBTVaBf7Ixtc4bskdEEZg==", + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-17.2.0.tgz", + "integrity": "sha512-kd1zykcrjIKyDRftWW1E1TJqkgzeosEkv1BiYPCdzkb/g/3BrfgwZUHR1vg+HO3qKUb/0dN+jNXArhGGAHpmaQ==", "dev": true, "requires": { "@commitlint/format": "^17.0.0", - "@commitlint/lint": "^17.3.0", - "@commitlint/load": "^17.3.0", + "@commitlint/lint": "^17.2.0", + "@commitlint/load": "^17.2.0", "@commitlint/read": "^17.2.0", "@commitlint/types": "^17.0.0", "execa": "^5.0.0", - "lodash.isfunction": "^3.0.9", + "lodash": "^4.17.19", "resolve-from": "5.0.0", "resolve-global": "1.0.0", "yargs": "^17.0.0" + }, + "dependencies": { + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "dev": true, + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + } } }, "@commitlint/config-conventional": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.3.0.tgz", - "integrity": "sha512-hgI+fN5xF8nhS9uG/V06xyT0nlcyvHHMkq0kwRSr96vl5BFlRGaL2C0/YY4kQagfU087tmj01bJkG9Ek98Wllw==", + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.2.0.tgz", + "integrity": "sha512-g5hQqRa80f++SYS233dbDSg16YdyounMTAhVcmqtInNeY/GF3aA4st9SVtJxpeGrGmueMrU4L+BBb+6Vs5wrcg==", "dev": true, "requires": { "conventional-changelog-conventionalcommits": "^5.0.0" @@ -26225,20 +26286,36 @@ "requires": { "@commitlint/types": "^17.0.0", "ajv": "^8.11.0" + }, + "dependencies": { + "ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "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 + } } }, "@commitlint/ensure": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-17.3.0.tgz", - "integrity": "sha512-kWbrQHDoW5veIUQx30gXoLOCjWvwC6OOEofhPCLl5ytRPBDAQObMbxTha1Bt2aSyNE/IrJ0s0xkdZ1Gi3wJwQg==", + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-17.0.0.tgz", + "integrity": "sha512-M2hkJnNXvEni59S0QPOnqCKIK52G1XyXBGw51mvh7OXDudCmZ9tZiIPpU882p475Mhx48Ien1MbWjCP1zlyC0A==", "dev": true, "requires": { "@commitlint/types": "^17.0.0", - "lodash.camelcase": "^4.3.0", - "lodash.kebabcase": "^4.1.1", - "lodash.snakecase": "^4.1.1", - "lodash.startcase": "^4.4.0", - "lodash.upperfirst": "^4.3.1" + "lodash": "^4.17.19" } }, "@commitlint/execute-rule": { @@ -26318,15 +26395,6 @@ "semver": "7.3.7" }, "dependencies": { - "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" - } - }, "semver": { "version": "7.3.7", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", @@ -26339,43 +26407,41 @@ } }, "@commitlint/lint": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-17.3.0.tgz", - "integrity": "sha512-VilOTPg0i9A7CCWM49E9bl5jytfTvfTxf9iwbWAWNjxJ/A5mhPKbm3sHuAdwJ87tDk1k4j8vomYfH23iaY+1Rw==", + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-17.2.0.tgz", + "integrity": "sha512-N2oLn4Dj672wKH5qJ4LGO+73UkYXGHO+NTVUusGw83SjEv7GjpqPGKU6KALW2kFQ/GsDefSvOjpSi3CzWHQBDg==", "dev": true, "requires": { "@commitlint/is-ignored": "^17.2.0", "@commitlint/parse": "^17.2.0", - "@commitlint/rules": "^17.3.0", + "@commitlint/rules": "^17.2.0", "@commitlint/types": "^17.0.0" } }, "@commitlint/load": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-17.3.0.tgz", - "integrity": "sha512-u/pV6rCAJrCUN+HylBHLzZ4qj1Ew3+eN9GBPhNi9otGxtOfA8b+8nJSxaNbcC23Ins/kcpjGf9zPSVW7628Umw==", + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-17.2.0.tgz", + "integrity": "sha512-HDD57qSqNrk399R4TIjw31AWBG8dBjNj1MrDKZKmC/wvimtnIFlqzcu1+sxfXIOHj/+M6tcMWDtvknGUd7SU+g==", "dev": true, "requires": { "@commitlint/config-validator": "^17.1.0", "@commitlint/execute-rule": "^17.0.0", - "@commitlint/resolve-extends": "^17.3.0", + "@commitlint/resolve-extends": "^17.1.0", "@commitlint/types": "^17.0.0", "@types/node": "^14.0.0", "chalk": "^4.1.0", "cosmiconfig": "^7.0.0", "cosmiconfig-typescript-loader": "^4.0.0", - "lodash.isplainobject": "^4.0.6", - "lodash.merge": "^4.6.2", - "lodash.uniq": "^4.5.0", + "lodash": "^4.17.19", "resolve-from": "^5.0.0", "ts-node": "^10.8.1", "typescript": "^4.6.4" }, "dependencies": { "@types/node": { - "version": "14.18.35", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.35.tgz", - "integrity": "sha512-2ATO8pfhG1kDvw4Lc4C0GXIMSQFFJBCo/R1fSgTwmUlq5oy95LXyjDQinsRVgQY6gp6ghh3H91wk9ES5/5C+Tw==", + "version": "14.18.33", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.33.tgz", + "integrity": "sha512-qelS/Ra6sacc4loe/3MSjXNL1dNQ/GjxNHVzuChwMfmk7HuycRLVQN2qNY3XahK+fZc5E2szqQSKUyAF0E+2bg==", "dev": true }, "ansi-styles": { @@ -26457,33 +26523,83 @@ "fs-extra": "^10.0.0", "git-raw-commits": "^2.0.0", "minimist": "^1.2.6" + }, + "dependencies": { + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } } }, "@commitlint/resolve-extends": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.3.0.tgz", - "integrity": "sha512-Lf3JufJlc5yVEtJWC8o4IAZaB8FQAUaVlhlAHRACd0TTFizV2Lk2VH70et23KgvbQNf7kQzHs/2B4QZalBv6Cg==", + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.1.0.tgz", + "integrity": "sha512-jqKm00LJ59T0O8O4bH4oMa4XyJVEOK4GzH8Qye9XKji+Q1FxhZznxMV/bDLyYkzbTodBt9sL0WLql8wMtRTbqQ==", "dev": true, "requires": { "@commitlint/config-validator": "^17.1.0", "@commitlint/types": "^17.0.0", "import-fresh": "^3.0.0", - "lodash.mergewith": "^4.6.2", + "lodash": "^4.17.19", "resolve-from": "^5.0.0", "resolve-global": "^1.0.0" } }, "@commitlint/rules": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-17.3.0.tgz", - "integrity": "sha512-s2UhDjC5yP2utx3WWqsnZRzjgzAX8BMwr1nltC0u0p8T/nzpkx4TojEfhlsOUj1t7efxzZRjUAV0NxNwdJyk+g==", + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-17.2.0.tgz", + "integrity": "sha512-1YynwD4Eh7HXZNpqG8mtUlL2pSX2jBy61EejYJv4ooZPcg50Ak7LPOyD3a9UZnsE76AXWFBz+yo9Hv4MIpAa0Q==", "dev": true, "requires": { - "@commitlint/ensure": "^17.3.0", + "@commitlint/ensure": "^17.0.0", "@commitlint/message": "^17.2.0", "@commitlint/to-lines": "^17.0.0", "@commitlint/types": "^17.0.0", "execa": "^5.0.0" + }, + "dependencies": { + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + } } }, "@commitlint/to-lines": { @@ -26499,6 +26615,45 @@ "dev": true, "requires": { "find-up": "^5.0.0" + }, + "dependencies": { + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + } } }, "@commitlint/types": { @@ -26599,22 +26754,10 @@ "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" - } - }, "globals": { - "version": "13.19.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", - "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", + "version": "13.12.1", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", + "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -26626,12 +26769,6 @@ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "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==", - "dev": true - }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -26685,41 +26822,6 @@ "get-package-type": "^0.1.0", "js-yaml": "^3.13.1", "resolve-from": "^5.0.0" - }, - "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==", - "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==", - "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==", - "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==", - "requires": { - "p-limit": "^2.2.0" - } - } } }, "@istanbuljs/schema": { @@ -26929,6 +27031,12 @@ "graceful-fs": "^4.2.4" } }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -27123,6 +27231,12 @@ "graceful-fs": "^4.2.4" } }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -27143,6 +27257,14 @@ "callsites": "^3.0.0", "graceful-fs": "^4.2.4", "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "@jest/test-result": { @@ -27270,9 +27392,9 @@ } }, "ci-info": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz", - "integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==" + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", + "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==" }, "color-convert": { "version": "2.0.1", @@ -27305,6 +27427,11 @@ "picomatch": "^2.2.3" } }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -27379,75 +27506,36 @@ } } }, - "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" - }, - "@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "dev": true, - "peer": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "peer": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } - } + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", + "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==" }, "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", + "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==" }, "@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", + "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, "@lerna/add": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/add/-/add-5.6.2.tgz", - "integrity": "sha512-NHrm7kYiqP+EviguY7/NltJ3G9vGmJW6v2BASUOhP9FZDhYbq3O+rCDlFdoVRNtcyrSg90rZFMOWHph4KOoCQQ==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/add/-/add-5.6.1.tgz", + "integrity": "sha512-cZvqMYoAclefw/KQwrRIpeQiKuj/KhbkNItWc6LnWcpweUmnrAm/AEfddIOnSagRHUgkSIY/pafjL2DGdIU25w==", "dev": true, "requires": { - "@lerna/bootstrap": "5.6.2", - "@lerna/command": "5.6.2", - "@lerna/filter-options": "5.6.2", - "@lerna/npm-conf": "5.6.2", - "@lerna/validation-error": "5.6.2", + "@lerna/bootstrap": "5.6.1", + "@lerna/command": "5.6.1", + "@lerna/filter-options": "5.6.1", + "@lerna/npm-conf": "5.6.1", + "@lerna/validation-error": "5.6.1", "dedent": "^0.7.0", "npm-package-arg": "8.1.1", "p-map": "^4.0.0", @@ -27455,15 +27543,6 @@ "semver": "^7.3.4" }, "dependencies": { - "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" - } - }, "semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -27476,23 +27555,23 @@ } }, "@lerna/bootstrap": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-5.6.2.tgz", - "integrity": "sha512-S2fMOEXbef7nrybQhzBywIGSLhuiQ5huPp1sU+v9Y6XEBsy/2IA+lb0gsZosvPqlRfMtiaFstL+QunaBhlWECA==", - "dev": true, - "requires": { - "@lerna/command": "5.6.2", - "@lerna/filter-options": "5.6.2", - "@lerna/has-npm-version": "5.6.2", - "@lerna/npm-install": "5.6.2", - "@lerna/package-graph": "5.6.2", - "@lerna/pulse-till-done": "5.6.2", - "@lerna/rimraf-dir": "5.6.2", - "@lerna/run-lifecycle": "5.6.2", - "@lerna/run-topologically": "5.6.2", - "@lerna/symlink-binary": "5.6.2", - "@lerna/symlink-dependencies": "5.6.2", - "@lerna/validation-error": "5.6.2", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-5.6.1.tgz", + "integrity": "sha512-YMNDTDtAo5fpt/pmA/JOcU2HvgD/bdwiZAa80312HcRy6MortJqFDo6wOM6trfoqf0XkWOpcw+P7/d/8+b8SVw==", + "dev": true, + "requires": { + "@lerna/command": "5.6.1", + "@lerna/filter-options": "5.6.1", + "@lerna/has-npm-version": "5.6.1", + "@lerna/npm-install": "5.6.1", + "@lerna/package-graph": "5.6.1", + "@lerna/pulse-till-done": "5.6.1", + "@lerna/rimraf-dir": "5.6.1", + "@lerna/run-lifecycle": "5.6.1", + "@lerna/run-topologically": "5.6.1", + "@lerna/symlink-binary": "5.6.1", + "@lerna/symlink-dependencies": "5.6.1", + "@lerna/validation-error": "5.6.1", "@npmcli/arborist": "5.3.0", "dedent": "^0.7.0", "get-port": "^5.1.1", @@ -27505,15 +27584,6 @@ "semver": "^7.3.4" }, "dependencies": { - "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" - } - }, "semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -27526,32 +27596,32 @@ } }, "@lerna/changed": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-5.6.2.tgz", - "integrity": "sha512-uUgrkdj1eYJHQGsXXlpH5oEAfu3x0qzeTjgvpdNrxHEdQWi7zWiW59hRadmiImc14uJJYIwVK5q/QLugrsdGFQ==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-5.6.1.tgz", + "integrity": "sha512-YVXkTEXlQWW1BSyURwZHz4HDpfl/yAwkLQbRQ2OtEmknkh4QOK41PPBgX0q1SCWKs3OYdSuI30A2H3KY8LMkxg==", "dev": true, "requires": { - "@lerna/collect-updates": "5.6.2", - "@lerna/command": "5.6.2", - "@lerna/listable": "5.6.2", - "@lerna/output": "5.6.2" + "@lerna/collect-updates": "5.6.1", + "@lerna/command": "5.6.1", + "@lerna/listable": "5.6.1", + "@lerna/output": "5.6.1" } }, "@lerna/check-working-tree": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-5.6.2.tgz", - "integrity": "sha512-6Vf3IB6p+iNIubwVgr8A/KOmGh5xb4SyRmhFtAVqe33yWl2p3yc+mU5nGoz4ET3JLF1T9MhsePj0hNt6qyOTLQ==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-5.6.1.tgz", + "integrity": "sha512-pzM/d+009Yl7ThpbWPntao5WuHi4nb/T9WKTOG/CzS/yLQgceVaX1vRaf3fML92RYmV+XGFPq+PaVQXtwHdMkA==", "dev": true, "requires": { - "@lerna/collect-uncommitted": "5.6.2", - "@lerna/describe-ref": "5.6.2", - "@lerna/validation-error": "5.6.2" + "@lerna/collect-uncommitted": "5.6.1", + "@lerna/describe-ref": "5.6.1", + "@lerna/validation-error": "5.6.1" } }, "@lerna/child-process": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-5.6.2.tgz", - "integrity": "sha512-QIOQ3jIbWdduHd5892fbo3u7/dQgbhzEBB7cvf+Ys/iCPP8UQrBECi1lfRgA4kcTKC2MyMz0SoyXZz/lFcXc3A==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-5.6.1.tgz", + "integrity": "sha512-+86Z5EwBkdypTyV8z8Se3McbGCHh4wUBfGuOoNmar4NjeY2HVuiRCoaJsyqgoyNLoXJb1gqDGlWkG5LTuKvw/A==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -27593,12 +27663,41 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "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 }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -27611,33 +27710,50 @@ } }, "@lerna/clean": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-5.6.2.tgz", - "integrity": "sha512-A7j8r0Hk2pGyLUyaCmx4keNHen1L/KdcOjb4nR6X8GtTJR5AeA47a8rRKOCz9wwdyMPlo2Dau7d3RV9viv7a5g==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-5.6.1.tgz", + "integrity": "sha512-af+jZ/JT5AKvnW3JwFjqcuZyOiV1MCdYCi8KwHGJbEOT3ak2u7jdgFyHYtTngYTYeFn+VOSi9+vnVZ8RhQ0DQg==", "dev": true, "requires": { - "@lerna/command": "5.6.2", - "@lerna/filter-options": "5.6.2", - "@lerna/prompt": "5.6.2", - "@lerna/pulse-till-done": "5.6.2", - "@lerna/rimraf-dir": "5.6.2", + "@lerna/command": "5.6.1", + "@lerna/filter-options": "5.6.1", + "@lerna/prompt": "5.6.1", + "@lerna/pulse-till-done": "5.6.1", + "@lerna/rimraf-dir": "5.6.1", "p-map": "^4.0.0", "p-map-series": "^2.1.0", "p-waterfall": "^2.1.1" } }, "@lerna/cli": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/cli/-/cli-5.6.2.tgz", - "integrity": "sha512-w0NRIEqDOmYKlA5t0iyqx0hbY7zcozvApmfvwF0lhkuhf3k6LRAFSamtimGQWicC779a7J2NXw4ASuBV47Fs1Q==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/cli/-/cli-5.6.1.tgz", + "integrity": "sha512-y7GmT30rVovwJHKZQE+1aH5BbR+m9psNwzGhAl3bI3pIi3DPNwa+5Ag7XV+tzKItqwfNtNQbrGIt6u3xbVgR3Q==", "dev": true, "requires": { - "@lerna/global-options": "5.6.2", + "@lerna/global-options": "5.6.1", "dedent": "^0.7.0", "npmlog": "^6.0.2", "yargs": "^16.2.0" }, "dependencies": { + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, "yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", @@ -27652,22 +27768,16 @@ "y18n": "^5.0.5", "yargs-parser": "^20.2.2" } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true } } }, "@lerna/collect-uncommitted": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-5.6.2.tgz", - "integrity": "sha512-i0jhxpypyOsW2PpPwIw4xg6EPh7/N3YuiI6P2yL7PynZ8nOv8DkIdoyMkhUP4gALjBfckH8Bj94eIaKMviqW4w==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-5.6.1.tgz", + "integrity": "sha512-Z1I4BFBcbqxX3RRiHtPA3JU92NOyTeJF/pWB5DImWDL7i5AYXWYA6iW99HyKTGfIsA3GrS4BIL0UOmp4vP7Yvw==", "dev": true, "requires": { - "@lerna/child-process": "5.6.2", + "@lerna/child-process": "5.6.1", "chalk": "^4.1.0", "npmlog": "^6.0.2" }, @@ -27724,43 +27834,74 @@ } }, "@lerna/collect-updates": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-5.6.2.tgz", - "integrity": "sha512-DdTK13X6PIsh9HINiMniFeiivAizR/1FBB+hDVe6tOhsXFBfjHMw1xZhXlE+mYIoFmDm1UFK7zvQSexoaxRqFA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-5.6.1.tgz", + "integrity": "sha512-xY5nJ//ACDVU/k9zn45W//wWw9+Cf4HWN7nla8J1YHLsRmn79uJONZnyK3MBCjMpgVzSAmMe47wuDu+ZzqV/Ew==", "dev": true, "requires": { - "@lerna/child-process": "5.6.2", - "@lerna/describe-ref": "5.6.2", + "@lerna/child-process": "5.6.1", + "@lerna/describe-ref": "5.6.1", "minimatch": "^3.0.4", "npmlog": "^6.0.2", "slash": "^3.0.0" } }, "@lerna/command": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/command/-/command-5.6.2.tgz", - "integrity": "sha512-eLVGI9TmxcaGt1M7TXGhhBZoeWOtOedMiH7NuCGHtL6TMJ9k+SCExyx+KpNmE6ImyNOzws6EvYLPLjftiqmoaA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/command/-/command-5.6.1.tgz", + "integrity": "sha512-QxJr73TUQQ4B+4mWfwH7kNNTxP3lBnNKN6zX9NnjanQ2u6Nij/SMbvym1L0T2EVgZMseFzZEQnXE3d+jbWn/aQ==", "dev": true, "requires": { - "@lerna/child-process": "5.6.2", - "@lerna/package-graph": "5.6.2", - "@lerna/project": "5.6.2", - "@lerna/validation-error": "5.6.2", - "@lerna/write-log-file": "5.6.2", + "@lerna/child-process": "5.6.1", + "@lerna/package-graph": "5.6.1", + "@lerna/project": "5.6.1", + "@lerna/validation-error": "5.6.1", + "@lerna/write-log-file": "5.6.1", "clone-deep": "^4.0.1", "dedent": "^0.7.0", "execa": "^5.0.0", "is-ci": "^2.0.0", "npmlog": "^6.0.2" + }, + "dependencies": { + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + } } }, "@lerna/conventional-commits": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-5.6.2.tgz", - "integrity": "sha512-fPrJpYJhxCgY2uyOCTcAAC6+T6lUAtpEGxLbjWHWTb13oKKEygp9THoFpe6SbAD0fYMb3jeZCZCqNofM62rmuA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-5.6.1.tgz", + "integrity": "sha512-H86fO470tU/lnws+xrSxzeJFBehAo10dtI35+AC9kwub7XwWO19AhdbQjf4PwWhG8/CTl65Tn9UMg+kHYilmzA==", "dev": true, "requires": { - "@lerna/validation-error": "5.6.2", + "@lerna/validation-error": "5.6.1", "conventional-changelog-angular": "^5.0.12", "conventional-changelog-core": "^4.2.4", "conventional-recommended-bump": "^6.1.0", @@ -27772,26 +27913,11 @@ "semver": "^7.3.4" }, "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "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" - } + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true }, "semver": { "version": "7.3.8", @@ -27805,17 +27931,18 @@ } }, "@lerna/create": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/create/-/create-5.6.2.tgz", - "integrity": "sha512-+Y5cMUxMNXjTTU9IHpgRYIwKo39w+blui1P+s+qYlZUSCUAew0xNpOBG8iN0Nc5X9op4U094oIdHxv7Dyz6tWQ==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/create/-/create-5.6.1.tgz", + "integrity": "sha512-DSDprUvSszb6qedync3TFfDLrFzP264LNPdw+MBSw4o3lpZAmAGelzyw+xSQQQjLNoGC5q/UUePKiCiWps8aPw==", "dev": true, "requires": { - "@lerna/child-process": "5.6.2", - "@lerna/command": "5.6.2", - "@lerna/npm-conf": "5.6.2", - "@lerna/validation-error": "5.6.2", + "@lerna/child-process": "5.6.1", + "@lerna/command": "5.6.1", + "@lerna/npm-conf": "5.6.1", + "@lerna/validation-error": "5.6.1", "dedent": "^0.7.0", "fs-extra": "^9.1.0", + "globby": "^11.0.2", "init-package-json": "^3.0.2", "npm-package-arg": "8.1.1", "p-reduce": "^2.1.0", @@ -27828,27 +27955,6 @@ "yargs-parser": "20.2.4" }, "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "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" - } - }, "semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -27867,103 +27973,89 @@ } }, "@lerna/create-symlink": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-5.6.2.tgz", - "integrity": "sha512-0WIs3P6ohPVh2+t5axrLZDE5Dt7fe3Kv0Auj0sBiBd6MmKZ2oS76apIl0Bspdbv8jX8+TRKGv6ib0280D0dtEw==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-5.6.1.tgz", + "integrity": "sha512-u46aoyxdoHXiyOQ1vCsA8PPkPkyjZanKuiJxnqMXITMwpQFjo18FvSN9BvnZkbJ6Jwnj/boO1TjDUewrQ4wPjw==", "dev": true, "requires": { "cmd-shim": "^5.0.0", "fs-extra": "^9.1.0", "npmlog": "^6.0.2" - }, - "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - } } }, "@lerna/describe-ref": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-5.6.2.tgz", - "integrity": "sha512-UqU0N77aT1W8duYGir7R+Sk3jsY/c4lhcCEcnayMpFScMbAp0ETGsW04cYsHK29sgg+ZCc5zEwebBqabWhMhnA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-5.6.1.tgz", + "integrity": "sha512-VskLszuC3NoN5l31kSh3NiIt4cqaulBI75Ek1HDT+VcGXR2AJzsE1BweDWrh2xJBdqdK8cLp72R/vgUDbjKQCg==", "dev": true, "requires": { - "@lerna/child-process": "5.6.2", + "@lerna/child-process": "5.6.1", "npmlog": "^6.0.2" } }, "@lerna/diff": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-5.6.2.tgz", - "integrity": "sha512-aHKzKvUvUI8vOcshC2Za/bdz+plM3r/ycqUrPqaERzp+kc1pYHyPeXezydVdEmgmmwmyKI5hx4+2QNnzOnun2A==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-5.6.1.tgz", + "integrity": "sha512-5JTxFUuLfEJZwtplAhWAbffv+FzJsP9ndsJFsmobdfKHZxxoyCvwc5fgMFRgQQMZcQue+lnZEYITJim078xy2A==", "dev": true, "requires": { - "@lerna/child-process": "5.6.2", - "@lerna/command": "5.6.2", - "@lerna/validation-error": "5.6.2", + "@lerna/child-process": "5.6.1", + "@lerna/command": "5.6.1", + "@lerna/validation-error": "5.6.1", "npmlog": "^6.0.2" } }, "@lerna/exec": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-5.6.2.tgz", - "integrity": "sha512-meZozok5stK7S0oAVn+kdbTmU+kHj9GTXjW7V8kgwG9ld+JJMTH3nKK1L3mEKyk9TFu9vFWyEOF7HNK6yEOoVg==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-5.6.1.tgz", + "integrity": "sha512-nNZAm6yhbHG59xMOCnJjYjQRtjqZqwjSiWakWz8upj+2HBd2Z0eMnQvrX1j9GhurhgHzhG7AM7FLnJHyh1b3Tw==", "dev": true, "requires": { - "@lerna/child-process": "5.6.2", - "@lerna/command": "5.6.2", - "@lerna/filter-options": "5.6.2", - "@lerna/profiler": "5.6.2", - "@lerna/run-topologically": "5.6.2", - "@lerna/validation-error": "5.6.2", + "@lerna/child-process": "5.6.1", + "@lerna/command": "5.6.1", + "@lerna/filter-options": "5.6.1", + "@lerna/profiler": "5.6.1", + "@lerna/run-topologically": "5.6.1", + "@lerna/validation-error": "5.6.1", "p-map": "^4.0.0" } }, "@lerna/filter-options": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-5.6.2.tgz", - "integrity": "sha512-4Z0HIhPak2TabTsUqEBQaQeOqgqEt0qyskvsY0oviYvqP/nrJfJBZh4H93jIiNQF59LJCn5Ce3KJJrLExxjlzw==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-5.6.1.tgz", + "integrity": "sha512-uii0ZDlv2j8e6d3D25wp59L0nRUh7C3B6ImCTOraEdkir6E1UEXZK7VmIzxWD44L78vnUW1kl+j/q7Kib3cP/g==", "dev": true, "requires": { - "@lerna/collect-updates": "5.6.2", - "@lerna/filter-packages": "5.6.2", + "@lerna/collect-updates": "5.6.1", + "@lerna/filter-packages": "5.6.1", "dedent": "^0.7.0", "npmlog": "^6.0.2" } }, "@lerna/filter-packages": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-5.6.2.tgz", - "integrity": "sha512-el9V2lTEG0Bbz+Omo45hATkRVnChCTJhcTpth19cMJ6mQ4M5H4IgbWCJdFMBi/RpTnOhz9BhJxDbj95kuIvvzw==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-5.6.1.tgz", + "integrity": "sha512-uKaIebxrx235wg78SqY8A0ZugValdW6PgwkDFjss/Y2m8/9c+PiAbfkBeF5Q8iv8VP7te2MsGcvV12UmIQKDdA==", "dev": true, "requires": { - "@lerna/validation-error": "5.6.2", + "@lerna/validation-error": "5.6.1", "multimatch": "^5.0.0", "npmlog": "^6.0.2" } }, "@lerna/get-npm-exec-opts": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-5.6.2.tgz", - "integrity": "sha512-0RbSDJ+QC9D5UWZJh3DN7mBIU1NhBmdHOE289oHSkjDY+uEjdzMPkEUy+wZ8fCzMLFnnNQkAEqNaOAzZ7dmFLA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-5.6.1.tgz", + "integrity": "sha512-y+Fzd9l1LM6tlarKrWxXQBKm02m7sjzj1T7vgiPW5uo324qEZVil89849iXgm2tLZt7/KD18Gqene2Hik0jmGQ==", "dev": true, "requires": { "npmlog": "^6.0.2" } }, "@lerna/get-packed": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-5.6.2.tgz", - "integrity": "sha512-pp5nNDmtrtd21aKHjwwOY5CS7XNIHxINzGa+Jholn1jMDYUtdskpN++ZqYbATGpW831++NJuiuBVyqAWi9xbXg==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-5.6.1.tgz", + "integrity": "sha512-PI+WSCHXsBCF2+McaEUtcR3acZu/0JApUH+IJMz0TdYzspF4ewzEWhBn+4Gmw926oFsqnqfz37KInXNHGmBvCg==", "dev": true, "requires": { "fs-extra": "^9.1.0", @@ -27971,27 +28063,24 @@ "tar": "^6.1.0" }, "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", "dev": true, "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "minipass": "^3.1.1" } } } }, "@lerna/github-client": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/github-client/-/github-client-5.6.2.tgz", - "integrity": "sha512-pjALazZoRZtKqfwLBwmW3HPptVhQm54PvA8s3qhCQ+3JkqrZiIFwkkxNZxs3jwzr+aaSOzfhSzCndg0urb0GXA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/github-client/-/github-client-5.6.1.tgz", + "integrity": "sha512-XGAry8MX2fou8aAP3mf1+6oPP34QdgXzrRbdtXlCv8ksddbp/S1Tn5hNvorEJn2yDMNcjIDIdvrL/T4UiVzQjA==", "dev": true, "requires": { - "@lerna/child-process": "5.6.2", + "@lerna/child-process": "5.6.1", "@octokit/plugin-enterprise-rest": "^6.0.1", "@octokit/rest": "^19.0.3", "git-url-parse": "^13.1.0", @@ -27999,9 +28088,9 @@ } }, "@lerna/gitlab-client": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-5.6.2.tgz", - "integrity": "sha512-TInJmbrsmYIwUyrRxytjO82KjJbRwm67F7LoZs1shAq6rMvNqi4NxSY9j+hT/939alFmEq1zssoy/caeLXHRfQ==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-5.6.1.tgz", + "integrity": "sha512-zNG27B1dNy4QF45tUPEywthNtsDbzvsUSiokMx847Gxq5qLHtRHRR8kK51Q2dJ6u2biZafGNyzHqT5CQ/0ndnQ==", "dev": true, "requires": { "node-fetch": "^2.6.1", @@ -28009,30 +28098,21 @@ } }, "@lerna/global-options": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/global-options/-/global-options-5.6.2.tgz", - "integrity": "sha512-kaKELURXTlczthNJskdOvh6GGMyt24qat0xMoJZ8plYMdofJfhz24h1OFcvB/EwCUwP/XV1+ohE5P+vdktbrEg==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/global-options/-/global-options-5.6.1.tgz", + "integrity": "sha512-VgHVo0T2NC/YK/mR9nu8Z3DL65UtoamRclrnqK3HsaTub15UnqAlbcnEk2lB50e5TLsIZAp4TatDYrYNPKKJPQ==", "dev": true }, "@lerna/has-npm-version": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-5.6.2.tgz", - "integrity": "sha512-kXCnSzffmTWsaK0ol30coyCfO8WH26HFbmJjRBzKv7VGkuAIcB6gX2gqRRgNLLlvI+Yrp+JSlpVNVnu15SEH2g==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-5.6.1.tgz", + "integrity": "sha512-V6lt830kXnEm/1pHyFh9Pci4lgRbQcBr1eORAD8d03uxQDfxA7Z8Gu9afhH5m0rk+P8txNO/3pUe2pf5Ex4DGg==", "dev": true, "requires": { - "@lerna/child-process": "5.6.2", + "@lerna/child-process": "5.6.1", "semver": "^7.3.4" }, "dependencies": { - "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" - } - }, "semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -28045,107 +28125,79 @@ } }, "@lerna/import": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/import/-/import-5.6.2.tgz", - "integrity": "sha512-xQUE49mtcP0z3KUdXBsyvp8rGDz6phuYUoQbhcFRJ7WPcQKzMvtm0XYrER6c2YWEX7QOuDac6tU82P8zTrTBaA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/import/-/import-5.6.1.tgz", + "integrity": "sha512-cOLjRAWWfY1ezsiBRIbA6lN4THu89xjtS+wJ8WUqr/xbYbGZ/qr4DBAWnpWpMfLLWN6Eel6nEAhah+Ch1IKNog==", "dev": true, "requires": { - "@lerna/child-process": "5.6.2", - "@lerna/command": "5.6.2", - "@lerna/prompt": "5.6.2", - "@lerna/pulse-till-done": "5.6.2", - "@lerna/validation-error": "5.6.2", + "@lerna/child-process": "5.6.1", + "@lerna/command": "5.6.1", + "@lerna/prompt": "5.6.1", + "@lerna/pulse-till-done": "5.6.1", + "@lerna/validation-error": "5.6.1", "dedent": "^0.7.0", "fs-extra": "^9.1.0", "p-map-series": "^2.1.0" - }, - "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - } } }, "@lerna/info": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/info/-/info-5.6.2.tgz", - "integrity": "sha512-MPjY5Olj+fiZHgfEdwXUFRKamdEuLr9Ob/qut8JsB/oQSQ4ALdQfnrOcMT8lJIcC2R67EA5yav2lHPBIkezm8A==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/info/-/info-5.6.1.tgz", + "integrity": "sha512-0ixkn6Z8jlesMozQBlG3vdivFOjleapCusjDFZ1F7quuEcWDQuW1bQ4i55ISsVhh5gLCTTwQiNEhPnDQzs7fww==", "dev": true, "requires": { - "@lerna/command": "5.6.2", - "@lerna/output": "5.6.2", + "@lerna/command": "5.6.1", + "@lerna/output": "5.6.1", "envinfo": "^7.7.4" } }, "@lerna/init": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/init/-/init-5.6.2.tgz", - "integrity": "sha512-ahU3/lgF+J8kdJAQysihFJROHthkIDXfHmvhw7AYnzf94HjxGNXj7nz6i3At1/dM/1nQhR+4/uNR1/OU4tTYYQ==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/init/-/init-5.6.1.tgz", + "integrity": "sha512-EPA3XCteadwZjb7GOqJFw+QcqwV/CrpWm9FZOEpo9uXNUCvOW8NqDlFzTEMrMiXBTldoP0H9SK9yM81c0Mip7Q==", "dev": true, "requires": { - "@lerna/child-process": "5.6.2", - "@lerna/command": "5.6.2", - "@lerna/project": "5.6.2", + "@lerna/child-process": "5.6.1", + "@lerna/command": "5.6.1", + "@lerna/project": "5.6.1", "fs-extra": "^9.1.0", "p-map": "^4.0.0", "write-json-file": "^4.3.0" - }, - "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - } } }, "@lerna/link": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/link/-/link-5.6.2.tgz", - "integrity": "sha512-hXxQ4R3z6rUF1v2x62oIzLyeHL96u7ZBhxqYMJrm763D1VMSDcHKF9CjJfc6J9vH5Z2ZbL6CQg50Hw5mUpJbjg==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/link/-/link-5.6.1.tgz", + "integrity": "sha512-iWr7HGviIK3N/WNUoAZVV0RRf0CQzpR9uJXmsfuVKXj5gN8IHqFOdGS8TIIN57ekC0DOpDtR21h65zZXD1TSHQ==", "dev": true, "requires": { - "@lerna/command": "5.6.2", - "@lerna/package-graph": "5.6.2", - "@lerna/symlink-dependencies": "5.6.2", - "@lerna/validation-error": "5.6.2", + "@lerna/command": "5.6.1", + "@lerna/package-graph": "5.6.1", + "@lerna/symlink-dependencies": "5.6.1", + "@lerna/validation-error": "5.6.1", "p-map": "^4.0.0", "slash": "^3.0.0" } }, "@lerna/list": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/list/-/list-5.6.2.tgz", - "integrity": "sha512-WjE5O2tQ3TcS+8LqXUaxi0YdldhxUhNihT5+Gg4vzGdIlrPDioO50Zjo9d8jOU7i3LMIk6EzCma0sZr2CVfEGg==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/list/-/list-5.6.1.tgz", + "integrity": "sha512-4VyAvVwKZQC+ntfjJuL8PbFu5jeR/8t21BzFXVWRkrZc3/sGVxSNtzi+9Brgrxm4n8qir3+wiiC4LSHdYG8Mlw==", "dev": true, "requires": { - "@lerna/command": "5.6.2", - "@lerna/filter-options": "5.6.2", - "@lerna/listable": "5.6.2", - "@lerna/output": "5.6.2" + "@lerna/command": "5.6.1", + "@lerna/filter-options": "5.6.1", + "@lerna/listable": "5.6.1", + "@lerna/output": "5.6.1" } }, "@lerna/listable": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/listable/-/listable-5.6.2.tgz", - "integrity": "sha512-8Yp49BwkY/5XqVru38Zko+6Wj/sgbwzJfIGEPy3Qu575r1NA/b9eI1gX22aMsEeXUeGOybR7nWT5ewnPQHjqvA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/listable/-/listable-5.6.1.tgz", + "integrity": "sha512-c7vzJYEPiH0DT7BJpjomLt2zwViPupk0g/dU9rCBkm4w2jk6Vult60/O3rx5rb95PUFz/pYM+3w3vkZWXx9AnQ==", "dev": true, "requires": { - "@lerna/query-graph": "5.6.2", + "@lerna/query-graph": "5.6.1", "chalk": "^4.1.0", "columnify": "^1.6.0" }, @@ -28202,9 +28254,9 @@ } }, "@lerna/log-packed": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-5.6.2.tgz", - "integrity": "sha512-O9GODG7tMtWk+2fufn2MOkIDBYMRoKBhYMHshO5Aw/VIsH76DIxpX1koMzWfUngM/C70R4uNAKcVWineX4qzIw==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-5.6.1.tgz", + "integrity": "sha512-nyrrI8SbwO4nezuwDDQPea2XR3IWVRxgDzuZHA+g5utx75BuCZ2d1yrZe8URzfCIVVoGYI5OuOlv32BtLzt4tw==", "dev": true, "requires": { "byte-size": "^7.0.0", @@ -28214,9 +28266,9 @@ } }, "@lerna/npm-conf": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-5.6.2.tgz", - "integrity": "sha512-gWDPhw1wjXYXphk/PAghTLexO5T6abVFhXb+KOMCeem366mY0F5bM88PiorL73aErTNUoR8n+V4X29NTZzDZpQ==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-5.6.1.tgz", + "integrity": "sha512-u4Pg0IjMhRIGdgNr18nzwyv6wcP5Qo0QEvf07P6tV8G3ocY+3w8q6mrPyFT3NitodLQ4AMWFDfyFZzXikJI+uw==", "dev": true, "requires": { "config-chain": "^1.1.12", @@ -28224,124 +28276,96 @@ } }, "@lerna/npm-dist-tag": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-5.6.2.tgz", - "integrity": "sha512-t2RmxV6Eog4acXkUI+EzWuYVbeVVY139pANIWS9qtdajfgp4GVXZi1S8mAIb70yeHdNpCp1mhK0xpCrFH9LvGQ==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-5.6.1.tgz", + "integrity": "sha512-YEbIP1J6V0U9qco7wk9qK0JbApIshPrUGqr0Kp1rx57pwtcwxIAvH/AEbqdVqjmItiPDpYgP7VukG7MI6EGe1w==", "dev": true, "requires": { - "@lerna/otplease": "5.6.2", + "@lerna/otplease": "5.6.1", "npm-package-arg": "8.1.1", "npm-registry-fetch": "^13.3.0", "npmlog": "^6.0.2" } }, "@lerna/npm-install": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-5.6.2.tgz", - "integrity": "sha512-AT226zdEo+uGENd37jwYgdALKJAIJK4pNOfmXWZWzVb9oMOr8I2YSjPYvSYUNG7gOo2YJQU8x5Zd7OShv2924Q==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-5.6.1.tgz", + "integrity": "sha512-PWJyqWzDQGkhn5/mr88yYfLF+t9NzHadcmMPYxv8lBTBUTZy9sdCw8k0uQ19lNUsI/DfMTLrcYZPSLxqe3mN8A==", "dev": true, "requires": { - "@lerna/child-process": "5.6.2", - "@lerna/get-npm-exec-opts": "5.6.2", + "@lerna/child-process": "5.6.1", + "@lerna/get-npm-exec-opts": "5.6.1", "fs-extra": "^9.1.0", "npm-package-arg": "8.1.1", "npmlog": "^6.0.2", "signal-exit": "^3.0.3", "write-pkg": "^4.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - } } }, "@lerna/npm-publish": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-5.6.2.tgz", - "integrity": "sha512-ldSyewCfv9fAeC5xNjL0HKGSUxcC048EJoe/B+KRUmd+IPidvZxMEzRu08lSC/q3V9YeUv9ZvRnxATXOM8CffA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-5.6.1.tgz", + "integrity": "sha512-eSotBP+mu6EtRIfhKsbQR3m5RnL7zxhZav1zxtnYvolKPjodLlGxzqcYCqTMdnR6GAIcInFh123uuTfZNzu9CA==", "dev": true, "requires": { - "@lerna/otplease": "5.6.2", - "@lerna/run-lifecycle": "5.6.2", + "@lerna/otplease": "5.6.1", + "@lerna/run-lifecycle": "5.6.1", "fs-extra": "^9.1.0", "libnpmpublish": "^6.0.4", "npm-package-arg": "8.1.1", "npmlog": "^6.0.2", "pify": "^5.0.0", "read-package-json": "^5.0.1" - }, - "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - } } }, "@lerna/npm-run-script": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-5.6.2.tgz", - "integrity": "sha512-MOQoWNcAyJivM8SYp0zELM7vg/Dj07j4YMdxZkey+S1UO0T4/vKBxb575o16hH4WeNzC3Pd7WBlb7C8dLOfNwQ==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-5.6.1.tgz", + "integrity": "sha512-VRScf/chK01PxFCiH6j8GWOlS8w3dH4koq7tVX9OSi3FVwqrNvN7wky/AO7cKRyuTmdoG+puDsI7gHtGclYvrQ==", "dev": true, "requires": { - "@lerna/child-process": "5.6.2", - "@lerna/get-npm-exec-opts": "5.6.2", + "@lerna/child-process": "5.6.1", + "@lerna/get-npm-exec-opts": "5.6.1", "npmlog": "^6.0.2" } }, "@lerna/otplease": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/otplease/-/otplease-5.6.2.tgz", - "integrity": "sha512-dGS4lzkEQVTMAgji82jp8RK6UK32wlzrBAO4P4iiVHCUTuwNLsY9oeBXvVXSMrosJnl6Hbe0NOvi43mqSucGoA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/otplease/-/otplease-5.6.1.tgz", + "integrity": "sha512-MbS09KoDHDvsFpnwIYOZ3lu5+d/bDUm2jQ+kcJe7VH3P37t84OFRXmixSVjf1xpLuvoXbSZZsfDsYx9VkAdq4w==", "dev": true, "requires": { - "@lerna/prompt": "5.6.2" + "@lerna/prompt": "5.6.1" } }, "@lerna/output": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/output/-/output-5.6.2.tgz", - "integrity": "sha512-++d+bfOQwY66yo7q1XuAvRcqtRHCG45e/awP5xQomTZ6R1rhWiZ3whWdc9Z6lF7+UtBB9toSYYffKU/xc3L0yQ==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/output/-/output-5.6.1.tgz", + "integrity": "sha512-XEUvLn8jOVL63PRcjwSd8SdjAJvWLDDNpq75hBfemHHSpcfc7qlqqkXWs+Mz1C938rub8MtPUj7ImEUo12k1KQ==", "dev": true, "requires": { "npmlog": "^6.0.2" } }, "@lerna/pack-directory": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-5.6.2.tgz", - "integrity": "sha512-w5Jk5fo+HkN4Le7WMOudTcmAymcf0xPd302TqAQncjXpk0cb8tZbj+5bbNHsGb58GRjOIm5icQbHXooQUxbHhA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-5.6.1.tgz", + "integrity": "sha512-vmkvD4LnYJhPps+I9t03pV02rnZak4gyAh/St1lj/OYV9ecRWQWOqWIFhffKOFHBes3Lxmha8FMSN2IOkG1BxQ==", "dev": true, "requires": { - "@lerna/get-packed": "5.6.2", - "@lerna/package": "5.6.2", - "@lerna/run-lifecycle": "5.6.2", - "@lerna/temp-write": "5.6.2", + "@lerna/get-packed": "5.6.1", + "@lerna/package": "5.6.1", + "@lerna/run-lifecycle": "5.6.1", + "@lerna/temp-write": "5.6.1", "npm-packlist": "^5.1.1", "npmlog": "^6.0.2", "tar": "^6.1.0" } }, "@lerna/package": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/package/-/package-5.6.2.tgz", - "integrity": "sha512-LaOC8moyM5J9WnRiWZkedjOninSclBOJyPqhif6mHb2kCFX6jAroNYzE8KM4cphu8CunHuhI6Ixzswtv+Dultw==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/package/-/package-5.6.1.tgz", + "integrity": "sha512-QTWoRe/wTETDrF9ByhctmyZpFl+UmwSJJUcsTd2pUqvd5QaOd1twXwZdc5/1Rr08Yxl0PZqJCtZYJDcXce0eRg==", "dev": true, "requires": { "load-json-file": "^6.2.0", @@ -28350,27 +28374,18 @@ } }, "@lerna/package-graph": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-5.6.2.tgz", - "integrity": "sha512-TmL61qBBvA3Tc4qICDirZzdFFwWOA6qicIXUruLiE2PblRowRmCO1bKrrP6XbDOspzwrkPef6N2F2/5gHQAnkQ==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-5.6.1.tgz", + "integrity": "sha512-R3ToEGzFy5x1Po/eoOy8vsM2x/zxR26bFewDLUDWbs5lWDC7ml5v44JqjfWB869M/XprN55yz2/VE5NhEB6QsQ==", "dev": true, "requires": { - "@lerna/prerelease-id-from-version": "5.6.2", - "@lerna/validation-error": "5.6.2", + "@lerna/prerelease-id-from-version": "5.6.1", + "@lerna/validation-error": "5.6.1", "npm-package-arg": "8.1.1", "npmlog": "^6.0.2", "semver": "^7.3.4" }, "dependencies": { - "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" - } - }, "semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -28383,23 +28398,14 @@ } }, "@lerna/prerelease-id-from-version": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-5.6.2.tgz", - "integrity": "sha512-7gIm9fecWFVNy2kpj/KbH11bRcpyANAwpsft3X5m6J7y7A6FTUscCbEvl3ZNdpQKHNuvnHgCtkm3A5PMSCEgkA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-5.6.1.tgz", + "integrity": "sha512-+ctzgoA1XAGbTQCeJjMEoQQCzCBW6WVAMVKNEOKrcsEVMb5gsKKSVha8WsKEzvK6gAC/x3pXemtuVWQvtYPw0Q==", "dev": true, "requires": { "semver": "^7.3.4" }, "dependencies": { - "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" - } - }, "semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -28412,38 +28418,24 @@ } }, "@lerna/profiler": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/profiler/-/profiler-5.6.2.tgz", - "integrity": "sha512-okwkagP5zyRIOYTceu/9/esW7UZFt7lyL6q6ZgpSG3TYC5Ay+FXLtS6Xiha/FQdVdumFqKULDWTGovzUlxcwaw==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/profiler/-/profiler-5.6.1.tgz", + "integrity": "sha512-HxY0hg5iHxPzyHvb7gVkZzUG+jJKZ1fErATcC53+kA7qOBTGlz2huZ8gU+rpX3SlTJGodnZ5FwHQvHD2bzkTZg==", "dev": true, "requires": { "fs-extra": "^9.1.0", "npmlog": "^6.0.2", "upath": "^2.0.1" - }, - "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - } } }, "@lerna/project": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/project/-/project-5.6.2.tgz", - "integrity": "sha512-kPIMcIy/0DVWM91FPMMFmXyAnCuuLm3NdhnA8NusE//VuY9wC6QC/3OwuCY39b2dbko/fPZheqKeAZkkMH6sGg==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/project/-/project-5.6.1.tgz", + "integrity": "sha512-GlM+b4pyImtegQztMRsLAkSPCYfmAqCqtgkffjXQS9tMjXnUBqu4+gW/uMBTTOD2CKf+Nikwjc602rpRaUQLyw==", "dev": true, "requires": { - "@lerna/package": "5.6.2", - "@lerna/validation-error": "5.6.2", + "@lerna/package": "5.6.1", + "@lerna/validation-error": "5.6.1", "cosmiconfig": "^7.0.0", "dedent": "^0.7.0", "dot-prop": "^6.0.1", @@ -28463,15 +28455,6 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", - "dev": true, - "requires": { - "is-obj": "^2.0.0" - } - }, "js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -28484,9 +28467,9 @@ } }, "@lerna/prompt": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/prompt/-/prompt-5.6.2.tgz", - "integrity": "sha512-4hTNmVYADEr0GJTMegWV+GW6n+dzKx1vN9v2ISqyle283Myv930WxuyO0PeYGqTrkneJsyPreCMovuEGCvZ0iQ==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/prompt/-/prompt-5.6.1.tgz", + "integrity": "sha512-CZSHV2yK6I6+35IKz7Fh3SeNSPR4XuCFXsW0RuauTZoNffk3mP2pOt/CrI1P6yOj7tqcyjghzzv1gkINtrq4/w==", "dev": true, "requires": { "inquirer": "^8.2.4", @@ -28494,30 +28477,30 @@ } }, "@lerna/publish": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/publish/-/publish-5.6.2.tgz", - "integrity": "sha512-QaW0GjMJMuWlRNjeDCjmY/vjriGSWgkLS23yu8VKNtV5U3dt5yIKA3DNGV3HgZACuu45kQxzMDsfLzgzbGNtYA==", - "dev": true, - "requires": { - "@lerna/check-working-tree": "5.6.2", - "@lerna/child-process": "5.6.2", - "@lerna/collect-updates": "5.6.2", - "@lerna/command": "5.6.2", - "@lerna/describe-ref": "5.6.2", - "@lerna/log-packed": "5.6.2", - "@lerna/npm-conf": "5.6.2", - "@lerna/npm-dist-tag": "5.6.2", - "@lerna/npm-publish": "5.6.2", - "@lerna/otplease": "5.6.2", - "@lerna/output": "5.6.2", - "@lerna/pack-directory": "5.6.2", - "@lerna/prerelease-id-from-version": "5.6.2", - "@lerna/prompt": "5.6.2", - "@lerna/pulse-till-done": "5.6.2", - "@lerna/run-lifecycle": "5.6.2", - "@lerna/run-topologically": "5.6.2", - "@lerna/validation-error": "5.6.2", - "@lerna/version": "5.6.2", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/publish/-/publish-5.6.1.tgz", + "integrity": "sha512-J2zYyDGXs44YQ1h19933F9bm3fjog0gNpD27kL7Zw2nrMrR/LAuxNIFT/0ljtZSuMjlXllxZ7Kyxyz1gvMv3cA==", + "dev": true, + "requires": { + "@lerna/check-working-tree": "5.6.1", + "@lerna/child-process": "5.6.1", + "@lerna/collect-updates": "5.6.1", + "@lerna/command": "5.6.1", + "@lerna/describe-ref": "5.6.1", + "@lerna/log-packed": "5.6.1", + "@lerna/npm-conf": "5.6.1", + "@lerna/npm-dist-tag": "5.6.1", + "@lerna/npm-publish": "5.6.1", + "@lerna/otplease": "5.6.1", + "@lerna/output": "5.6.1", + "@lerna/pack-directory": "5.6.1", + "@lerna/prerelease-id-from-version": "5.6.1", + "@lerna/prompt": "5.6.1", + "@lerna/pulse-till-done": "5.6.1", + "@lerna/run-lifecycle": "5.6.1", + "@lerna/run-topologically": "5.6.1", + "@lerna/validation-error": "5.6.1", + "@lerna/version": "5.6.1", "fs-extra": "^9.1.0", "libnpmaccess": "^6.0.3", "npm-package-arg": "8.1.1", @@ -28529,27 +28512,6 @@ "semver": "^7.3.4" }, "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "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" - } - }, "semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -28562,172 +28524,116 @@ } }, "@lerna/pulse-till-done": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-5.6.2.tgz", - "integrity": "sha512-eA/X1RCxU5YGMNZmbgPi+Kyfx1Q3bn4P9jo/LZy+/NRRr1po3ASXP2GJZ1auBh/9A2ELDvvKTOXCVHqczKC6rA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-5.6.1.tgz", + "integrity": "sha512-SCD1gCSkC4roOvCB0GTvnFrYVTLX7o9TXykyg5UTXb/XRMNqr9ZBFH7qZHJnleO9x3eMk1oh4W1rvfFIITyRjw==", "dev": true, "requires": { "npmlog": "^6.0.2" } }, "@lerna/query-graph": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-5.6.2.tgz", - "integrity": "sha512-KRngr96yBP8XYDi9/U62fnGO+ZXqm04Qk6a2HtoTr/ha8QvO1s7Tgm0xs/G7qWXDQHZgunWIbmK/LhxM7eFQrw==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-5.6.1.tgz", + "integrity": "sha512-ySXS5Ur/GtrBOr+u5FZxrcH0xD3LsBSu68OEPNnMIAdt66AOhh6K4OXmc58biTN0sWAdnE43mulqA87bZH0aMg==", "dev": true, "requires": { - "@lerna/package-graph": "5.6.2" + "@lerna/package-graph": "5.6.1" } }, "@lerna/resolve-symlink": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-5.6.2.tgz", - "integrity": "sha512-PDQy+7M8JEFtwIVHJgWvSxHkxJf9zXCENkvIWDB+SsoDPhw9+caewt46bTeP5iGm9pOMu3oZukaWo/TvF7sNjg==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-5.6.1.tgz", + "integrity": "sha512-25TdowB5dIVycCJWyZGBDPSz6LoFOi/YRh85+dL1RrvxmvfiDwjrJ8P4eDl03/fDSV9YTFVYYmR8r1K2Vw8kQg==", "dev": true, "requires": { "fs-extra": "^9.1.0", "npmlog": "^6.0.2", "read-cmd-shim": "^3.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - } } }, "@lerna/rimraf-dir": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-5.6.2.tgz", - "integrity": "sha512-jgEfzz7uBUiQKteq3G8MtJiA2D2VoKmZSSY3VSiW/tPOSXYxxSHxEsClQdCeNa6+sYrDNDT8fP6MJ3lPLjDeLA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-5.6.1.tgz", + "integrity": "sha512-1lm5FIiwFOpSzCMyNF90HX6NWHzDmY47TgDs07416B8ghMtZgb5aLMHi/aoarqWopn4X0ae3lxsZjUEOhSAWgA==", "dev": true, "requires": { - "@lerna/child-process": "5.6.2", + "@lerna/child-process": "5.6.1", "npmlog": "^6.0.2", "path-exists": "^4.0.0", "rimraf": "^3.0.2" } }, "@lerna/run": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/run/-/run-5.6.2.tgz", - "integrity": "sha512-c2kJxdFrNg5KOkrhmgwKKUOsfSrGNlFCe26EttufOJ3xfY0VnXlEw9rHOkTgwtu7969rfCdyaVP1qckMrF1Dgw==", - "dev": true, - "requires": { - "@lerna/command": "5.6.2", - "@lerna/filter-options": "5.6.2", - "@lerna/npm-run-script": "5.6.2", - "@lerna/output": "5.6.2", - "@lerna/profiler": "5.6.2", - "@lerna/run-topologically": "5.6.2", - "@lerna/timer": "5.6.2", - "@lerna/validation-error": "5.6.2", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/run/-/run-5.6.1.tgz", + "integrity": "sha512-kb4hwnhth3GKWIxoNlA/xdDUWGbK67yx1aLEyZjssmMemxfSKxvqrNB+TaHAPSz27hyAKqnOL9Ym/YkAt7s59A==", + "dev": true, + "requires": { + "@lerna/command": "5.6.1", + "@lerna/filter-options": "5.6.1", + "@lerna/npm-run-script": "5.6.1", + "@lerna/output": "5.6.1", + "@lerna/profiler": "5.6.1", + "@lerna/run-topologically": "5.6.1", + "@lerna/timer": "5.6.1", + "@lerna/validation-error": "5.6.1", "fs-extra": "^9.1.0", "p-map": "^4.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - } } }, "@lerna/run-lifecycle": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-5.6.2.tgz", - "integrity": "sha512-u9gGgq/50Fm8dvfcc/TSHOCAQvzLD7poVanDMhHYWOAqRDnellJEEmA1K/Yka4vZmySrzluahkry9G6jcREt+g==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-5.6.1.tgz", + "integrity": "sha512-LkEvYDVYNX2mUY3PoNoDDBPDMofzNa5dHvAg7P2NVpffE41VbWBI0c0Q7uhN9nGuCksvsqamTffvmPdU9lCffA==", "dev": true, "requires": { - "@lerna/npm-conf": "5.6.2", + "@lerna/npm-conf": "5.6.1", "@npmcli/run-script": "^4.1.7", "npmlog": "^6.0.2", "p-queue": "^6.6.2" } }, "@lerna/run-topologically": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-5.6.2.tgz", - "integrity": "sha512-QQ/jGOIsVvUg3izShWsd67RlWYh9UOH2yw97Ol1zySX9+JspCMVQrn9eKq1Pk8twQOFhT87LpT/aaxbTBgREPw==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-5.6.1.tgz", + "integrity": "sha512-UjOppd/1dSQxDfIjQIJOH+c/lLwuTKSNyd9uKhII11OnpO+gmBP1kvA65k1cm9EZVky63o7X9/O+oTB8Tr8C3g==", "dev": true, "requires": { - "@lerna/query-graph": "5.6.2", + "@lerna/query-graph": "5.6.1", "p-queue": "^6.6.2" } }, "@lerna/symlink-binary": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-5.6.2.tgz", - "integrity": "sha512-Cth+miwYyO81WAmrQbPBrLHuF+F0UUc0el5kRXLH6j5zzaRS3kMM68r40M7MmfH8m3GPi7691UARoWFEotW5jw==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-5.6.1.tgz", + "integrity": "sha512-Y9x8gvvAP281467+QPwp56L6DDGdWtt24pREyWF7D+FIRcooJ29pn2C3B0rmzd5Ti63/6mrfCipUp9DXSWGwNg==", "dev": true, "requires": { - "@lerna/create-symlink": "5.6.2", - "@lerna/package": "5.6.2", + "@lerna/create-symlink": "5.6.1", + "@lerna/package": "5.6.1", "fs-extra": "^9.1.0", "p-map": "^4.0.0" - }, - "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - } } }, "@lerna/symlink-dependencies": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-5.6.2.tgz", - "integrity": "sha512-dUVNQLEcjVOIQiT9OlSAKt0ykjyJPy8l9i4NJDe2/0XYaUjo8PWsxJ0vrutz27jzi2aZUy07ASmowQZEmnLHAw==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-5.6.1.tgz", + "integrity": "sha512-lKnJFbEpIdj9R70cpRor6vf3pxBnvk0RF7fwiTlWpF2BmlBYVihM+lML2vCts5G7ZBSQ9zTVyIqlCXG3qhyoxQ==", "dev": true, "requires": { - "@lerna/create-symlink": "5.6.2", - "@lerna/resolve-symlink": "5.6.2", - "@lerna/symlink-binary": "5.6.2", + "@lerna/create-symlink": "5.6.1", + "@lerna/resolve-symlink": "5.6.1", + "@lerna/symlink-binary": "5.6.1", "fs-extra": "^9.1.0", "p-map": "^4.0.0", "p-map-series": "^2.1.0" - }, - "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - } } }, "@lerna/temp-write": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/temp-write/-/temp-write-5.6.2.tgz", - "integrity": "sha512-S5ZNVTurSwWBmc9kh5alfSjmO3+BnRT6shYtOlmVIUYqWeYVYA5C1Htj322bbU4CSNCMFK6NQl4qGKL17HMuig==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/temp-write/-/temp-write-5.6.1.tgz", + "integrity": "sha512-o0MOTsAfvMM8RC2o1wQ//F05hUd/cZJjBH8PKTrgXINDweW9VFey2fuUdL7TCpzgC4MUenL2x1nV6o8w87nFOQ==", "dev": true, "requires": { "graceful-fs": "^4.1.15", @@ -28738,40 +28644,40 @@ } }, "@lerna/timer": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/timer/-/timer-5.6.2.tgz", - "integrity": "sha512-AjMOiLc2B+5Nzdd9hNORetAdZ/WK8YNGX/+2ypzM68TMAPfIT5C40hMlSva9Yg4RsBz22REopXgM5s2zQd5ZQA==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/timer/-/timer-5.6.1.tgz", + "integrity": "sha512-MALjTi1KuYZeRPH18xttlJb6+BLAcVuwGIsSYHBREkuXdRwW1oEcnnN5xzGsMGpG0KRxWu5wgNgc94aH/MCz6A==", "dev": true }, "@lerna/validation-error": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-5.6.2.tgz", - "integrity": "sha512-4WlDUHaa+RSJNyJRtX3gVIAPVzjZD2tle8AJ0ZYBfdZnZmG0VlB2pD1FIbOQPK8sY2h5m0cHLRvfLoLncqHvdQ==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-5.6.1.tgz", + "integrity": "sha512-0Kl9SmRb72bcXANdRO3fjuz+hHhHL9AEl/exCGODaT+PYAC+xH717Xj2ts/1u4qNuLlsQEE6+iVhAAMLUv86CA==", "dev": true, "requires": { "npmlog": "^6.0.2" } }, "@lerna/version": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/version/-/version-5.6.2.tgz", - "integrity": "sha512-odNSR2rTbHW++xMZSQKu/F6Syrd/sUvwDLPaMKktoOSPKmycHt/eWcuQQyACdtc43Iqeu4uQd7PCLsniqOVFrw==", - "dev": true, - "requires": { - "@lerna/check-working-tree": "5.6.2", - "@lerna/child-process": "5.6.2", - "@lerna/collect-updates": "5.6.2", - "@lerna/command": "5.6.2", - "@lerna/conventional-commits": "5.6.2", - "@lerna/github-client": "5.6.2", - "@lerna/gitlab-client": "5.6.2", - "@lerna/output": "5.6.2", - "@lerna/prerelease-id-from-version": "5.6.2", - "@lerna/prompt": "5.6.2", - "@lerna/run-lifecycle": "5.6.2", - "@lerna/run-topologically": "5.6.2", - "@lerna/temp-write": "5.6.2", - "@lerna/validation-error": "5.6.2", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/version/-/version-5.6.1.tgz", + "integrity": "sha512-s9WIzduXOxeLH2Vu0T2HLBe1ICd9gxUsB3tlUyQveIAGE5wBuTAIL3nGQ3ljImPzFnriPqcS0xa5PC2DaW9JLA==", + "dev": true, + "requires": { + "@lerna/check-working-tree": "5.6.1", + "@lerna/child-process": "5.6.1", + "@lerna/collect-updates": "5.6.1", + "@lerna/command": "5.6.1", + "@lerna/conventional-commits": "5.6.1", + "@lerna/github-client": "5.6.1", + "@lerna/gitlab-client": "5.6.1", + "@lerna/output": "5.6.1", + "@lerna/prerelease-id-from-version": "5.6.1", + "@lerna/prompt": "5.6.1", + "@lerna/run-lifecycle": "5.6.1", + "@lerna/run-topologically": "5.6.1", + "@lerna/temp-write": "5.6.1", + "@lerna/validation-error": "5.6.1", "@nrwl/devkit": ">=14.8.1 < 16", "chalk": "^4.1.0", "dedent": "^0.7.0", @@ -28827,15 +28733,6 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "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" - } - }, "semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -28857,9 +28754,9 @@ } }, "@lerna/write-log-file": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-5.6.2.tgz", - "integrity": "sha512-J09l18QnWQ3sXIRwuJkjXY3+KwPR2uO5NgbZGE3GXJK1V/LzOBRMvjGAIbuQHXw25uqe7vpLUpB8drtnFrubCQ==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-5.6.1.tgz", + "integrity": "sha512-wvgkL/tMozHbW6EkCFH7yLhLh5D3djRuwREsn5ptZxcCcay1RQjraON18yMX06mwsPfbpDItMH4D68q1dMSk5w==", "dev": true, "requires": { "npmlog": "^6.0.2", @@ -28878,15 +28775,6 @@ } } }, - "@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", - "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", - "dev": true, - "requires": { - "eslint-scope": "5.1.1" - } - }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -28955,15 +28843,114 @@ "walk-up-path": "^1.0.0" }, "dependencies": { + "@npmcli/fs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", + "dev": true, + "requires": { + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" + } + }, + "@npmcli/move-file": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", + "dev": true, + "requires": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + } + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "cacache": { + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", + "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", + "dev": true, + "requires": { + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^2.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", + "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", + "dev": true + } + } + }, + "glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, "hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", "dev": true, "requires": { "lru-cache": "^7.5.1" + }, + "dependencies": { + "lru-cache": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", + "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", + "dev": true + } } }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, "npm-package-arg": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", @@ -28983,47 +28970,33 @@ "dev": true, "requires": { "lru-cache": "^6.0.0" - }, - "dependencies": { - "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" - } - } } - } - } - }, - "@npmcli/fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", - "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", - "dev": true, - "requires": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - }, - "dependencies": { - "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==", + }, + "ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", "dev": true, "requires": { - "yallist": "^4.0.0" + "minipass": "^3.1.1" } }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "unique-filename": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", + "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", "dev": true, "requires": { - "lru-cache": "^6.0.0" + "unique-slug": "^3.0.0" + } + }, + "unique-slug": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", + "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" } } } @@ -29045,6 +29018,18 @@ "which": "^2.0.2" }, "dependencies": { + "lru-cache": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", + "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", + "dev": true + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, "semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -29112,9 +29097,9 @@ } }, "minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -29134,15 +29119,97 @@ "semver": "^7.3.5" }, "dependencies": { - "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==", + "@npmcli/fs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", "dev": true, "requires": { - "yallist": "^4.0.0" + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" } }, + "@npmcli/move-file": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", + "dev": true, + "requires": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + } + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "cacache": { + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", + "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", + "dev": true, + "requires": { + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^2.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", + "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", + "dev": true + } + } + }, + "glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, "semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -29151,19 +29218,36 @@ "requires": { "lru-cache": "^6.0.0" } + }, + "ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "unique-filename": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", + "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", + "dev": true, + "requires": { + "unique-slug": "^3.0.0" + } + }, + "unique-slug": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", + "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } } } }, - "@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "dev": true, - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } - }, "@npmcli/name-from-folder": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz", @@ -29208,54 +29292,41 @@ } }, "@nrwl/cli": { - "version": "14.8.6", - "resolved": "https://registry.npmjs.org/@nrwl/cli/-/cli-14.8.6.tgz", - "integrity": "sha512-R4udxekMd4jhoRPEksJu+224DocOIrAqenFo0D2R36epE5FaCnZQX7xg+b3TjRbdS10e426i4D9LuXdQmP5jJg==", + "version": "14.8.3", + "resolved": "https://registry.npmjs.org/@nrwl/cli/-/cli-14.8.3.tgz", + "integrity": "sha512-a8URAbqyZvegXMYU8pCA3Hfv0UdiDJc6HboazxinCJJgZWyqKYxRIWmKiWnfpXsr+qF6ntmBR/tC6yHbOL22gQ==", "dev": true, "requires": { - "nx": "14.8.6" + "nx": "14.8.3" } }, "@nrwl/devkit": { - "version": "15.3.3", - "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-15.3.3.tgz", - "integrity": "sha512-48R9HAp6r6umWNXTlVTMsH94YYjU/XUPLDTtXBgKESMVbdq8Fk+HDHuN0thXG5dL6DFkXgD0MICLm3jSQU6xMw==", + "version": "14.8.3", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-14.8.3.tgz", + "integrity": "sha512-jEH+oKS4F4MJvoIe0Zw6zUODO2j2ib7f+62D4lMDKl5qopcgnKyU9rVnSCDolqCH81j326dfr8b7FfE6Z7p71A==", "dev": true, "requires": { "@phenomnomnominal/tsquery": "4.1.1", "ejs": "^3.1.7", "ignore": "^5.0.4", - "semver": "7.3.4", "tslib": "^2.3.0" }, "dependencies": { - "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" - } - }, - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true } } }, "@nrwl/nx-cloud": { - "version": "15.0.2", - "resolved": "https://registry.npmjs.org/@nrwl/nx-cloud/-/nx-cloud-15.0.2.tgz", - "integrity": "sha512-DaTASuXmGyQHMxJuK6y3f7fs+Q0qQCfYDIDVGK9muNwN/QItLeWdRNltLQxbrBeS112kQTu2FPsr0DmRD60+0A==", + "version": "14.7.0", + "resolved": "https://registry.npmjs.org/@nrwl/nx-cloud/-/nx-cloud-14.7.0.tgz", + "integrity": "sha512-sEGK5Ire5DC2liIsT89qR6SzZa46uinmWEAMz8ocMuu7nIMnwV9m15qajxhmYKasYsq9vTeT+x7BlZ4fnxPrNg==", "dev": true, "requires": { - "axios": "^0.21.2", + "axios": "^0.21.1", "chalk": "4.1.0", "dotenv": "~10.0.0", "fs-extra": "^10.1.0", @@ -29305,6 +29376,17 @@ "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", "dev": true }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -29319,68 +29401,80 @@ "requires": { "has-flag": "^4.0.0" } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true } } }, "@nrwl/tao": { - "version": "14.8.6", - "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-14.8.6.tgz", - "integrity": "sha512-CByqrsfSJeonOd7TLAHP8bRYNWgDksxA7j+yncSzgQnFLEbZdJGG/AqqIovx8g6g2v0JS+nRgGC+w5UPf04UrQ==", + "version": "14.8.3", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-14.8.3.tgz", + "integrity": "sha512-lN7+1biSM/7PYMMgh3jjOXJ9fe6VjhVrtZsDcB6lcklpShjXfHXqlpXDM7vjlw19aLeZMdFWHFoU2C5BTBtzgQ==", "dev": true, "requires": { - "nx": "14.8.6" + "nx": "14.8.3" } }, "@octokit/auth-token": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.2.tgz", - "integrity": "sha512-pq7CwIMV1kmzkFTimdwjAINCXKTajZErLB4wMLYapR2nuB/Jpr66+05wOTZMSCBXP6n4DdDWT2W19Bm17vU69Q==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.1.tgz", + "integrity": "sha512-/USkK4cioY209wXRpund6HZzHo9GmjakpV9ycOkpMcMxMk7QVcVFVyCMtzvXYiHsB2crgDgrtNYSELYFBXhhaA==", "dev": true, "requires": { - "@octokit/types": "^8.0.0" + "@octokit/types": "^7.0.0" } }, "@octokit/core": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.1.0.tgz", - "integrity": "sha512-Czz/59VefU+kKDy+ZfDwtOIYIkFjExOKf+HA92aiTZJ6EfWpFzYQWw0l54ji8bVmyhc+mGaLUbSUmXazG7z5OQ==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.0.5.tgz", + "integrity": "sha512-4R3HeHTYVHCfzSAi0C6pbGXV8UDI5Rk+k3G7kLVNckswN9mvpOzW9oENfjfH3nEmzg8y3AmKmzs8Sg6pLCeOCA==", "dev": true, "requires": { "@octokit/auth-token": "^3.0.0", "@octokit/graphql": "^5.0.0", "@octokit/request": "^6.0.0", "@octokit/request-error": "^3.0.0", - "@octokit/types": "^8.0.0", + "@octokit/types": "^7.0.0", "before-after-hook": "^2.2.0", "universal-user-agent": "^6.0.0" } }, "@octokit/endpoint": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.3.tgz", - "integrity": "sha512-57gRlb28bwTsdNXq+O3JTQ7ERmBTuik9+LelgcLIVfYwf235VHbN9QNo4kXExtp/h8T423cR5iJThKtFYxC7Lw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.2.tgz", + "integrity": "sha512-8/AUACfE9vpRpehE6ZLfEtzkibe5nfsSwFZVMsG8qabqRt1M81qZYUFRZa1B8w8lP6cdfDJfRq9HWS+MbmR7tw==", "dev": true, "requires": { - "@octokit/types": "^8.0.0", + "@octokit/types": "^7.0.0", "is-plain-object": "^5.0.0", "universal-user-agent": "^6.0.0" } }, "@octokit/graphql": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.4.tgz", - "integrity": "sha512-amO1M5QUQgYQo09aStR/XO7KAl13xpigcy/kI8/N1PnZYSS69fgte+xA4+c2DISKqUZfsh0wwjc2FaCt99L41A==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.1.tgz", + "integrity": "sha512-sxmnewSwAixkP1TrLdE6yRG53eEhHhDTYUykUwdV9x8f91WcbhunIHk9x1PZLALdBZKRPUO2HRcm4kezZ79HoA==", "dev": true, "requires": { "@octokit/request": "^6.0.0", - "@octokit/types": "^8.0.0", + "@octokit/types": "^7.0.0", "universal-user-agent": "^6.0.0" } }, "@octokit/openapi-types": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-14.0.0.tgz", - "integrity": "sha512-HNWisMYlR8VCnNurDU6os2ikx0s0VyEjDYHNS/h4cgb8DeOxQ0n72HyinUtdDVxJhFy3FWLGl0DJhfEWk3P5Iw==", + "version": "13.13.1", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-13.13.1.tgz", + "integrity": "sha512-4EuKSk3N95UBWFau3Bz9b3pheQ8jQYbKmBL5+GSuY8YDPDwu03J4BjI+66yNi8aaX/3h1qDpb0mbBkLdr+cfGQ==", "dev": true }, "@octokit/plugin-enterprise-rest": { @@ -29390,12 +29484,12 @@ "dev": true }, "@octokit/plugin-paginate-rest": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-5.0.1.tgz", - "integrity": "sha512-7A+rEkS70pH36Z6JivSlR7Zqepz3KVucEFVDnSrgHXzG7WLAzYwcHZbKdfTXHwuTHbkT1vKvz7dHl1+HNf6Qyw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-4.3.1.tgz", + "integrity": "sha512-h8KKxESmSFTcXX409CAxlaOYscEDvN2KGQRsLCGT1NSqRW+D6EXLVQ8vuHhFznS9MuH9QYw1GfsUN30bg8hjVA==", "dev": true, "requires": { - "@octokit/types": "^8.0.0" + "@octokit/types": "^7.5.0" } }, "@octokit/plugin-request-log": { @@ -29406,59 +29500,59 @@ "requires": {} }, "@octokit/plugin-rest-endpoint-methods": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.7.0.tgz", - "integrity": "sha512-orxQ0fAHA7IpYhG2flD2AygztPlGYNAdlzYz8yrD8NDgelPfOYoRPROfEyIe035PlxvbYrgkfUZIhSBKju/Cvw==", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.6.2.tgz", + "integrity": "sha512-n9dL5KMpz9qVFSNdcVWC8ZPbl68QbTk7+CMPXCXqaMZOLn1n1YuoSFFCy84Ge0fx333fUqpnBHv8BFjwGtUQkA==", "dev": true, "requires": { - "@octokit/types": "^8.0.0", + "@octokit/types": "^7.5.0", "deprecation": "^2.3.1" } }, "@octokit/request": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.2.tgz", - "integrity": "sha512-6VDqgj0HMc2FUX2awIs+sM6OwLgwHvAi4KCK3mT2H2IKRt6oH9d0fej5LluF5mck1lRR/rFWN0YIDSYXYSylbw==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.1.tgz", + "integrity": "sha512-gYKRCia3cpajRzDSU+3pt1q2OcuC6PK8PmFIyxZDWCzRXRSIBH8jXjFJ8ZceoygBIm0KsEUg4x1+XcYBz7dHPQ==", "dev": true, "requires": { "@octokit/endpoint": "^7.0.0", "@octokit/request-error": "^3.0.0", - "@octokit/types": "^8.0.0", + "@octokit/types": "^7.0.0", "is-plain-object": "^5.0.0", "node-fetch": "^2.6.7", "universal-user-agent": "^6.0.0" } }, "@octokit/request-error": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.2.tgz", - "integrity": "sha512-WMNOFYrSaX8zXWoJg9u/pKgWPo94JXilMLb2VManNOby9EZxrQaBe/QSC4a1TzpAlpxofg2X/jMnCyZgL6y7eg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.1.tgz", + "integrity": "sha512-ym4Bp0HTP7F3VFssV88WD1ZyCIRoE8H35pXSKwLeMizcdZAYc/t6N9X9Yr9n6t3aG9IH75XDnZ6UeZph0vHMWQ==", "dev": true, "requires": { - "@octokit/types": "^8.0.0", + "@octokit/types": "^7.0.0", "deprecation": "^2.0.0", "once": "^1.4.0" } }, "@octokit/rest": { - "version": "19.0.5", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.5.tgz", - "integrity": "sha512-+4qdrUFq2lk7Va+Qff3ofREQWGBeoTKNqlJO+FGjFP35ZahP+nBenhZiGdu8USSgmq4Ky3IJ/i4u0xbLqHaeow==", + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.4.tgz", + "integrity": "sha512-LwG668+6lE8zlSYOfwPj4FxWdv/qFXYBpv79TWIQEpBLKA9D/IMcWsF/U9RGpA3YqMVDiTxpgVpEW3zTFfPFTA==", "dev": true, "requires": { - "@octokit/core": "^4.1.0", - "@octokit/plugin-paginate-rest": "^5.0.0", + "@octokit/core": "^4.0.0", + "@octokit/plugin-paginate-rest": "^4.0.0", "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^6.7.0" + "@octokit/plugin-rest-endpoint-methods": "^6.0.0" } }, "@octokit/types": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-8.0.0.tgz", - "integrity": "sha512-65/TPpOJP1i3K4lBJMnWqPUJ6zuOtzhtagDvydAWbEXpbFYA0oMKKyLb95NFZZP0lSh/4b6K+DQlzvYQJQQePg==", + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-7.5.1.tgz", + "integrity": "sha512-Zk4OUMLCSpXNI8KZZn47lVLJSsgMyCimsWWQI5hyjZg7hdYm0kjotaIkbG0Pp8SfU2CofMBzonboTqvzn3FrJA==", "dev": true, "requires": { - "@octokit/openapi-types": "^14.0.0" + "@octokit/openapi-types": "^13.11.0" } }, "@parcel/watcher": { @@ -29481,9 +29575,9 @@ } }, "@sinonjs/commons": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", - "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -29498,29 +29592,10 @@ "@sinonjs/commons": "^1.7.0" } }, - "@stylelint/postcss-css-in-js": { - "version": "0.37.3", - "resolved": "https://registry.npmjs.org/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.3.tgz", - "integrity": "sha512-scLk3cSH1H9KggSniseb2KNAU5D9FWc3H7BxCSAIdtU9OWIyw0zkEZ9qEKHryRM+SExYXRKNb7tOOVNAsQ3iwg==", - "dev": true, - "requires": { - "@babel/core": "^7.17.9" - } - }, - "@stylelint/postcss-markdown": { - "version": "0.36.2", - "resolved": "https://registry.npmjs.org/@stylelint/postcss-markdown/-/postcss-markdown-0.36.2.tgz", - "integrity": "sha512-2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ==", - "dev": true, - "requires": { - "remark": "^13.0.0", - "unist-util-find-all-after": "^3.0.2" - } - }, "@testing-library/dom": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.19.0.tgz", - "integrity": "sha512-6YWYPPpxG3e/xOo6HIWwB/58HukkwIVTOaZ0VwdMVjhRUX/01E4FtQbck9GazOOj7MXHc5RBzMrU86iBJHbI+A==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.11.3.tgz", + "integrity": "sha512-9LId28I+lx70wUiZjLvi1DB/WT2zGOxUh46glrSNMaWVx849kKAluezVzZrXJfTKKoQTmEOutLes/bHg4Bj3aA==", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", @@ -29585,16 +29660,16 @@ } }, "@testing-library/jest-dom": { - "version": "5.16.5", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz", - "integrity": "sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==", + "version": "5.16.2", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.2.tgz", + "integrity": "sha512-6ewxs1MXWwsBFZXIk4nKKskWANelkdUehchEOokHsN8X7c2eKXGw+77aRV63UU8f/DTSVUPLaGxdrj4lN7D/ug==", "dev": true, "requires": { - "@adobe/css-tools": "^4.0.1", "@babel/runtime": "^7.9.2", "@types/testing-library__jest-dom": "^5.9.1", "aria-query": "^5.0.0", "chalk": "^3.0.0", + "css": "^3.0.0", "css.escape": "^1.5.1", "dom-accessibility-api": "^0.5.6", "lodash": "^4.17.15", @@ -29653,36 +29728,13 @@ } }, "@testing-library/react": { - "version": "12.1.5", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-12.1.5.tgz", - "integrity": "sha512-OfTXCJUFgjd/digLUuPxa0+/3ZxsQmE7ub9kcbW/wi96Bh3o/p5vrETcBGfP17NWPGqeYYl5LTRpwyGoMC4ysg==", + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-12.1.2.tgz", + "integrity": "sha512-ihQiEOklNyHIpo2Y8FREkyD1QAea054U0MVbwH1m8N9TxeFz+KoJ9LkqoKqJlzx2JDm56DVwaJ1r36JYxZM05g==", "dev": true, "requires": { "@babel/runtime": "^7.12.5", - "@testing-library/dom": "^8.0.0", - "@types/react-dom": "<18.0.0" - }, - "dependencies": { - "@types/react": { - "version": "17.0.52", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.52.tgz", - "integrity": "sha512-vwk8QqVODi0VaZZpDXQCmEmiOuyjEFPY7Ttaw5vjM112LOq37yz1CDJGrRJwA1fYEq4Iitd5rnjd1yWAc/bT+A==", - "dev": true, - "requires": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "@types/react-dom": { - "version": "17.0.18", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.18.tgz", - "integrity": "sha512-rLVtIfbwyur2iFKykP2w0pl/1unw26b5td16d5xMgp7/yjTHomkyxPYChFoCr/FtEX1lN9wY6lFj1qvKdS5kDw==", - "dev": true, - "requires": { - "@types/react": "^17" - } - } + "@testing-library/dom": "^8.0.0" } }, "@testing-library/user-event": { @@ -29731,9 +29783,9 @@ "dev": true }, "@types/babel__core": { - "version": "7.1.20", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz", - "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==", + "version": "7.1.18", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz", + "integrity": "sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ==", "requires": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0", @@ -29760,9 +29812,9 @@ } }, "@types/babel__traverse": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", - "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", + "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", "requires": { "@babel/types": "^7.3.0" } @@ -29778,9 +29830,9 @@ } }, "@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", "dev": true, "peer": true, "requires": { @@ -29789,9 +29841,9 @@ } }, "@types/estree": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", - "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", "dev": true }, "@types/graceful-fs": { @@ -29830,25 +29882,94 @@ } }, "@types/jest": { - "version": "27.5.2", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.2.tgz", - "integrity": "sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==", + "version": "27.5.0", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.0.tgz", + "integrity": "sha512-9RBFx7r4k+msyj/arpfaa0WOOEcaAZNmN+j80KFbFCoSqCJGHTz7YMAMGQW9Xmqm5w6l5c25vbSjMwlikJi5+g==", "dev": true, "requires": { "jest-matcher-utils": "^27.0.0", "pretty-format": "^27.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==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "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" + } + }, + "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 + }, + "jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "dev": true + }, + "jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + } + }, + "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" + } + } } }, "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", "dev": true }, "@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", "dev": true }, "@types/mdast": { @@ -29873,9 +29994,9 @@ "dev": true }, "@types/node": { - "version": "17.0.45", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", - "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.32.tgz", + "integrity": "sha512-eAIcfAvhf/BkHcf4pkLJ7ECpBAhh9kcxRBpip9cTiO+hf+aJrsxYxBeS6OXvOd9WqNAJmavXVpZvY1rBjNsXmw==" }, "@types/normalize-package-data": { "version": "2.4.1", @@ -29890,20 +30011,20 @@ "dev": true }, "@types/prettier": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", - "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.4.tgz", + "integrity": "sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA==", "dev": true }, "@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + "version": "15.7.4", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", + "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==" }, "@types/react": { - "version": "18.0.26", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.26.tgz", - "integrity": "sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==", + "version": "18.0.9", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.9.tgz", + "integrity": "sha512-9bjbg1hJHUm4De19L1cHiW0Jvx3geel6Qczhjd0qY5VKVE2X5+x77YxAepuCwVh4vrgZJdgEJw48zrhRIeF4Nw==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -29911,18 +30032,18 @@ } }, "@types/react-dom": { - "version": "18.0.9", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.9.tgz", - "integrity": "sha512-qnVvHxASt/H7i+XG1U1xMiY5t+IHcPGUK7TDMDzom08xa7e86eCeKOiLZezwCKVxJn6NEiiy2ekgX8aQssjIKg==", + "version": "18.0.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.3.tgz", + "integrity": "sha512-1RRW9kst+67gveJRYPxGmVy8eVJ05O43hg77G2j5m76/RFJtMbcfAs2viQ2UNsvvDg8F7OfQZx8qQcl6ymygaQ==", "dev": true, "requires": { "@types/react": "*" } }, "@types/react-router": { - "version": "5.1.19", - "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.19.tgz", - "integrity": "sha512-Fv/5kb2STAEMT3wHzdKQK2z8xKq38EDIGVrutYLmQVVLe+4orDFquU52hQrULnEHinMKv9FSA6lf9+uNT1ITtA==", + "version": "5.1.18", + "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.18.tgz", + "integrity": "sha512-YYknwy0D0iOwKQgz9v8nOzt2J6l4gouBmDnWqUUznltOTaon+r8US8ky8HvN0tXvc38U9m6z/t2RsVsnd1zM0g==", "dev": true, "requires": { "@types/history": "^4.7.11", @@ -29941,9 +30062,9 @@ } }, "@types/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.4.tgz", + "integrity": "sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==", "requires": { "@types/react": "*" } @@ -29959,9 +30080,9 @@ }, "dependencies": { "@types/react": { - "version": "17.0.52", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.52.tgz", - "integrity": "sha512-vwk8QqVODi0VaZZpDXQCmEmiOuyjEFPY7Ttaw5vjM112LOq37yz1CDJGrRJwA1fYEq4Iitd5rnjd1yWAc/bT+A==", + "version": "17.0.50", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.50.tgz", + "integrity": "sha512-ZCBHzpDb5skMnc1zFXAXnL3l1FAdi+xZvwxK+PkglMmBrwjpp9nKaWuEvrGnSifCJmBFGxZOOFuwC6KH/s0NuA==", "dev": true, "requires": { "@types/prop-types": "*", @@ -29976,12 +30097,6 @@ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" }, - "@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", - "dev": true - }, "@types/stack-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", @@ -29989,9 +30104,9 @@ "dev": true }, "@types/testing-library__jest-dom": { - "version": "5.14.5", - "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz", - "integrity": "sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ==", + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.2.tgz", + "integrity": "sha512-vehbtyHUShPxIa9SioxDwCvgxukDMH//icJG90sXQBUm5lJOHLT5kNeU9tnivhnA/TkOFMzGIXN2cTc4hY8/kg==", "dev": true, "requires": { "@types/jest": "*" @@ -30013,40 +30128,73 @@ } }, "@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" + "version": "20.2.1", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", + "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==" }, "@typescript-eslint/eslint-plugin": { - "version": "5.47.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.47.0.tgz", - "integrity": "sha512-AHZtlXAMGkDmyLuLZsRpH3p4G/1iARIwc/T0vIem2YB+xW6pZaXYXzCBnZSF/5fdM97R9QqZWZ+h3iW10XgevQ==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.11.0.tgz", + "integrity": "sha512-HJh33bgzXe6jGRocOj4FmefD7hRY4itgjzOrSs3JPrTNXsX7j5+nQPciAUj/1nZtwo2kAc3C75jZO+T23gzSGw==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.47.0", - "@typescript-eslint/type-utils": "5.47.0", - "@typescript-eslint/utils": "5.47.0", - "debug": "^4.3.4", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", + "@typescript-eslint/scope-manager": "5.11.0", + "@typescript-eslint/type-utils": "5.11.0", + "@typescript-eslint/utils": "5.11.0", + "debug": "^4.3.2", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", "regexpp": "^3.2.0", - "semver": "^7.3.7", + "semver": "^7.3.5", "tsutils": "^3.21.0" }, "dependencies": { - "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==", + "@typescript-eslint/type-utils": { + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.11.0.tgz", + "integrity": "sha512-wDqdsYO6ofLaD4DsGZ0jGwxp4HrzD2YKulpEZXmgN3xo4BHJwf7kq49JTRpV0Gx6bxkSUmc9s0EIK1xPbFFpIA==", + "dev": true, + "requires": { + "@typescript-eslint/utils": "5.11.0", + "debug": "^4.3.2", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.11.0.tgz", + "integrity": "sha512-g2I480tFE1iYRDyMhxPAtLQ9HAn0jjBtipgTCZmd9I9s11OV8CTsG+YfFciuNDcHqm4csbAgC2aVZCHzLxMSUw==", "dev": true, "requires": { - "yallist": "^4.0.0" + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.11.0", + "@typescript-eslint/types": "5.11.0", + "@typescript-eslint/typescript-estree": "5.11.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "dependencies": { + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + } + } } }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -30109,19 +30257,25 @@ "eslint-visitor-keys": "^2.0.0" } }, - "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==", + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "requires": { - "yallist": "^4.0.0" + "eslint-visitor-keys": "^2.0.0" } }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -30130,109 +30284,52 @@ } }, "@typescript-eslint/parser": { - "version": "5.47.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.47.0.tgz", - "integrity": "sha512-udPU4ckK+R1JWCGdQC4Qa27NtBg7w020ffHqGyAK8pAgOVuNw7YaKXGChk+udh+iiGIJf6/E/0xhVXyPAbsczw==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.11.0.tgz", + "integrity": "sha512-x0DCjetHZYBRovJdr3U0zG9OOdNXUaFLJ82ehr1AlkArljJuwEsgnud+Q7umlGDFLFrs8tU8ybQDFocp/eX8mQ==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.47.0", - "@typescript-eslint/types": "5.47.0", - "@typescript-eslint/typescript-estree": "5.47.0", - "debug": "^4.3.4" + "@typescript-eslint/scope-manager": "5.11.0", + "@typescript-eslint/types": "5.11.0", + "@typescript-eslint/typescript-estree": "5.11.0", + "debug": "^4.3.2" } }, "@typescript-eslint/scope-manager": { - "version": "5.47.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.47.0.tgz", - "integrity": "sha512-dvJab4bFf7JVvjPuh3sfBUWsiD73aiftKBpWSfi3sUkysDQ4W8x+ZcFpNp7Kgv0weldhpmMOZBjx1wKN8uWvAw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.47.0", - "@typescript-eslint/visitor-keys": "5.47.0" - } - }, - "@typescript-eslint/type-utils": { - "version": "5.47.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.47.0.tgz", - "integrity": "sha512-1J+DFFrYoDUXQE1b7QjrNGARZE6uVhBqIvdaXTe5IN+NmEyD68qXR1qX1g2u4voA+nCaelQyG8w30SAOihhEYg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.11.0.tgz", + "integrity": "sha512-z+K4LlahDFVMww20t/0zcA7gq/NgOawaLuxgqGRVKS0PiZlCTIUtX0EJbC0BK1JtR4CelmkPK67zuCgpdlF4EA==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "5.47.0", - "@typescript-eslint/utils": "5.47.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" + "@typescript-eslint/types": "5.11.0", + "@typescript-eslint/visitor-keys": "5.11.0" } }, "@typescript-eslint/types": { - "version": "5.47.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.47.0.tgz", - "integrity": "sha512-eslFG0Qy8wpGzDdYKu58CEr3WLkjwC5Usa6XbuV89ce/yN5RITLe1O8e+WFEuxnfftHiJImkkOBADj58ahRxSg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.11.0.tgz", + "integrity": "sha512-cxgBFGSRCoBEhvSVLkKw39+kMzUKHlJGVwwMbPcTZX3qEhuXhrjwaZXWMxVfxDgyMm+b5Q5b29Llo2yow8Y7xQ==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.47.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.47.0.tgz", - "integrity": "sha512-LxfKCG4bsRGq60Sqqu+34QT5qT2TEAHvSCCJ321uBWywgE2dS0LKcu5u+3sMGo+Vy9UmLOhdTw5JHzePV/1y4Q==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.11.0.tgz", + "integrity": "sha512-yVH9hKIv3ZN3lw8m/Jy5I4oXO4ZBMqijcXCdA4mY8ull6TPTAoQnKKrcZ0HDXg7Bsl0Unwwx7jcXMuNZc0m4lg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.47.0", - "@typescript-eslint/visitor-keys": "5.47.0", - "debug": "^4.3.4", - "globby": "^11.1.0", + "@typescript-eslint/types": "5.11.0", + "@typescript-eslint/visitor-keys": "5.11.0", + "debug": "^4.3.2", + "globby": "^11.0.4", "is-glob": "^4.0.3", - "semver": "^7.3.7", + "semver": "^7.3.5", "tsutils": "^3.21.0" }, "dependencies": { - "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" - } - }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@typescript-eslint/utils": { - "version": "5.47.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.47.0.tgz", - "integrity": "sha512-U9xcc0N7xINrCdGVPwABjbAKqx4GK67xuMV87toI+HUqgXj26m6RBp9UshEXcTrgCkdGYFzgKLt8kxu49RilDw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.47.0", - "@typescript-eslint/types": "5.47.0", - "@typescript-eslint/typescript-estree": "5.47.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", - "semver": "^7.3.7" - }, - "dependencies": { - "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" - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -30241,21 +30338,13 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "5.47.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.47.0.tgz", - "integrity": "sha512-ByPi5iMa6QqDXe/GmT/hR6MZtVPi0SqMQPDx15FczCBXJo/7M8T88xReOALAfpBLm+zxpPfmhuEvPb577JRAEg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.11.0.tgz", + "integrity": "sha512-E8w/vJReMGuloGxJDkpPlGwhxocxOpSVgSvjiLO5IxZPmxZF30weOeJYyPSEACwM+X4NziYS9q+WkN/2DHYQwA==", "dev": true, "requires": { - "@typescript-eslint/types": "5.47.0", - "eslint-visitor-keys": "^3.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - } + "@typescript-eslint/types": "5.11.0", + "eslint-visitor-keys": "^3.0.0" } }, "@webassemblyjs/ast": { @@ -30440,13 +30529,21 @@ "dev": true }, "@yarnpkg/parsers": { - "version": "3.0.0-rc.34", - "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.34.tgz", - "integrity": "sha512-NhEA0BusInyk7EiJ7i7qF1Mkrb6gGjZcQQ/W1xxGazxapubEmGO7v5WSll6hWxFXE2ngtLj8lflq1Ff5VtqEww==", + "version": "3.0.0-rc.24", + "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.0-rc.24.tgz", + "integrity": "sha512-A5wXsIUOipZUGDly1SHBht1OjKKW4y+E9EzzJxR2tby0Pj3atgCta9RSYa4+aXLkFfIMX3onnykmJnwJWqJj5g==", "dev": true, "requires": { "js-yaml": "^3.10.0", "tslib": "^2.4.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + } } }, "@zkochan/js-yaml": { @@ -30467,9 +30564,9 @@ } }, "abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", "dev": true }, "abbrev": { @@ -30479,10 +30576,11 @@ "dev": true }, "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true, + "peer": true }, "acorn-globals": { "version": "6.0.0", @@ -30492,6 +30590,14 @@ "requires": { "acorn": "^7.1.1", "acorn-walk": "^7.1.1" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + } } }, "acorn-jsx": { @@ -30544,21 +30650,28 @@ } }, "ajv": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", - "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "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", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "requires": {} + }, "ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, "ansi-escapes": { @@ -30585,9 +30698,9 @@ } }, "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -30624,18 +30737,15 @@ } }, "aria-query": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", - "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", - "dev": true, - "requires": { - "deep-equal": "^2.0.5" - } + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", + "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", + "dev": true }, "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, "arr-flatten": { @@ -30647,7 +30757,7 @@ "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, "array-differ": { @@ -30659,7 +30769,7 @@ "array-find": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", - "integrity": "sha512-kO/vVCacW9mnpn3WPWbTVlEnOabK2L7LWi2HViURtCM46y1zb6I8UMjx4LgbiqadTgHnLInUronwn3ampNTJtQ==", + "integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=", "dev": true }, "array-ify": { @@ -30669,15 +30779,15 @@ "dev": true }, "array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", "is-string": "^1.0.7" } }, @@ -30690,50 +30800,35 @@ "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, "array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" } }, "array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", + "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - } - }, - "array.prototype.tosorted": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", - "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.1.3" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" } }, "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, "asap": { @@ -30745,7 +30840,7 @@ "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true }, "astral-regex": { @@ -30754,16 +30849,10 @@ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, - "async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true - }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, "at-least-node": { @@ -30808,15 +30897,15 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, - "available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true - }, "axios": { "version": "0.21.4", "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", @@ -30906,6 +30995,15 @@ } } }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, "babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", @@ -30930,39 +31028,39 @@ } }, "babel-plugin-polyfill-corejs2": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", - "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", + "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", "dev": true, "requires": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.1", "semver": "^6.1.1" } }, "babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", - "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" } }, "babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", - "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.3" + "@babel/helper-define-polyfill-provider": "^0.3.1" } }, "babel-polyfill": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", - "integrity": "sha512-F2rZGQnAdaHWQ8YAoeRbukc7HS9QgdgeyJ0rQDd485v9opwuPvjpPFcOOT/WmkKTdgy9ESgSPXDcTNpzrGr6iQ==", + "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "dev": true, "requires": { "babel-runtime": "^6.26.0", @@ -30973,7 +31071,7 @@ "regenerator-runtime": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha512-02YopEIhAgiBHWeoTiA8aitHDt8z6w+rQqNuIftlM+ZtvSl/brTouaU7DW6GO/cHtvxJvS4Hwv2ibKdxIRi24w==", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", "dev": true } } @@ -31009,7 +31107,7 @@ "babel-runtime": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { "core-js": "^2.4.0", @@ -31053,7 +31151,7 @@ "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { "is-descriptor": "^1.0.0" @@ -31120,6 +31218,18 @@ "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" + }, + "dependencies": { + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + } } }, "brace-expansion": { @@ -31173,16 +31283,6 @@ "node-int64": "^0.4.0" } }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, "buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -31198,15 +31298,6 @@ "semver": "^7.0.0" }, "dependencies": { - "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" - } - }, "semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -31224,65 +31315,6 @@ "integrity": "sha512-crQdqyCwhokxwV1UyDzLZanhkugAgft7vt0qbbdt60C6Zf3CAiGmtUCylbtYwrU6loOUw3euGrNtW1J651ot1A==", "dev": true }, - "cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "dev": true, - "requires": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -31333,9 +31365,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001441", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz", - "integrity": "sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg==" + "version": "1.0.30001427", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001427.tgz", + "integrity": "sha512-lfXQ73oB9c8DP5Suxaszm+Ta2sr/4tf8+381GkIm1MLj/YdLf+rEDyDSRCzeltuyTVGm+/s18gdZ0q+Wmp8VsQ==" }, "capture-exit": { "version": "2.0.0", @@ -31380,6 +31412,12 @@ "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", "dev": true }, + "charcodes": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/charcodes/-/charcodes-0.2.0.tgz", + "integrity": "sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ==", + "dev": true + }, "chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", @@ -31442,7 +31480,7 @@ "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" @@ -31451,7 +31489,7 @@ "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -31460,7 +31498,7 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -31477,7 +31515,7 @@ "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -31486,7 +31524,7 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -31551,14 +31589,51 @@ "dev": true }, "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "wrap-ansi": "^6.2.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==", + "dev": true, + "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==", + "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 + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } } }, "clone": { @@ -31618,7 +31693,7 @@ "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", "dev": true }, "collect-v8-coverage": { @@ -31630,7 +31705,7 @@ "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { "map-visit": "^1.0.0", @@ -31648,7 +31723,7 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "color-support": { "version": "1.1.3", @@ -31657,9 +31732,9 @@ "dev": true }, "colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", "dev": true }, "columnify": { @@ -31681,12 +31756,6 @@ "delayed-stream": "~1.0.0" } }, - "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true - }, "common-ancestor-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", @@ -31701,6 +31770,23 @@ "requires": { "array-ify": "^1.0.0", "dot-prop": "^5.1.0" + }, + "dependencies": { + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + } } }, "component-emitter": { @@ -31712,7 +31798,7 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { "version": "2.0.0", @@ -31800,6 +31886,15 @@ "locate-path": "^2.0.0" } }, + "hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, "locate-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", @@ -31810,6 +31905,18 @@ "path-exists": "^3.0.0" } }, + "normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, "p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", @@ -31849,6 +31956,15 @@ "find-up": "^2.0.0", "read-pkg": "^3.0.0" } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } } } }, @@ -31916,14 +32032,17 @@ } }, "convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "requires": { + "safe-buffer": "~5.1.1" + } }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true }, "core-js": { @@ -31933,30 +32052,39 @@ "dev": true }, "core-js-compat": { - "version": "3.26.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.1.tgz", - "integrity": "sha512-622/KzTudvXCDLRw70iHW4KKs1aGpcRcowGWyYJr2DEBfRrd6hNJybxSWJFuZYD4ma86xhrwDDHxmDaIq4EA8A==", + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.0.tgz", + "integrity": "sha512-OSXseNPSK2OPJa6GdtkMz/XxeXx8/CJvfhQWTqd6neuUraujcL4jVsjkLQz1OWnax8xVQJnRPe0V2jqNWORA+A==", "dev": true, "requires": { - "browserslist": "^4.21.4" + "browserslist": "^4.19.1", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } } }, "core-js-pure": { - "version": "3.26.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.1.tgz", - "integrity": "sha512-VVXcDpp/xJ21KdULRq/lXdLzQAtX7+37LzpyfFM973il0tWSsDEoyzG38G14AjTpK9VTfiNM9jnFauq/CpaWGQ==", + "version": "3.25.5", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.5.tgz", + "integrity": "sha512-oml3M22pHM+igfWHDfdLVq2ShWmjM2V4L+dQEBs0DWVIqEm9WHCwGAlZ6BmyBQGy5sFrJmcx+856D9lVKyGWYg==", "dev": true }, "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, "cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", "dev": true, "requires": { "@types/parse-json": "^4.0.0", @@ -31967,9 +32095,9 @@ } }, "cosmiconfig-typescript-loader": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.3.0.tgz", - "integrity": "sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.2.0.tgz", + "integrity": "sha512-NkANeMnaHrlaSSlpKGyvn2R4rqUDeE/9E5YHx+b4nwo0R8dZyAqcih8/gxpCZvqWP9Vf6xuLpMSzSgdVEIM78g==", "dev": true, "requires": {} }, @@ -31990,10 +32118,29 @@ "which": "^2.0.1" } }, + "css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, "css-rule-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/css-rule-stream/-/css-rule-stream-1.1.0.tgz", - "integrity": "sha512-qiio/Zkr8I19jh/XuzEkK8OKDQRTrEYaRyIHy4Bwh/tPUe0w8GcQs7r6x24Yc9lT+FbnZFYULxEIXCmaymguUQ==", + "integrity": "sha1-N4bnGYmD2WWibjGVfgkHjLt3BaI=", "dev": true, "requires": { "css-tokenize": "^1.0.1", @@ -32005,13 +32152,13 @@ "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, "readable-stream": { "version": "1.0.34", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -32023,13 +32170,13 @@ "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true }, "through2": { "version": "0.6.5", "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", "dev": true, "requires": { "readable-stream": ">=1.0.33-1 <1.1.0-0", @@ -32041,7 +32188,7 @@ "css-tokenize": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/css-tokenize/-/css-tokenize-1.0.1.tgz", - "integrity": "sha512-gLmmbJdwH9HLY4bcA17lnZ8GgPwEXRbvxBJGHnkiB6gLhRpTzjkjtMIvz7YORGW/Ptv2oMk8b5g+u7mRD6Dd7A==", + "integrity": "sha1-RiXLHtohwUOFi3+B1oA8HSb8FL4=", "dev": true, "requires": { "inherits": "^2.0.1", @@ -32051,13 +32198,13 @@ "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, "readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -32069,7 +32216,7 @@ "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true } } @@ -32077,7 +32224,7 @@ "css.escape": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=", "dev": true }, "cssesc": { @@ -32110,9 +32257,9 @@ } }, "csstype": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", - "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", + "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==" }, "dargs": { "version": "7.0.0", @@ -32154,13 +32301,13 @@ "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, "decamelize-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", "dev": true, "requires": { "decamelize": "^1.1.0", @@ -32170,52 +32317,29 @@ "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", "dev": true } } }, "decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", "dev": true }, "decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, "dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", "dev": true }, - "deep-equal": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.1.0.tgz", - "integrity": "sha512-2pxgvWu3Alv1PoWEyVg7HS8YhGlUFUV7N5oOvfL6d+7xAmLSemMwv/c8Zv/i9KFzxV5Kt5CAvQc70fLwVuf4UA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-get-iterator": "^1.1.2", - "get-intrinsic": "^1.1.3", - "is-arguments": "^1.1.1", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.8" - } - }, "deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -32229,9 +32353,9 @@ "dev": true }, "defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==", "dev": true, "requires": { "clone": "^1.0.2" @@ -32266,7 +32390,7 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, "delegates": { @@ -32309,12 +32433,6 @@ "wrappy": "1" } }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - }, "diff-sequences": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", @@ -32357,10 +32475,27 @@ "yargs": "^16.2.0" }, "dependencies": { + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, "source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true }, "yargs": { @@ -32377,19 +32512,13 @@ "y18n": "^5.0.5", "yargs-parser": "^20.2.2" } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true } } }, "dom-accessibility-api": { - "version": "0.5.14", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz", - "integrity": "sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==", + "version": "0.5.11", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.11.tgz", + "integrity": "sha512-7X6GvzjYf4yTdRKuCVScV+aA9Fvh5r8WzWrXBH9w82ZWB/eYDMGCnazoC/YAqAzUJWHzLOnZqr46K3iEyUhUvw==", "dev": true }, "dom-serializer": { @@ -32403,9 +32532,9 @@ }, "dependencies": { "domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", "dev": true }, "entities": { @@ -32459,12 +32588,20 @@ } }, "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", "dev": true, "requires": { "is-obj": "^2.0.0" + }, + "dependencies": { + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + } } }, "dotenv": { @@ -32481,7 +32618,7 @@ "duplexer2": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", - "integrity": "sha512-+AWBwjGadtksxjOQSFDhPNQbed7icNXApT4+2BNpsXzcCBiInq2H9XW0O8sfHFaPmnQRs7cg/P0fAr2IWQSW0g==", + "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", "dev": true, "requires": { "readable-stream": "~1.1.9" @@ -32490,13 +32627,13 @@ "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, "readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -32508,7 +32645,7 @@ "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true } } @@ -32523,9 +32660,9 @@ } }, "electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" + "version": "1.4.258", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.258.tgz", + "integrity": "sha512-vutF4q0dTUXoAFI7Vbtdwen/BJVwPgj8GRg/SElOodfH7VTX+svUe62A5BG41QRQGk5HsZPB0M++KH1lAlOt0A==" }, "emittery": { "version": "0.7.2", @@ -32573,7 +32710,7 @@ "enhanced-resolve": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", - "integrity": "sha512-kxpoMgrdtkXZ5h0SeraBS1iRntpTpQ3R8ussdb38+UAFnMGX5DDyJXePm+OCHOcoXvHDw7mc2erbJBpDnl7TPw==", + "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=", "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -32624,9 +32761,9 @@ } }, "es-abstract": { - "version": "1.20.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.5.tgz", - "integrity": "sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==", + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", + "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -32635,7 +32772,6 @@ "function.prototype.name": "^1.1.5", "get-intrinsic": "^1.1.3", "get-symbol-description": "^1.0.0", - "gopd": "^1.0.1", "has": "^1.0.3", "has-property-descriptors": "^1.0.0", "has-symbols": "^1.0.3", @@ -32651,27 +32787,11 @@ "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.4.3", "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", "unbox-primitive": "^1.0.2" } }, - "es-get-iterator": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", - "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.0", - "has-symbols": "^1.0.1", - "is-arguments": "^1.1.0", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.5", - "isarray": "^2.0.5" - } - }, "es-module-lexer": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", @@ -32679,15 +32799,6 @@ "dev": true, "peer": true }, - "es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, "es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -32707,7 +32818,7 @@ "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==" + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { "version": "2.0.0", @@ -32725,7 +32836,7 @@ "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { "prelude-ls": "~1.1.2", @@ -32749,13 +32860,20 @@ "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { "prelude-ls": "~1.1.2" @@ -32820,18 +32938,6 @@ "@babel/highlight": "^7.10.4" } }, - "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-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -32872,27 +32978,16 @@ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, - "eslint-utils": { + "eslint-visitor-keys": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.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 - } - } + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true }, "globals": { - "version": "13.19.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", - "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", + "version": "13.12.1", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz", + "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -32910,25 +33005,10 @@ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "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==", - "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" - } - }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -32965,7 +33045,7 @@ "eslint-config-binary": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/eslint-config-binary/-/eslint-config-binary-1.0.2.tgz", - "integrity": "sha512-4PCr0wR6/aE+v9TKrcl4p/Qhs8u7mayoZuQe+599D12MIOmfRFPyhlxczORG5dSBr6+loNGmMtPTJe3tJv3ktg==", + "integrity": "sha1-i6McWtAl6hFNMn0SFbvyfNvD6dI=", "dev": true }, "eslint-config-prettier": { @@ -33113,12 +33193,13 @@ } }, "eslint-module-utils": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", "dev": true, "requires": { - "debug": "^3.2.7" + "debug": "^3.2.7", + "find-up": "^2.1.0" }, "dependencies": { "debug": { @@ -33129,13 +33210,62 @@ "requires": { "ms": "^2.1.1" } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true } } }, "eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "version": "2.25.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", + "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", "dev": true, "requires": { "array-includes": "^3.1.4", @@ -33143,14 +33273,14 @@ "debug": "^2.6.9", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", + "eslint-module-utils": "^2.7.2", "has": "^1.0.3", - "is-core-module": "^2.8.1", + "is-core-module": "^2.8.0", "is-glob": "^4.0.3", - "minimatch": "^3.1.2", + "minimatch": "^3.0.4", "object.values": "^1.1.5", - "resolve": "^1.22.0", - "tsconfig-paths": "^3.14.1" + "resolve": "^1.20.0", + "tsconfig-paths": "^3.12.0" }, "dependencies": { "debug": { @@ -33174,7 +33304,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } @@ -33268,6 +33398,12 @@ "react-is": "^17.0.1" } }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -33289,26 +33425,25 @@ } }, "eslint-plugin-react": { - "version": "7.31.11", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.11.tgz", - "integrity": "sha512-TTvq5JsT5v56wPa9OYHzsrOlHzKZKjV+aLgS+55NJP/cuzdiQPC7PfYoUjMoxlffKtvijpk7vA/jmuqRb9nohw==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.28.0.tgz", + "integrity": "sha512-IOlFIRHzWfEQQKcAD4iyYDndHwTQiCMcJVJjxempf203jnNLUnW34AXLrV33+nEXoifJE2ZEGmcjKPL8957eSw==", "dev": true, "requires": { - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "array.prototype.tosorted": "^1.1.1", + "array-includes": "^3.1.4", + "array.prototype.flatmap": "^1.2.5", "doctrine": "^2.1.0", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "object.hasown": "^1.1.2", - "object.values": "^1.1.6", - "prop-types": "^15.8.1", + "minimatch": "^3.0.4", + "object.entries": "^1.1.5", + "object.fromentries": "^2.0.5", + "object.hasown": "^1.1.0", + "object.values": "^1.1.5", + "prop-types": "^15.7.2", "resolve": "^2.0.0-next.3", "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.8" + "string.prototype.matchall": "^4.0.6" }, "dependencies": { "doctrine": { @@ -33321,22 +33456,21 @@ } }, "resolve": { - "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "version": "2.0.0-next.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", + "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", "dev": true, "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" } } } }, "eslint-plugin-react-hooks": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", - "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.3.0.tgz", + "integrity": "sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==", "dev": true, "requires": {} }, @@ -33350,9 +33484,9 @@ } }, "eslint-rule-docs": { - "version": "1.1.235", - "resolved": "https://registry.npmjs.org/eslint-rule-docs/-/eslint-rule-docs-1.1.235.tgz", - "integrity": "sha512-+TQ+x4JdTnDoFEXXb3fDvfGOwnyNV7duH8fXWTPD1ieaBmB8omj7Gw/pMBBu4uI2uJCCU8APDaQJzWuXnTsH4A==", + "version": "1.1.231", + "resolved": "https://registry.npmjs.org/eslint-rule-docs/-/eslint-rule-docs-1.1.231.tgz", + "integrity": "sha512-egHz9A1WG7b8CS0x1P6P/Rj5FqZOjray/VjpJa14tMZalfRKvpE2ONJ3plCM7+PcinmU4tcmbPLv0VtwzSdLVA==", "dev": true }, "eslint-scope": { @@ -33374,18 +33508,26 @@ } }, "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, "requires": { - "eslint-visitor-keys": "^2.0.0" + "eslint-visitor-keys": "^1.1.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 + } } }, "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==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "dev": true }, "espree": { @@ -33399,6 +33541,12 @@ "eslint-visitor-keys": "^1.3.0" }, "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, "eslint-visitor-keys": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", @@ -33462,19 +33610,19 @@ "dev": true }, "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", "dev": true, "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", "strip-final-newline": "^2.0.0" } }, @@ -33490,13 +33638,13 @@ "exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "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": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { "debug": "^2.3.3", @@ -33520,7 +33668,7 @@ "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" @@ -33529,7 +33677,7 @@ "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -33538,7 +33686,7 @@ "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -33547,7 +33695,7 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -33564,7 +33712,7 @@ "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -33573,7 +33721,7 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -33595,7 +33743,7 @@ "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true }, "kind-of": { @@ -33607,7 +33755,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } @@ -33635,16 +33783,6 @@ "color-convert": "^2.0.1" } }, - "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" - } - }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -33660,68 +33798,11 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", - "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 - }, - "jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, "jest-regex-util": { "version": "26.0.0", "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", "dev": true - }, - "pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - } - }, - "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" - } } } }, @@ -33734,7 +33815,7 @@ "extend-shallow": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { "assign-symbols": "^1.0.0", @@ -33771,7 +33852,7 @@ "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { "is-descriptor": "^1.0.0" @@ -33780,7 +33861,7 @@ "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -33789,7 +33870,7 @@ "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true } } @@ -33807,9 +33888,9 @@ "dev": true }, "fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -33827,28 +33908,28 @@ "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, "fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", "dev": true }, "fastq": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", - "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", "dev": true, "requires": { "reusify": "^1.0.4" } }, "fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", "requires": { "bser": "2.1.1" } @@ -33890,9 +33971,9 @@ } }, "minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -33915,21 +33996,14 @@ "dev": true }, "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, + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "requires": { - "locate-path": "^6.0.0", + "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, - "flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true - }, "flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", @@ -33941,9 +34015,9 @@ } }, "flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "dev": true }, "follow-redirects": { @@ -33952,19 +34026,10 @@ "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", "dev": true }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "requires": { - "is-callable": "^1.1.3" - } - }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true }, "form-data": { @@ -33981,7 +34046,7 @@ "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { "map-cache": "^0.2.2" @@ -33994,14 +34059,23 @@ "dev": true }, "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, "requires": { + "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" + }, + "dependencies": { + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } } }, "fs-minipass": { @@ -34016,7 +34090,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { "version": "2.3.2", @@ -34045,7 +34119,7 @@ "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": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, "functions-have-names": { @@ -34115,11 +34189,25 @@ "yargs": "^16.2.0" }, "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } }, "readable-stream": { "version": "2.3.7", @@ -34136,12 +34224,6 @@ "util-deprecate": "~1.0.1" } }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -34161,6 +34243,12 @@ "xtend": "~4.0.1" } }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, "yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", @@ -34175,12 +34263,6 @@ "y18n": "^5.0.5", "yargs-parser": "^20.2.2" } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true } } }, @@ -34197,10 +34279,13 @@ "dev": true }, "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } }, "get-symbol-description": { "version": "1.0.0", @@ -34215,7 +34300,7 @@ "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "dev": true }, "git-raw-commits": { @@ -34288,14 +34373,14 @@ } }, "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.1.1", + "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } @@ -34378,7 +34463,7 @@ "globjoin": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", - "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", + "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", "dev": true }, "gonzales-pe": { @@ -34390,24 +34475,15 @@ "minimist": "^1.2.5" } }, - "gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3" - } - }, "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" }, "growly": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", "dev": true, "optional": true }, @@ -34422,6 +34498,14 @@ "source-map": "^0.6.1", "uglify-js": "^3.1.4", "wordwrap": "^1.0.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "hard-rejection": { @@ -34448,7 +34532,7 @@ "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "has-property-descriptors": { "version": "1.0.0", @@ -34483,7 +34567,7 @@ "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { "get-value": "^2.0.6", @@ -34494,7 +34578,7 @@ "has-values": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { "is-number": "^3.0.0", @@ -34510,7 +34594,7 @@ "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -34519,7 +34603,7 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -34530,7 +34614,7 @@ "kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -34539,24 +34623,10 @@ } }, "hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - }, - "dependencies": { - "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" - } - } - } + "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-encoding-sniffer": { "version": "2.0.1", @@ -34574,9 +34644,9 @@ "dev": true }, "html-tags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", - "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", + "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==", "dev": true }, "htmlparser2": { @@ -34611,9 +34681,9 @@ } }, "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "dev": true, "requires": { "agent-base": "6", @@ -34621,9 +34691,9 @@ } }, "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", "dev": true }, "humanize-ms": { @@ -34657,9 +34727,9 @@ "dev": true }, "ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "dev": true }, "ignore-walk": { @@ -34681,9 +34751,9 @@ } }, "minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -34728,7 +34798,7 @@ "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "indent-string": { "version": "4.0.0", @@ -34745,7 +34815,7 @@ "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { "once": "^1.3.0", "wrappy": "1" @@ -34778,12 +34848,20 @@ }, "dependencies": { "hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", "dev": true, "requires": { "lru-cache": "^7.5.1" + }, + "dependencies": { + "lru-cache": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", + "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", + "dev": true + } } }, "npm-package-arg": { @@ -34805,25 +34883,14 @@ "dev": true, "requires": { "lru-cache": "^6.0.0" - }, - "dependencies": { - "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" - } - } } } } }, "inquirer": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", - "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", + "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", "dev": true, "requires": { "ansi-escapes": "^4.2.1", @@ -34883,6 +34950,15 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "rxjs": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz", + "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -34891,16 +34967,22 @@ "requires": { "has-flag": "^4.0.0" } + }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true } } }, "internal-slot": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", - "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", "dev": true, "requires": { - "get-intrinsic": "^1.1.3", + "get-intrinsic": "^1.1.0", "has": "^1.0.3", "side-channel": "^1.0.4" } @@ -34912,9 +34994,9 @@ "dev": true }, "ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", "dev": true }, "irregular-plurals": { @@ -34948,20 +35030,10 @@ "is-decimal": "^1.0.0" } }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, "is-bigint": { @@ -35014,9 +35086,9 @@ } }, "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", "dev": true, "requires": { "has": "^1.0.3" @@ -35086,7 +35158,7 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true }, "is-fullwidth-code-point": { @@ -35128,12 +35200,6 @@ "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", "dev": true }, - "is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", - "dev": true - }, "is-negative-zero": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", @@ -35146,24 +35212,24 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", "dev": true, "requires": { "has-tostringtag": "^1.0.0" } }, "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", "dev": true }, "is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", "dev": true }, "is-plain-object": { @@ -35191,13 +35257,7 @@ "is-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", - "dev": true - }, - "is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", "dev": true }, "is-shared-array-buffer": { @@ -35251,23 +35311,10 @@ "text-extensions": "^1.0.0" } }, - "is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - } - }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-unicode-supported": { "version": "0.1.0", @@ -35275,12 +35322,6 @@ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true }, - "is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", - "dev": true - }, "is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -35290,16 +35331,6 @@ "call-bind": "^1.0.2" } }, - "is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -35316,21 +35347,21 @@ } }, "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "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": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, "istanbul-lib-coverage": { @@ -35339,9 +35370,9 @@ "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==" }, "istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", + "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", "requires": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", @@ -35387,12 +35418,20 @@ "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", + "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -35420,6 +35459,12 @@ "color-convert": "^2.0.1" } }, + "async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -35474,9 +35519,9 @@ } }, "jest-chain": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/jest-chain/-/jest-chain-1.1.6.tgz", - "integrity": "sha512-eIkGzVBGQ1VuEErDceMYAET53pcwYVVTXtJEbY+x60Dwi+2M2uOt4rhKAej+wfVOAlE4G0plI9mstmv6GBtJjw==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/jest-chain/-/jest-chain-1.1.5.tgz", + "integrity": "sha512-bTx51vQP/6/XVDrMtz0WmT3wZoXvj5QAAnw1to+o6pvtjcwTIVuB6uR5URRXH/9rHf1WuM1UgsfVTWhTC/QAzw==", "dev": true }, "jest-changed-files": { @@ -35488,40 +35533,6 @@ "@jest/types": "^26.6.2", "execa": "^4.0.0", "throat": "^5.0.0" - }, - "dependencies": { - "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true - } } }, "jest-cli": { @@ -35564,17 +35575,6 @@ "supports-color": "^7.1.0" } }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -35590,49 +35590,12 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "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" - } - }, "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 }, - "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" - } - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -35641,52 +35604,6 @@ "requires": { "has-flag": "^4.0.0" } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } } } }, @@ -35867,6 +35784,18 @@ "react-is": "^17.0.1" } }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -35930,10 +35859,101 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "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" + } + } + } + }, + "jest-docblock": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", + "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", + "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-util": "^26.6.2", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "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" + } + }, + "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 + }, + "pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true }, "supports-color": { @@ -35947,26 +35967,45 @@ } } }, - "jest-docblock": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", - "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", + "jest-environment-jsdom": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", + "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", "dev": true, "requires": { - "detect-newline": "^3.0.0" + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2", + "jsdom": "^16.4.0" } }, - "jest-each": { + "jest-environment-node": { "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", - "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", + "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", "dev": true, "requires": { + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2" + "@types/node": "*", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2" + } + }, + "jest-extended": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/jest-extended/-/jest-extended-1.2.1.tgz", + "integrity": "sha512-eKZR5iDpyTkcDesj16FpIPnjAWQNUB81ZFQW08EIddM6iqO7DjRIi39td9qol+1dpJS4Mqr9Qzp8ZMhanbSeug==", + "dev": true, + "requires": { + "expect": "^26.6.2", + "jest-diff": "^27.2.5", + "jest-get-type": "^27.0.6", + "jest-matcher-utils": "^27.2.4" }, "dependencies": { "ansi-styles": { @@ -36009,16 +36048,22 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "dev": true + }, + "jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", "dev": true, "requires": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" } }, "supports-color": { @@ -36032,55 +36077,6 @@ } } }, - "jest-environment-jsdom": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", - "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2", - "jsdom": "^16.4.0" - } - }, - "jest-environment-node": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", - "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", - "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" - } - }, - "jest-extended": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/jest-extended/-/jest-extended-1.2.1.tgz", - "integrity": "sha512-eKZR5iDpyTkcDesj16FpIPnjAWQNUB81ZFQW08EIddM6iqO7DjRIi39td9qol+1dpJS4Mqr9Qzp8ZMhanbSeug==", - "dev": true, - "requires": { - "expect": "^26.6.2", - "jest-diff": "^27.2.5", - "jest-get-type": "^27.0.6", - "jest-matcher-utils": "^27.2.4" - }, - "dependencies": { - "jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "dev": true - } - } - }, "jest-get-type": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", @@ -36145,9 +36141,9 @@ } }, "ci-info": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz", - "integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==" + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", + "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==" }, "color-convert": { "version": "2.0.1", @@ -36270,42 +36266,12 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", - "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 }, - "jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, "pretty-format": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", @@ -36318,6 +36284,12 @@ "react-is": "^17.0.1" } }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -36374,19 +36346,25 @@ "ansi-styles": "^4.0.0", "react-is": "^17.0.1" } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true } } }, "jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", + "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", "dev": true, "requires": { "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" }, "dependencies": { "ansi-styles": { @@ -36423,16 +36401,46 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "diff-sequences": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", + "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", + "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 }, - "jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "jest-diff": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", + "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + } + }, + "pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true }, "supports-color": { @@ -36515,6 +36523,12 @@ "react-is": "^17.0.1" } }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -36537,9 +36551,9 @@ } }, "jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", "dev": true, "requires": {} }, @@ -36828,17 +36842,6 @@ "supports-color": "^7.1.0" } }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -36854,16 +36857,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "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" - } - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -36908,32 +36901,11 @@ "graceful-fs": "^4.2.4" } }, - "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" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true }, "supports-color": { "version": "7.2.0", @@ -36943,52 +36915,6 @@ "requires": { "has-flag": "^4.0.0" } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } } } }, @@ -37105,18 +37031,6 @@ "walker": "^1.0.7" } }, - "jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, "jest-regex-util": { "version": "26.0.0", "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", @@ -37133,15 +37047,6 @@ "graceful-fs": "^4.2.4" } }, - "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" - } - }, "pretty-format": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", @@ -37154,10 +37059,16 @@ "react-is": "^17.0.1" } }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -37311,6 +37222,12 @@ "react-is": "^17.0.1" } }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -37466,9 +37383,9 @@ }, "dependencies": { "acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", "dev": true } } @@ -37491,15 +37408,15 @@ "dev": true }, "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==", + "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 }, "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": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, "json-stringify-nice": { @@ -37515,9 +37432,12 @@ "dev": true }, "json5": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.2.tgz", - "integrity": "sha512-46Tk9JiOL2z7ytNQWFLpj99RZkVgeHf87yGQKsIkaPz1qSH9UczKH1rO7K3wgRselo0tYMUNfecYpm/p1vC7tQ==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "requires": { + "minimist": "^1.2.5" + } }, "jsonc-parser": { "version": "3.2.0", @@ -37533,6 +37453,14 @@ "requires": { "graceful-fs": "^4.1.6", "universalify": "^2.0.0" + }, + "dependencies": { + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } } }, "jsonparse": { @@ -37552,25 +37480,25 @@ } }, "jsx-ast-utils": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", - "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz", + "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==", "dev": true, "requires": { - "array-includes": "^3.1.5", - "object.assign": "^4.1.3" + "array-includes": "^3.1.3", + "object.assign": "^4.1.2" } }, "just-diff": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-5.2.0.tgz", - "integrity": "sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-5.1.1.tgz", + "integrity": "sha512-u8HXJ3HlNrTzY7zrYYKjNEfBlyjqhdBkoyTVdjtn7p02RJD5NvR8rIClzeGA7t+UYP1/7eAkWNLU0+P3QrEqKQ==", "dev": true }, "just-diff-apply": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.5.0.tgz", - "integrity": "sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.4.1.tgz", + "integrity": "sha512-AAV5Jw7tsniWwih8Ly3fXxEZ06y+6p5TwQMsw0dzZ/wPKilzyDgdAnL0Ug4NNIquPUOh1vfFWEHbmXUqM5+o8g==", "dev": true }, "kind-of": { @@ -37594,7 +37522,7 @@ "ldjson-stream": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ldjson-stream/-/ldjson-stream-1.2.1.tgz", - "integrity": "sha512-xw/nNEXafuPSLu8NjjG3+atVVw+8U1APZAQylmwQn19Hgw6rC7QjHvP6MupnHWCrzSm9m0xs5QWkCLuRvBPjgQ==", + "integrity": "sha1-kb7O2lrE7SsX5kn7d356v6AYnCs=", "dev": true, "requires": { "split2": "^0.2.1", @@ -37604,13 +37532,13 @@ "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, "readable-stream": { "version": "1.0.34", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -37622,7 +37550,7 @@ "split2": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/split2/-/split2-0.2.1.tgz", - "integrity": "sha512-D/oTExYAkC9nWleOCTOyNmAuzfAT/6rHGBA9LIK7FVnGo13CSvrKCUzKenwH6U1s2znY9MqH6v0UQTEDa3vJmg==", + "integrity": "sha1-At2smtwD7Au3jBKC7Aecpuha6QA=", "dev": true, "requires": { "through2": "~0.6.1" @@ -37631,13 +37559,13 @@ "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true }, "through2": { "version": "0.6.5", "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", "dev": true, "requires": { "readable-stream": ">=1.0.33-1 <1.1.0-0", @@ -37647,28 +37575,28 @@ } }, "lerna": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/lerna/-/lerna-5.6.2.tgz", - "integrity": "sha512-Y0yMPslvnBnTZi7Nrs/gDyYZYauNf61xWNCehISHIORxZmmpoluNkcWTfcyb47is5uJQCv5QJX5xKKubbs+a6w==", - "dev": true, - "requires": { - "@lerna/add": "5.6.2", - "@lerna/bootstrap": "5.6.2", - "@lerna/changed": "5.6.2", - "@lerna/clean": "5.6.2", - "@lerna/cli": "5.6.2", - "@lerna/command": "5.6.2", - "@lerna/create": "5.6.2", - "@lerna/diff": "5.6.2", - "@lerna/exec": "5.6.2", - "@lerna/import": "5.6.2", - "@lerna/info": "5.6.2", - "@lerna/init": "5.6.2", - "@lerna/link": "5.6.2", - "@lerna/list": "5.6.2", - "@lerna/publish": "5.6.2", - "@lerna/run": "5.6.2", - "@lerna/version": "5.6.2", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/lerna/-/lerna-5.6.1.tgz", + "integrity": "sha512-gAZxKlQVpYpAvzXMOpc6VfFa6WYZmdD7u6js1u3wu7tOwnwHcSQK+qGOO3/Ky/YP+LbrXuH0BnLj09d+ev9OwA==", + "dev": true, + "requires": { + "@lerna/add": "5.6.1", + "@lerna/bootstrap": "5.6.1", + "@lerna/changed": "5.6.1", + "@lerna/clean": "5.6.1", + "@lerna/cli": "5.6.1", + "@lerna/command": "5.6.1", + "@lerna/create": "5.6.1", + "@lerna/diff": "5.6.1", + "@lerna/exec": "5.6.1", + "@lerna/import": "5.6.1", + "@lerna/info": "5.6.1", + "@lerna/init": "5.6.1", + "@lerna/link": "5.6.1", + "@lerna/list": "5.6.1", + "@lerna/publish": "5.6.1", + "@lerna/run": "5.6.1", + "@lerna/version": "5.6.1", "@nrwl/devkit": ">=14.8.1 < 16", "import-local": "^3.0.2", "inquirer": "^8.2.4", @@ -37706,12 +37634,20 @@ }, "dependencies": { "hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", "dev": true, "requires": { "lru-cache": "^7.5.1" + }, + "dependencies": { + "lru-cache": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", + "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", + "dev": true + } } }, "npm-package-arg": { @@ -37733,17 +37669,6 @@ "dev": true, "requires": { "lru-cache": "^6.0.0" - }, - "dependencies": { - "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" - } - } } } } @@ -37762,12 +37687,20 @@ }, "dependencies": { "hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", "dev": true, "requires": { "lru-cache": "^7.5.1" + }, + "dependencies": { + "lru-cache": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", + "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", + "dev": true + } } }, "normalize-package-data": { @@ -37801,17 +37734,15 @@ "dev": true, "requires": { "lru-cache": "^6.0.0" - }, - "dependencies": { - "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" - } - } + } + }, + "ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", + "dev": true, + "requires": { + "minipass": "^3.1.1" } } } @@ -37879,31 +37810,11 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } + "commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true }, "has-flag": { "version": "4.0.0", @@ -37911,12 +37822,6 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -37942,6 +37847,23 @@ "rxjs": "^7.5.1", "through": "^2.3.8", "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "rxjs": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.4.tgz", + "integrity": "sha512-h5M3Hk78r6wAheJF0a5YahB1yRQKCsZ4MsGdZ5O9ETbVtjPcScGfrMmoOq7EBsCRzd4BDkvDJ7ogP8Sz5tTFiQ==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + }, + "tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + } } }, "load-json-file": { @@ -37965,19 +37887,18 @@ } }, "loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", + "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", "dev": true, "peer": true }, "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "requires": { - "p-locate": "^5.0.0" + "p-locate": "^4.1.0" } }, "lodash": { @@ -37986,22 +37907,10 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true - }, "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "lodash.isfunction": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", - "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", "dev": true }, "lodash.ismatch": { @@ -38010,58 +37919,16 @@ "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", "dev": true }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true - }, - "lodash.kebabcase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", - "dev": true - }, "lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "lodash.mergewith": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", - "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", - "dev": true - }, - "lodash.snakecase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", - "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", - "dev": true - }, - "lodash.startcase": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", - "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", - "dev": true - }, "lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "dev": true - }, - "lodash.upperfirst": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", - "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", "dev": true }, "log-symbols": { @@ -38200,15 +38067,18 @@ } }, "lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true + "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" + } }, "lz-string": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", - "integrity": "sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==", + "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=", "dev": true }, "make-dir": { @@ -38250,12 +38120,80 @@ "ssri": "^9.0.0" }, "dependencies": { + "@npmcli/fs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", + "dev": true, + "requires": { + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" + } + }, + "@npmcli/move-file": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", + "dev": true, + "requires": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + } + }, "@tootallnate/once": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", "dev": true }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "cacache": { + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", + "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", + "dev": true, + "requires": { + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^2.0.0" + } + }, + "glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, "http-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", @@ -38266,6 +38204,86 @@ "agent-base": "6", "debug": "4" } + }, + "lru-cache": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", + "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", + "dev": true + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "minipass-fetch": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", + "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", + "dev": true, + "requires": { + "encoding": "^0.1.13", + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "unique-filename": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", + "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", + "dev": true, + "requires": { + "unique-slug": "^3.0.0" + } + }, + "unique-slug": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", + "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } } } }, @@ -38280,7 +38298,7 @@ "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, "map-obj": { @@ -38292,7 +38310,7 @@ "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { "object-visit": "^1.0.0" @@ -38340,7 +38358,7 @@ "memory-fs": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", - "integrity": "sha512-+y4mDxU4rvXXu5UDSGCGNiesFmwCHuefGMoPCO1WYucNYj7DsLqrFaa2fXVI0H+NNiPTwwzKwspn9yTZqUGqng==", + "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=", "dev": true }, "meow": { @@ -38362,17 +38380,41 @@ "yargs-parser": "^20.2.3" }, "dependencies": { + "hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, "type-fest": { "version": "0.18.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true } } }, @@ -38398,27 +38440,27 @@ } }, "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" + "braces": "^3.0.1", + "picomatch": "^2.2.3" } }, "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", "dev": true }, "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", "dev": true, "requires": { - "mime-db": "1.52.0" + "mime-db": "1.51.0" } }, "mimic-fn": { @@ -38434,18 +38476,17 @@ "dev": true }, "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.1.tgz", + "integrity": "sha512-reLxBcKUPNBnc/sVtAbxgRVFSegoGeLaSjmphNhcwcolhYLRgtJscn5mRl6YRZNQv40Y7P6JM2YhSIsbL9OB5A==", "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", - "dev": true + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "minimist-options": { "version": "4.1.0", @@ -38459,9 +38500,9 @@ } }, "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", "dev": true, "requires": { "yallist": "^4.0.0" @@ -38476,18 +38517,6 @@ "minipass": "^3.0.0" } }, - "minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", - "dev": true, - "requires": { - "encoding": "^0.1.13", - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - } - }, "minipass-flush": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", @@ -38545,12 +38574,6 @@ "is-extendable": "^1.0.1" } }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, "mkdirp-infer-owner": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz", @@ -38560,6 +38583,14 @@ "chownr": "^2.0.0", "infer-owner": "^1.0.4", "mkdirp": "^1.0.3" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } } }, "modify-values": { @@ -38628,13 +38659,7 @@ "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, "negotiator": { @@ -38673,19 +38698,19 @@ "tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", "dev": true }, "webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", "dev": true }, "whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", "dev": true, "requires": { "tr46": "~0.0.3", @@ -38695,9 +38720,9 @@ } }, "node-gyp": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.1.tgz", - "integrity": "sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.2.0.tgz", + "integrity": "sha512-/+/YxGfIJOh/fnMsr4Ep0v6oOIjnO1BgLd2dcDspBX1spTkQU7xSIox5RdRE/2/Uq3ZwK8Z5swRIbMUmPlslmg==", "dev": true, "requires": { "env-paths": "^2.2.0", @@ -38712,15 +38737,6 @@ "which": "^2.0.2" }, "dependencies": { - "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" - } - }, "nopt": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", @@ -38750,7 +38766,7 @@ "node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" }, "node-machine-id": { "version": "1.1.12", @@ -38773,20 +38789,10 @@ "which": "^2.0.2" }, "dependencies": { - "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, - "optional": true, - "requires": { - "yallist": "^4.0.0" - } - }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "optional": true, "requires": { @@ -38796,9 +38802,9 @@ } }, "node-releases": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", - "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==" + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" }, "nopt": { "version": "5.0.0", @@ -38810,34 +38816,22 @@ } }, "normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "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": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" }, "dependencies": { - "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" - } - }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true } } }, @@ -38849,13 +38843,13 @@ "normalize-range": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", "dev": true }, "normalize-selector": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz", - "integrity": "sha512-dxvWdI8gw6eAvk9BlPffgEoGfM7AdijoCwOEJge3e3ulT2XLgmU7KvvxprOaCu05Q1uGRHmOhHe1r6emZoKyFw==", + "integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=", "dev": true }, "npm-bundled": { @@ -38876,15 +38870,6 @@ "semver": "^7.1.1" }, "dependencies": { - "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" - } - }, "semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -38928,15 +38913,6 @@ "lru-cache": "^6.0.0" } }, - "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" - } - }, "semver": { "version": "7.3.8", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", @@ -38992,9 +38968,9 @@ } }, "minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -39030,12 +39006,20 @@ }, "dependencies": { "hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", "dev": true, "requires": { "lru-cache": "^7.5.1" + }, + "dependencies": { + "lru-cache": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", + "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", + "dev": true + } } }, "npm-normalize-package-bin": { @@ -39063,17 +39047,6 @@ "dev": true, "requires": { "lru-cache": "^6.0.0" - }, - "dependencies": { - "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" - } - } } } } @@ -39094,12 +39067,32 @@ }, "dependencies": { "hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", "dev": true, "requires": { "lru-cache": "^7.5.1" + }, + "dependencies": { + "lru-cache": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", + "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", + "dev": true + } + } + }, + "minipass-fetch": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", + "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", + "dev": true, + "requires": { + "encoding": "^0.1.13", + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" } }, "npm-package-arg": { @@ -39121,17 +39114,6 @@ "dev": true, "requires": { "lru-cache": "^6.0.0" - }, - "dependencies": { - "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" - } - } } } } @@ -39160,28 +39142,28 @@ "num2fraction": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", "dev": true }, "nwsapi": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", - "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", "dev": true }, "nx": { - "version": "14.8.6", - "resolved": "https://registry.npmjs.org/nx/-/nx-14.8.6.tgz", - "integrity": "sha512-QLU3sip/g3JdNO8n5Nw2esN+0G26Jsy3u1LlrB9Giu4zf/+KsfN8CcXMbEVqOnPR1FkCS52xliaq7IBQfvvMQA==", + "version": "14.8.3", + "resolved": "https://registry.npmjs.org/nx/-/nx-14.8.3.tgz", + "integrity": "sha512-6aMYrzlTqE77vHbaE1teI5P1A2oYkJGkuDMIo/zegRwUxCAjRzLAluUgPrmgqhuPTyTDn8p4aDfxAWV3Q0o/2Q==", "dev": true, "requires": { - "@nrwl/cli": "14.8.6", - "@nrwl/tao": "14.8.6", + "@nrwl/cli": "14.8.3", + "@nrwl/tao": "14.8.3", "@parcel/watcher": "2.0.4", "@yarnpkg/lockfile": "^1.1.0", "@yarnpkg/parsers": "^3.0.0-rc.18", "@zkochan/js-yaml": "0.0.6", - "axios": "^1.0.0", + "axios": "0.21.1", "chalk": "4.1.0", "chokidar": "^3.5.1", "cli-cursor": "3.1.0", @@ -39228,14 +39210,12 @@ "dev": true }, "axios": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.1.tgz", - "integrity": "sha512-I88cFiGu9ryt/tfVEi4kX2SITsvDddTajXTOFmt2uK1ZVA8LytjtdeyefdQWEf5PU8w+4SSJDoYnggflB5tW4A==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", + "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", "dev": true, "requires": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" + "follow-redirects": "^1.10.0" } }, "chalk": { @@ -39248,6 +39228,17 @@ "supports-color": "^7.1.0" } }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -39282,15 +39273,21 @@ "micromatch": "^4.0.4" } }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" } }, "glob": { @@ -39322,15 +39319,6 @@ "argparse": "^2.0.1" } }, - "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" - } - }, "minimatch": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", @@ -39367,6 +39355,52 @@ "rimraf": "^3.0.0" } }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "17.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.0.tgz", + "integrity": "sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g==", + "dev": true, + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "dependencies": { + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + } + } + }, "yargs-parser": { "version": "21.0.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", @@ -39378,12 +39412,12 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { "copy-descriptor": "^0.1.0", @@ -39394,7 +39428,7 @@ "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" @@ -39403,7 +39437,7 @@ "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -39418,7 +39452,7 @@ "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -39446,7 +39480,7 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -39460,16 +39494,6 @@ "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", "dev": true }, - "object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -39479,7 +39503,7 @@ "object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { "isobject": "^3.0.0" @@ -39498,61 +39522,61 @@ } }, "object.entries": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", - "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" } }, "object.fromentries": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", - "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" } }, "object.hasown": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", - "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", + "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", "dev": true, "requires": { - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" } }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { "isobject": "^3.0.1" } }, "object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" } }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { "wrappy": "1" } @@ -39662,7 +39686,7 @@ "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, "p-each-series": { @@ -39674,25 +39698,23 @@ "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, "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, + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "requires": { - "yocto-queue": "^0.1.0" + "p-try": "^2.0.0" } }, "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "requires": { - "p-limit": "^3.0.2" + "p-limit": "^2.2.0" } }, "p-map": { @@ -39784,15 +39806,104 @@ "tar": "^6.1.11" }, "dependencies": { + "@npmcli/fs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", + "dev": true, + "requires": { + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" + } + }, + "@npmcli/move-file": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", + "dev": true, + "requires": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + } + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "cacache": { + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", + "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", + "dev": true, + "requires": { + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^2.0.0" + } + }, + "glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, "hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", "dev": true, "requires": { "lru-cache": "^7.5.1" } }, + "lru-cache": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", + "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", + "dev": true + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, "npm-package-arg": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", @@ -39824,6 +39935,33 @@ } } } + }, + "ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "unique-filename": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", + "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", + "dev": true, + "requires": { + "unique-slug": "^3.0.0" + } + }, + "unique-slug": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", + "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } } } }, @@ -39900,7 +40038,7 @@ "pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true }, "path-exists": { @@ -39911,7 +40049,7 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-key": { "version": "3.1.1", @@ -39959,45 +40097,6 @@ "dev": true, "requires": { "find-up": "^4.0.0" - }, - "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" - } - } } }, "please-upgrade-node": { @@ -40021,13 +40120,13 @@ "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, "postcss": { - "version": "8.4.20", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.20.tgz", - "integrity": "sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==", + "version": "8.4.19", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", + "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", "dev": true, "requires": { "nanoid": "^3.3.4", @@ -40061,18 +40160,15 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, - "postcss-html": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.36.0.tgz", - "integrity": "sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw==", - "dev": true, - "requires": { - "htmlparser2": "^3.10.0" - } - }, "postcss-less": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-3.1.4.tgz", @@ -40097,19 +40193,25 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, "postcss-media-query-parser": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", - "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", + "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", "dev": true }, "postcss-resolve-nested-selector": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", - "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", + "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", "dev": true }, "postcss-safe-parser": { @@ -40136,6 +40238,12 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -40164,53 +40272,25 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } - } - } - }, - "postcss-scss": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-2.1.1.tgz", - "integrity": "sha512-jQmGnj0hSGLd9RscFw9LyuSVAa5Bl1/KBPqG1NQw9w8ND55nY4ZEsdlVuYJvLPpV+y0nwTV5v/4rHPzZRihQbA==", - "dev": true, - "requires": { - "postcss": "^7.0.6" - }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, "postcss-selector-parser": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", - "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", "dev": true, "requires": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, - "postcss-syntax": { - "version": "0.36.2", - "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz", - "integrity": "sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==", - "dev": true, - "requires": {} - }, "postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", @@ -40224,9 +40304,9 @@ "dev": true }, "prettier": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz", - "integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", + "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", "dev": true }, "prettier-linter-helpers": { @@ -40254,6 +40334,12 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true } } }, @@ -40290,7 +40376,7 @@ "promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "dev": true }, "promise-retry": { @@ -40326,17 +40412,11 @@ "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, "requires": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" - }, - "dependencies": { - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - } } }, "proto-list": { @@ -40351,16 +40431,10 @@ "integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==", "dev": true }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true - }, "psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", "dev": true }, "pump": { @@ -40382,13 +40456,7 @@ "q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", - "dev": true - }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", "dev": true }, "queue-microtask": { @@ -40414,52 +40482,30 @@ } }, "react": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", - "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", "requires": { "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" + "object-assign": "^4.1.1" } }, "react-dom": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", - "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" + "scheduler": "^0.20.2" } }, "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "dev": true }, - "react-test-renderer": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.14.0.tgz", - "integrity": "sha512-L8yPjqPE5CZO6rKsKXRO/rVPiaCOy0tQQJbC+UjPNlobl5mad59lvPjwFsQHTvL03caVDIVr9x9/OSgDe6I5Eg==", - "dev": true, - "requires": { - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "react-is": "^16.8.6", - "scheduler": "^0.19.1" - }, - "dependencies": { - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true - } - } - }, "read": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", @@ -40510,18 +40556,26 @@ } }, "hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", "dev": true, "requires": { "lru-cache": "^7.5.1" + }, + "dependencies": { + "lru-cache": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", + "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", + "dev": true + } } }, "minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -40552,17 +40606,6 @@ "dev": true, "requires": { "lru-cache": "^6.0.0" - }, - "dependencies": { - "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" - } - } } } } @@ -40588,12 +40631,6 @@ "path-type": "^3.0.0" }, "dependencies": { - "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 - }, "load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", @@ -40606,18 +40643,6 @@ "strip-bom": "^3.0.0" } }, - "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": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -40643,12 +40668,6 @@ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", "dev": true }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -40668,61 +40687,6 @@ "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" - } - }, - "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 - }, - "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" - } - }, - "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": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "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" - } - }, "read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", @@ -40743,12 +40707,6 @@ } } }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, "type-fest": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", @@ -40806,9 +40764,9 @@ "dev": true }, "regenerate-unicode-properties": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", - "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", "dev": true, "requires": { "regenerate": "^1.4.2" @@ -40821,9 +40779,9 @@ "dev": true }, "regenerator-transform": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", - "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", "dev": true, "requires": { "@babel/runtime": "^7.8.4" @@ -40857,29 +40815,29 @@ "dev": true }, "regexpu-core": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz", - "integrity": "sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", + "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", "dev": true, "requires": { "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsgen": "^0.7.1", - "regjsparser": "^0.9.1", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" + "unicode-match-property-value-ecmascript": "^2.0.0" } }, "regjsgen": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", - "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", "dev": true }, "regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", "dev": true, "requires": { "jsesc": "~0.5.0" @@ -40888,7 +40846,7 @@ "jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", "dev": true } } @@ -40925,7 +40883,7 @@ "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", "dev": true }, "repeat-element": { @@ -40937,13 +40895,13 @@ "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, "require-from-string": { @@ -40964,19 +40922,13 @@ "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==", "dev": true }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true - }, "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", "dev": true, "requires": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.8.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -41007,7 +40959,7 @@ "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, "restore-cursor": { @@ -41029,7 +40981,7 @@ "retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", "dev": true }, "reusify": { @@ -41074,25 +41026,15 @@ "queue-microtask": "^1.2.2" } }, - "rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", - "dev": true, - "requires": { - "tslib": "^2.1.0" - } - }, "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "safe-regex": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { "ret": "~0.1.10" @@ -41163,7 +41105,7 @@ "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -41202,7 +41144,7 @@ "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { "extend-shallow": "^2.0.1", @@ -41214,7 +41156,7 @@ "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -41240,13 +41182,13 @@ "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -41255,7 +41197,7 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -41266,7 +41208,7 @@ "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "micromatch": { @@ -41293,7 +41235,7 @@ "normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { "remove-trailing-separator": "^1.0.1" @@ -41302,7 +41244,7 @@ "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { "path-key": "^2.0.0" @@ -41311,7 +41253,7 @@ "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, "semver": { @@ -41323,7 +41265,7 @@ "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { "shebang-regex": "^1.0.0" @@ -41332,13 +41274,13 @@ "shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { "is-number": "^3.0.0", @@ -41366,9 +41308,9 @@ } }, "scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" @@ -41383,33 +41325,6 @@ "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", "ajv-keywords": "^3.5.2" - }, - "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" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} - }, - "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 - } } }, "semver": { @@ -41420,7 +41335,7 @@ "semver-compare": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", "dev": true }, "serialize-javascript": { @@ -41436,7 +41351,7 @@ "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, "set-value": { @@ -41454,7 +41369,7 @@ "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -41463,7 +41378,7 @@ "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true }, "is-plain-object": { @@ -41606,7 +41521,7 @@ "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" @@ -41615,7 +41530,7 @@ "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" @@ -41624,7 +41539,7 @@ "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -41633,7 +41548,7 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -41650,7 +41565,7 @@ "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -41659,7 +41574,7 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -41681,7 +41596,7 @@ "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true }, "kind-of": { @@ -41693,14 +41608,21 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "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" + } } } }, @@ -41718,7 +41640,7 @@ "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { "is-descriptor": "^1.0.0" @@ -41744,7 +41666,7 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -41753,12 +41675,12 @@ } }, "socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", + "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", "dev": true, "requires": { - "ip": "^2.0.0", + "ip": "^1.1.5", "smart-buffer": "^4.2.0" } }, @@ -41791,9 +41713,9 @@ } }, "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "source-map-js": { "version": "1.0.2", @@ -41802,16 +41724,13 @@ "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==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", "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" + "decode-uri-component": "^0.2.0" } }, "source-map-support": { @@ -41822,6 +41741,14 @@ "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "source-map-url": { @@ -41857,9 +41784,9 @@ } }, "spdx-license-ids": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", - "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", "dev": true }, "specificity": { @@ -41898,21 +41825,12 @@ "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" - }, - "ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dev": true, - "requires": { - "minipass": "^3.1.1" - } + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, "stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", + "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", "dev": true, "requires": { "escape-string-regexp": "^2.0.0" @@ -41929,7 +41847,7 @@ "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { "define-property": "^0.2.5", @@ -41939,7 +41857,7 @@ "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" @@ -41948,7 +41866,7 @@ "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -41957,7 +41875,7 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -41974,7 +41892,7 @@ "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -41983,7 +41901,7 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -42017,6 +41935,14 @@ "dev": true, "requires": { "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } } }, "string-argv": { @@ -42047,41 +41973,41 @@ } }, "string.prototype.matchall": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", - "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz", + "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.2", "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.3", + "regexp.prototype.flags": "^1.3.1", "side-channel": "^1.0.4" } }, "string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "es-abstract": "^1.19.5" } }, "string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "es-abstract": "^1.19.5" } }, "stringify-object": { @@ -42093,14 +42019,6 @@ "get-own-enumerable-property-symbols": "^3.0.0", "is-obj": "^1.0.1", "is-regexp": "^1.0.0" - }, - "dependencies": { - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", - "dev": true - } } }, "strip-ansi": { @@ -42121,7 +42039,7 @@ "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, "strip-final-newline": { @@ -42159,7 +42077,7 @@ "style-search": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", - "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", + "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", "dev": true }, "stylelint": { @@ -42218,6 +42136,25 @@ "write-file-atomic": "^3.0.3" }, "dependencies": { + "@stylelint/postcss-css-in-js": { + "version": "0.37.2", + "resolved": "https://registry.npmjs.org/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz", + "integrity": "sha512-nEhsFoJurt8oUmieT8qy4nk81WRHmJynmVwn/Vts08PL9fhgIsMhk1GId5yAN643OzqEEb5S/6At2TZW7pqPDA==", + "dev": true, + "requires": { + "@babel/core": ">=7.9.0" + } + }, + "@stylelint/postcss-markdown": { + "version": "0.36.2", + "resolved": "https://registry.npmjs.org/@stylelint/postcss-markdown/-/postcss-markdown-0.36.2.tgz", + "integrity": "sha512-2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ==", + "dev": true, + "requires": { + "remark": "^13.0.0", + "unist-util-find-all-after": "^3.0.2" + } + }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -42264,6 +42201,15 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, "meow": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", @@ -42284,6 +42230,18 @@ "yargs-parser": "^20.2.3" } }, + "normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, "picocolors": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", @@ -42300,6 +42258,46 @@ "source-map": "^0.6.1" } }, + "postcss-html": { + "version": "0.36.0", + "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.36.0.tgz", + "integrity": "sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw==", + "dev": true, + "requires": { + "htmlparser2": "^3.10.0" + } + }, + "postcss-scss": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-2.1.1.tgz", + "integrity": "sha512-jQmGnj0hSGLd9RscFw9LyuSVAa5Bl1/KBPqG1NQw9w8ND55nY4ZEsdlVuYJvLPpV+y0nwTV5v/4rHPzZRihQbA==", + "dev": true, + "requires": { + "postcss": "^7.0.6" + } + }, + "postcss-syntax": { + "version": "0.36.2", + "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz", + "integrity": "sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==", + "dev": true, + "requires": {} + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -42314,12 +42312,6 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true } } }, @@ -42418,15 +42410,15 @@ } }, "stylelint-webpack-plugin": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/stylelint-webpack-plugin/-/stylelint-webpack-plugin-2.4.0.tgz", - "integrity": "sha512-MhXDqd8HPXdY51nGeDeUEXToximoIbc0Z5TQC1M0ApR0ejrOwj9dRZKiL/00MDRrQfuAGkjcJ6sOVvc4gRzbgQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/stylelint-webpack-plugin/-/stylelint-webpack-plugin-2.3.2.tgz", + "integrity": "sha512-gjerWQ7nY+4JdebL3LTDPp80DV10O1OOWtM+v+W29+ThzLsKGz3UptEVd0jVdFpWEohEXVilbnan2b/YXxakqA==", "dev": true, "requires": { "arrify": "^2.0.1", "globby": "^11.0.4", - "jest-worker": "^28.1.0", - "micromatch": "^4.0.5", + "jest-worker": "^27.3.1", + "micromatch": "^4.0.4", "normalize-path": "^3.0.0", "schema-utils": "^3.1.1" }, @@ -42444,9 +42436,9 @@ "dev": true }, "jest-worker": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", - "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, "requires": { "@types/node": "*", @@ -42489,6 +42481,12 @@ "picocolors": "^0.2.1", "source-map": "^0.6.1" } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -42501,9 +42499,9 @@ } }, "supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", "dev": true, "requires": { "has-flag": "^4.0.0", @@ -42536,7 +42534,7 @@ "svg-tags": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", - "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", "dev": true }, "symbol-tree": { @@ -42546,9 +42544,9 @@ "dev": true }, "table": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", + "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", "dev": true, "requires": { "ajv": "^8.0.1", @@ -42558,6 +42556,18 @@ "strip-ansi": "^6.0.1" }, "dependencies": { + "ajv": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", + "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "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" + } + }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -42582,6 +42592,12 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "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 + }, "slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", @@ -42598,7 +42614,7 @@ "tapable": { "version": "0.1.10", "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", - "integrity": "sha512-jX8Et4hHg57mug1/079yitEKWGB3LCwoxByLsNim89LABq8NqgiX+6iYVOsq0vX8uJHkU+DZ5fnq95f800bEsQ==", + "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=", "dev": true }, "tar": { @@ -42613,6 +42629,14 @@ "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } } }, "tar-stream": { @@ -42644,24 +42668,26 @@ "supports-hyperlinks": "^2.0.0" } }, - "terser": { - "version": "5.16.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", - "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", + "terser-webpack-plugin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", + "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", "dev": true, "peer": true, "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" }, "dependencies": { "acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", "dev": true, + "optional": true, "peer": true }, "commander": { @@ -42670,23 +42696,7 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true, "peer": true - } - } - }, - "terser-webpack-plugin": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", - "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", - "dev": true, - "peer": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.14", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "terser": "^5.14.1" - }, - "dependencies": { + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -42706,6 +42716,13 @@ "supports-color": "^8.0.0" } }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "peer": true + }, "supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -42715,6 +42732,27 @@ "requires": { "has-flag": "^4.0.0" } + }, + "terser": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", + "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==", + "dev": true, + "peer": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true, + "peer": true + } + } } } }, @@ -42737,7 +42775,7 @@ "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, "throat": { @@ -42749,7 +42787,7 @@ "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, "through2": { @@ -42778,12 +42816,12 @@ "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" }, "to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { "kind-of": "^3.0.2" @@ -42798,7 +42836,7 @@ "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" @@ -42827,23 +42865,14 @@ } }, "tough-cookie": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", - "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", "dev": true, "requires": { "psl": "^1.1.33", "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "dependencies": { - "universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true - } + "universalify": "^0.1.2" } }, "tr46": { @@ -42891,29 +42920,20 @@ "yargs-parser": "20.x" }, "dependencies": { - "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" - } + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "requires": { "lru-cache": "^6.0.0" } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true } } }, @@ -42949,6 +42969,12 @@ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "dev": true + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true } } }, @@ -42976,15 +43002,15 @@ "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true } } }, "tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "tsutils": { @@ -42994,14 +43020,6 @@ "dev": true, "requires": { "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } } }, "type-check": { @@ -43028,7 +43046,7 @@ "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, "typedarray-to-buffer": { @@ -43040,14 +43058,14 @@ } }, "typescript": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", - "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==" + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", + "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==" }, "uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "version": "3.15.5", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.5.tgz", + "integrity": "sha512-hNM5q5GbBRB5xB+PMqVRcgYe4c8jbyZ1pzZhS6jbq54/4F2gFK869ZheiE5A8/t+W5jtTNpWef/5Q9zk639FNQ==", "dev": true, "optional": true }, @@ -43080,15 +43098,15 @@ } }, "unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", "dev": true }, "unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", "dev": true }, "unified": { @@ -43128,29 +43146,11 @@ "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true } } }, - "unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "dev": true, - "requires": { - "unique-slug": "^3.0.0" - } - }, - "unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, "unist-util-find-all-after": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz", @@ -43182,15 +43182,15 @@ "dev": true }, "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true }, "unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { "has-value": "^0.3.1", @@ -43200,7 +43200,7 @@ "has-value": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { "get-value": "^2.0.3", @@ -43211,7 +43211,7 @@ "isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "requires": { "isarray": "1.0.0" @@ -43222,13 +43222,7 @@ "has-values": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true } } @@ -43240,9 +43234,9 @@ "dev": true }, "update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", + "integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", "requires": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -43260,19 +43254,9 @@ "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true }, - "url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dev": true, - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -43282,7 +43266,7 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, "uuid": { @@ -43315,9 +43299,9 @@ }, "dependencies": { "source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true } } @@ -43396,9 +43380,9 @@ } }, "watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", + "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", "dev": true, "peer": true, "requires": { @@ -43422,49 +43406,49 @@ "dev": true }, "webpack": { - "version": "5.75.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", - "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", + "version": "5.68.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.68.0.tgz", + "integrity": "sha512-zUcqaUO0772UuuW2bzaES2Zjlm/y3kRBQDVFVCge+s2Y8mwuUTdperGaAv65/NtRL/1zanpSJOq/MD8u61vo6g==", "dev": true, "peer": true, "requires": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", + "@types/eslint-scope": "^3.7.0", + "@types/estree": "^0.0.50", "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/wasm-edit": "1.11.1", "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.7.1", + "acorn": "^8.4.1", "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", + "enhanced-resolve": "^5.8.3", "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", + "json-parse-better-errors": "^1.0.2", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", "schema-utils": "^3.1.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.4.0", + "watchpack": "^2.3.1", "webpack-sources": "^3.2.3" }, "dependencies": { "@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", "dev": true, "peer": true }, "acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", "dev": true, "peer": true }, @@ -43477,9 +43461,9 @@ "requires": {} }, "enhanced-resolve": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", - "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.0.tgz", + "integrity": "sha512-weDYmzbBygL7HzGGS26M3hGQx68vehdEg6VUmqSOaFzXExFqlnKuSvsEJCVGQHScS8CQMbrAqftT+AzzHNt/YA==", "dev": true, "peer": true, "requires": { @@ -43551,38 +43535,12 @@ "is-symbol": "^1.0.3" } }, - "which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", - "dev": true, - "requires": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" - } - }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, - "which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" - } - }, "wide-align": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", @@ -43601,7 +43559,7 @@ "wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", "dev": true }, "wrap-ansi": { @@ -43644,7 +43602,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write-file-atomic": { "version": "3.0.3", @@ -43761,9 +43719,9 @@ } }, "ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", + "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", "dev": true, "requires": {} }, @@ -43786,9 +43744,9 @@ "dev": true }, "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "yallist": { @@ -43804,37 +43762,40 @@ "dev": true }, "yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" }, "dependencies": { - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } }, "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true }, "yn": { diff --git a/package.json b/package.json index 06d21b6c19e9..a3c945de2124 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,6 @@ "nx": "^14.5.10", "postcss": "^8.3.6", "prettier": "^2.1.2", - "react-test-renderer": "^16.13.1", "stylelint": "^13.13.1", "stylelint-config-prettier": "^8.0.2", "stylelint-formatter-pretty": "^2.1.1", @@ -105,8 +104,8 @@ "@types/react-transition-group": "^4.4.4", "babel-jest": "^27.3.1", "dotenv": "^8.2.0", - "react": "^16.14.0", - "react-dom": "^16.14.0", + "react": "^17.0.2", + "react-dom": "^17.0.2", "typescript": "^4.6.3" }, "optionalDependencies": { diff --git a/packages/account/package.json b/packages/account/package.json index 8cef59607665..cdea25cf0d79 100644 --- a/packages/account/package.json +++ b/packages/account/package.json @@ -42,8 +42,8 @@ "onfido-sdk-ui": "8.1.1", "prop-types": "^15.7.2", "qrcode.react": "^1.0.0", - "react": "^16.14.0", - "react-dom": "^16.14.0", + "react": "^17.0.2", + "react-dom": "^17.0.2", "react-router": "^5.2.0", "react-router-dom": "^5.2.0", "react-i18next": "^11.11.0" diff --git a/packages/account/src/Components/account-limits/account-limits-extra-info.tsx b/packages/account/src/Components/account-limits/account-limits-extra-info.tsx index d76ec2b7a3dd..a6241670fd7a 100644 --- a/packages/account/src/Components/account-limits/account-limits-extra-info.tsx +++ b/packages/account/src/Components/account-limits/account-limits-extra-info.tsx @@ -24,7 +24,7 @@ const AccountLimitsExtraInfo = ({ message, ...props }: TAccountLimitsExtraInfo) icon='info' is_bubble_hover_enabled message={message} - zIndex={9999} + zIndex='9999' {...props} /> ); diff --git a/packages/account/src/Components/api-token/api-token-clipboard.tsx b/packages/account/src/Components/api-token/api-token-clipboard.tsx index 9ec446f286aa..051a143f3787 100644 --- a/packages/account/src/Components/api-token/api-token-clipboard.tsx +++ b/packages/account/src/Components/api-token/api-token-clipboard.tsx @@ -61,8 +61,8 @@ const ApiTokenClipboard = ({ const onMouseLeaveHandler = () => { if (!is_copied) setIsPopoverOpen(false); }; - /* two timeouts help to prevent popup window blinking. - without early hiding the popup we will see shortly the description message like during hovering. + /* two timeouts help to prevent popup window blinking. + without early hiding the popup we will see shortly the description message like during hovering. this bug appears when popup is handled outside like here */ const onClick = () => { @@ -117,7 +117,7 @@ const ApiTokenClipboard = ({ classNameBubble='dc-clipboard__popover' message={is_copied ? success_message : info_message} is_open={is_popover_open} - zIndex={'9999'} + zIndex='9999' > { icon='info' is_bubble_hover_enabled message={popover_message} - zIndex={9999} + zIndex='9999' /> ); }; diff --git a/packages/account/src/Components/personal-details/__tests__/personal-details.spec.js b/packages/account/src/Components/personal-details/__tests__/personal-details.spec.js index 0152485eb0be..61c315a81c58 100644 --- a/packages/account/src/Components/personal-details/__tests__/personal-details.spec.js +++ b/packages/account/src/Components/personal-details/__tests__/personal-details.spec.js @@ -704,7 +704,7 @@ describe('', () => { expect(screen.getByText(tax_residence_pop_over_text)).toBeInTheDocument(); - fireEvent.scroll(screen.getByRole('heading', { name: /account opening reason/i }), { + fireEvent.scroll(screen.getByTestId('dt_personal_details_container'), { target: { scrollY: 100 }, }); @@ -720,7 +720,7 @@ describe('', () => { expect(screen.getByText(tin_pop_over_text)).toBeInTheDocument(); expect(screen.getByRole('link', { name: 'here' })).toBeInTheDocument(); - fireEvent.scroll(screen.getByRole('heading', { name: /account opening reason/i }), { + fireEvent.scroll(screen.getByTestId('dt_personal_details_container'), { target: { scrollY: 100 }, }); diff --git a/packages/account/src/Components/personal-details/personal-details.jsx b/packages/account/src/Components/personal-details/personal-details.jsx index 8c8c9f3fad6b..24c90efead9d 100644 --- a/packages/account/src/Components/personal-details/personal-details.jsx +++ b/packages/account/src/Components/personal-details/personal-details.jsx @@ -181,7 +181,11 @@ const PersonalDetails = ({ } /> - + {is_appstore && (
diff --git a/packages/account/src/Components/sent-email-modal/sent-email-modal.tsx b/packages/account/src/Components/sent-email-modal/sent-email-modal.tsx index da0324606789..476a00f910d7 100644 --- a/packages/account/src/Components/sent-email-modal/sent-email-modal.tsx +++ b/packages/account/src/Components/sent-email-modal/sent-email-modal.tsx @@ -107,7 +107,7 @@ const SentEmailModal = ({ classNameBubble='help-centre__tooltip' alignment='top' message={localize('Live chat')} - zIndex={9999} + zIndex='9999' /> , ]} diff --git a/packages/api/package.json b/packages/api/package.json index dfa1299c0a62..798d39171691 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -5,7 +5,7 @@ "main": "src/index.ts", "dependencies": { "@deriv/shared": "^1.0.0", - "react": "^16.14.0" + "react": "^17.0.2" }, "devDependencies": { "@deriv/api-types": "^1.0.54", diff --git a/packages/appstore/package.json b/packages/appstore/package.json index c33deb27632c..9eb5b8d600d7 100644 --- a/packages/appstore/package.json +++ b/packages/appstore/package.json @@ -39,7 +39,7 @@ "mobx-react-lite": "^3.4.0", "object.fromentries": "^2.0.0", "prop-types": "^15.7.2", - "react": "^16.14.0", + "react": "^17.0.2", "react-router": "^5.2.0", "react-joyride": "^2.5.3", "react-router-dom": "^5.2.0" diff --git a/packages/bot-web-ui/package.json b/packages/bot-web-ui/package.json index dcf6dfb77b34..1e95a599552e 100644 --- a/packages/bot-web-ui/package.json +++ b/packages/bot-web-ui/package.json @@ -79,9 +79,9 @@ "mobx-react": "^7.5.1", "pako": "^1.0.11", "prop-types": "^15.7.2", - "react": "^16.14.0", - "react-content-loader": "^4.3.2", - "react-dom": "^16.14.0", + "react": "^17.0.2", + "react-content-loader": "^6.2.0", + "react-dom": "^17.0.2", "react-transition-group": "4.4.2" } } diff --git a/packages/bot-web-ui/src/constants/z-indexes.js b/packages/bot-web-ui/src/constants/z-indexes.js index dfc5b9f7e74d..cd08a11043e6 100644 --- a/packages/bot-web-ui/src/constants/z-indexes.js +++ b/packages/bot-web-ui/src/constants/z-indexes.js @@ -1,6 +1,6 @@ export const popover_zindex = Object.freeze({ QUICK_STRATEGY: 99999, - TOOLBAR: 5, + TOOLBAR: 100, TRANSACTION: 10, SUMMARY_TOOLTIPS: 5, RUN_PANEL: 1, diff --git a/packages/cashier/package.json b/packages/cashier/package.json index 5cfe3f1993ae..69ed51981062 100644 --- a/packages/cashier/package.json +++ b/packages/cashier/package.json @@ -51,11 +51,11 @@ "moment": "^2.29.2", "prop-types": "^15.7.2", "qrcode.react": "^1.0.0", - "react": "^16.14.0", - "react-content-loader": "^4.3.2", - "react-dom": "^16.14.0", + "react": "^17.0.2", + "react-content-loader": "^6.2.0", + "react-dom": "^17.0.2", "react-loadable": "^5.5.0", - "react-pose": "^4.0.10", + "framer-motion":"^6.5.1", "react-router": "^5.2.0", "react-router-dom": "^5.2.0" }, diff --git a/packages/cfd/package.json b/packages/cfd/package.json index 914b643b2c35..6c5ba4e3c9ba 100644 --- a/packages/cfd/package.json +++ b/packages/cfd/package.json @@ -98,8 +98,8 @@ "null-loader": "^4.0.1", "object.fromentries": "^2.0.0", "prop-types": "^15.7.2", - "react": "^16.14.0", - "react-dom": "^16.14.0", + "react": "^17.0.2", + "react-dom": "^17.0.2", "react-qrcode": "^0.3.5", "react-router": "^5.2.0", "react-router-dom": "^5.2.0", diff --git a/packages/cfd/src/Components/cfd-account-card.tsx b/packages/cfd/src/Components/cfd-account-card.tsx index dc7260b9f945..7df70e56fb49 100644 --- a/packages/cfd/src/Components/cfd-account-card.tsx +++ b/packages/cfd/src/Components/cfd-account-card.tsx @@ -565,17 +565,16 @@ const CFDAccountCardComponent = ({ show_currency /> - {checkMultipleSvgAcc()?.length > 1 && - acc.landing_company_short === 'svg' && ( - - {getServerName(acc)} - - )} + {checkMultipleSvgAcc()?.length > 1 && acc.landing_company_short === 'svg' && ( + + {getServerName(acc)} + + )}
)}
diff --git a/packages/components/package.json b/packages/components/package.json index f79337faf84e..459a9895a14b 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -56,7 +56,6 @@ "eslint-plugin-react-hooks": "^4.2.0", "lint-staged": "^10.4.0", "node-sass": "^7.0.1", - "react": "^16.14.0", "sass-loader": "^12.6.0", "sass-resources-loader": "^2.1.1", "style-loader": "^1.2.1", @@ -69,7 +68,6 @@ }, "dependencies": { "@contentpass/zxcvbn": "^4.4.3", - "@deriv/deriv-onboarding": "^1.0.0", "@deriv/shared": "^1.0.0", "@deriv/translations": "^1.0.0", "classnames": "^2.2.6", @@ -77,16 +75,16 @@ "glob": "^7.1.5", "lodash.throttle": "^4.1.1", "prop-types": "^15.7.2", - "react-content-loader": "^4.3.2", + "react-content-loader": "^6.2.0", "react-div-100vh": "^0.3.8", - "react-dom": "^16.14.0", - "react-drag-drawer": "^3.3.4", + "react": "^17.0.2", + "react-dom": "^17.0.2", "react-dropzone": "11.0.1", - "react-pose": "^4.0.10", + "framer-motion":"^6.5.1", "react-router-dom": "^5.2.0", - "react-swipeable": "^5.5.1", - "react-tiny-popover": "^5.1.0", + "react-swipeable": "^6.2.1", + "react-tiny-popover": "^7.0.1", "react-transition-group": "4.4.2", - "react-virtualized": "^9.22.2" + "@enykeev/react-virtualized": "^9.22.4-mirror.1" } } diff --git a/packages/components/src/components/autosizer/AutoSizer.d.ts b/packages/components/src/components/autosizer/AutoSizer.d.ts new file mode 100644 index 000000000000..5aa4c3f63606 --- /dev/null +++ b/packages/components/src/components/autosizer/AutoSizer.d.ts @@ -0,0 +1,14 @@ +type TSize = { + width: number; + height: number; +}; + +type TProps = { + children?: ((props: TSize) => React.ReactNode) | React.ReactNode; +}; + +declare module '@enykeev/react-virtualized/dist/es/AutoSizer' { + export const AutoSizer = (props: TProps): JSX.Element => JSX.Element; + + export default AutoSizer; +} diff --git a/packages/components/src/components/autosizer/index.ts b/packages/components/src/components/autosizer/index.ts index ad007d0023c3..98bcff509f50 100644 --- a/packages/components/src/components/autosizer/index.ts +++ b/packages/components/src/components/autosizer/index.ts @@ -1,5 +1,7 @@ -// Imported as below to save on bundle size due to faulty tree-shaking. -import AutoSizer from 'react-virtualized/dist/es/AutoSizer'; +/* eslint @typescript-eslint/triple-slash-reference: "off" */ +/// + +import AutoSizer from '@enykeev/react-virtualized/dist/es/AutoSizer'; import './autosizer.scss'; export default AutoSizer; diff --git a/packages/components/src/components/carousel/carousel.tsx b/packages/components/src/components/carousel/carousel.tsx index a41e40c15f98..e63aa3a9d22d 100644 --- a/packages/components/src/components/carousel/carousel.tsx +++ b/packages/components/src/components/carousel/carousel.tsx @@ -1,6 +1,6 @@ import React from 'react'; import classNames from 'classnames'; -import { Swipeable } from 'react-swipeable'; +import { useSwipeable } from 'react-swipeable'; import Card from './carousel-card'; import Nav from './carousel-nav'; import Icon from '../icon'; @@ -79,8 +79,13 @@ const Carousel = ({ if (onItemSelect) onItemSelect(active_index); }, [active_index, onItemSelect]); + const swipe_handlers = useSwipeable({ + onSwipedLeft: handleNextClick, + onSwipedRight: handlePrevClick, + }); + return ( - +
{sliced_list_length > 1 && (
- +
); }; diff --git a/packages/components/src/components/data-list/data-list.jsx b/packages/components/src/components/data-list/data-list.jsx index 627c62508a6a..414b8c4d1a09 100644 --- a/packages/components/src/components/data-list/data-list.jsx +++ b/packages/components/src/components/data-list/data-list.jsx @@ -2,9 +2,9 @@ import classNames from 'classnames'; import PropTypes from 'prop-types'; import React from 'react'; import { TransitionGroup } from 'react-transition-group'; -import { CellMeasurer, CellMeasurerCache } from 'react-virtualized/dist/es/CellMeasurer'; -import { AutoSizer } from 'react-virtualized/dist/es/AutoSizer'; -import { List } from 'react-virtualized/dist/es/List'; +import { CellMeasurer, CellMeasurerCache } from '@enykeev/react-virtualized/dist/es/CellMeasurer'; +import { AutoSizer } from '@enykeev/react-virtualized/dist/es/AutoSizer'; +import { List } from '@enykeev/react-virtualized/dist/es/List'; import { isMobile, isDesktop } from '@deriv/shared'; import DataListCell from './data-list-cell.jsx'; import DataListRow from './data-list-row.jsx'; diff --git a/packages/components/src/components/data-table/data-table.jsx b/packages/components/src/components/data-table/data-table.jsx index 754aaa26b385..a5db9263eae3 100644 --- a/packages/components/src/components/data-table/data-table.jsx +++ b/packages/components/src/components/data-table/data-table.jsx @@ -1,9 +1,9 @@ import classNames from 'classnames'; -import { List } from 'react-virtualized/dist/es/List'; +import { List } from '@enykeev/react-virtualized/dist/es/List'; import PropTypes from 'prop-types'; import React from 'react'; -import { AutoSizer } from 'react-virtualized/dist/es/AutoSizer'; -import { CellMeasurer, CellMeasurerCache } from 'react-virtualized/dist/es/CellMeasurer'; +import { AutoSizer } from '@enykeev/react-virtualized/dist/es/AutoSizer'; +import { CellMeasurer, CellMeasurerCache } from '@enykeev/react-virtualized/dist/es/CellMeasurer'; import TableRow from './table-row.jsx'; import ThemedScrollbars from '../themed-scrollbars'; diff --git a/packages/components/src/components/fade-wrapper/fade-wrapper.tsx b/packages/components/src/components/fade-wrapper/fade-wrapper.tsx index dc2e316625df..5b64bd3d9047 100644 --- a/packages/components/src/components/fade-wrapper/fade-wrapper.tsx +++ b/packages/components/src/components/fade-wrapper/fade-wrapper.tsx @@ -1,5 +1,5 @@ import React, { ReactNode } from 'react'; -import posed, { PoseGroup } from 'react-pose'; +import { motion } from 'framer-motion'; type TFadeWrapperProps = { children: ReactNode; @@ -9,81 +9,93 @@ type TFadeWrapperProps = { className?: string; }; -const FadeInFromTopDiv = posed.div({ - enter: { - y: 0, - opacity: 1, - delay: 300, - transition: { - default: { duration: 250 }, - }, - }, - exit: { +const FadeInFromTopDiv = { + initial: { y: -50, opacity: 0, - transition: { duration: 250 }, }, -}); - -const FadeInFromBottomDiv = posed.div({ - enter: { + animate: { y: 0, opacity: 1, - delay: 300, - transition: { - default: { duration: 250 }, - }, }, - exit: { + + transition: { duration: 250, delay: 0.3 }, +}; + +const FadeInFromBottomDiv = { + initial: { y: 50, opacity: 0, - transition: { duration: 250 }, }, -}); - -const FadeInOnlyDiv = posed.div({ - enter: { + animate: { + y: 0, opacity: 1, - transition: { duration: 300 }, }, - exit: { + + transition: { duration: 0.25, delay: 0.3 }, +}; + +const FadeInOnlyDiv = { + initial: { opacity: 0, - transition: { duration: 300 }, }, -}); + animate: { + opacity: 1, + }, + + transition: { duration: 0.3 }, +}; // `flipMove={false}` is necessary to fix react-pose bug: https://github.com/Popmotion/popmotion/issues/805 const FadeWrapper = ({ children, className, is_visible, keyname, type }: TFadeWrapperProps) => { if (type === 'top') { return ( - + <> {is_visible && ( - + {children} - + )} - + ); } if (type === 'bottom') { return ( - + <> {is_visible && ( - + {children} - + )} - + ); } return ( - + <> {is_visible && ( - + {children} - + )} - + ); }; diff --git a/packages/components/src/components/horizontal-swipe/horizontal-swipe.tsx b/packages/components/src/components/horizontal-swipe/horizontal-swipe.tsx index 763174ded160..6912c3379370 100644 --- a/packages/components/src/components/horizontal-swipe/horizontal-swipe.tsx +++ b/packages/components/src/components/horizontal-swipe/horizontal-swipe.tsx @@ -1,5 +1,5 @@ import React, { ReactNode } from 'react'; -import { Swipeable } from 'react-swipeable'; +import { useSwipeable } from 'react-swipeable'; type THorizontalSwipeProps = { is_left_swipe: boolean; @@ -72,8 +72,13 @@ const HorizontalSwipe = ({ }), }; + const swipe_handlers = useSwipeable({ + onSwipedLeft: onSwipeLeft, + onSwipedRight: onSwipeRight, + }); + return ( - +
{visible_component_height_ref && (
)}
- +
); }; diff --git a/packages/components/src/components/infinite-data-list/infinite-data-list.jsx b/packages/components/src/components/infinite-data-list/infinite-data-list.jsx index df485b0ce53b..b590832ac850 100644 --- a/packages/components/src/components/infinite-data-list/infinite-data-list.jsx +++ b/packages/components/src/components/infinite-data-list/infinite-data-list.jsx @@ -1,6 +1,6 @@ import React from 'react'; import PropTypes from 'prop-types'; -import InfiniteLoader from 'react-virtualized/dist/es/InfiniteLoader'; +import InfiniteLoader from '@enykeev/react-virtualized/dist/es/InfiniteLoader'; import DataList from '../data-list/data-list.jsx'; const InfiniteDataList = ({ diff --git a/packages/components/src/components/mobile-drawer/mobile-drawer.jsx b/packages/components/src/components/mobile-drawer/mobile-drawer.jsx index 32af5d986516..cf79286e4b58 100644 --- a/packages/components/src/components/mobile-drawer/mobile-drawer.jsx +++ b/packages/components/src/components/mobile-drawer/mobile-drawer.jsx @@ -1,7 +1,6 @@ import classNames from 'classnames'; import PropTypes from 'prop-types'; import React from 'react'; -import Drawer from 'react-drag-drawer'; import Body from './mobile-drawer-body.jsx'; import Footer from './mobile-drawer-footer.jsx'; import SubHeader from './mobile-drawer-subheader.jsx'; @@ -18,57 +17,65 @@ const MobileDrawer = ({ width, alignment, is_open, + transitionExit, title, toggle, children, livechat: LiveChat, -}) => ( - -
-
-
- -
-
- {title && ( - { + if (is_open) + return ( + <> +
{ + e.stopPropagation(); + toggle(); + }} + /> +
+
+
- {title} - - )} - {LiveChat} +
+ +
+
+ {title && ( + + {title} + + )} + {LiveChat} +
+
+ {children} +
-
- {children} -
- -); + + ); + return <>; +}; MobileDrawer.defaultProps = { alignment: 'left', diff --git a/packages/components/src/components/mobile-drawer/mobile-drawer.scss b/packages/components/src/components/mobile-drawer/mobile-drawer.scss index 6352e948ae4d..fed69fe0d33c 100644 --- a/packages/components/src/components/mobile-drawer/mobile-drawer.scss +++ b/packages/components/src/components/mobile-drawer/mobile-drawer.scss @@ -1,10 +1,36 @@ /* @define dc-mobile-drawer; weak */ +@keyframes openDrawer { + 0% { + transform: translateX(-100%); + } + 60%, + 100% { + transform: translateX(0); + } + 80% { + transform: translateX(-5%); + } +} + +@keyframes closeDrawer { + 0% { + transform: translateX(0); + } + 100% { + transform: translateX(-100%); + } +} + .dc-mobile-drawer { position: absolute; top: 0; left: 0; will-change: transform; - transform: translate3d(0, 0, 0); + transform: translateX(-100%); + animation-name: openDrawer; + animation-duration: 0.4s; + animation-fill-mode: forwards; + z-index: 10000; &__container { display: flex; @@ -54,6 +80,7 @@ display: flex; width: 100%; justify-content: space-between; + transition: all 0.2s; } } &__subheader { @@ -189,8 +216,11 @@ border-top: 1px solid var(--general-section-2); } } - &__wrapper { + &__overlay { z-index: 9999 !important; background-color: var(--overlay-outside-dialog) !important; } + &.exit { + animation: closeDrawer 0.3s; + } } diff --git a/packages/components/src/components/page-overlay/page-overlay.scss b/packages/components/src/components/page-overlay/page-overlay.scss index 6ebf0dc68efd..26e9abbf1fa9 100644 --- a/packages/components/src/components/page-overlay/page-overlay.scss +++ b/packages/components/src/components/page-overlay/page-overlay.scss @@ -22,6 +22,7 @@ transform: translateY(0); opacity: 1; pointer-events: auto; + z-index: 9; } &__header { position: sticky; diff --git a/packages/components/src/components/popover/popover.tsx b/packages/components/src/components/popover/popover.tsx index dfd56350e749..6f9eebb89ba2 100644 --- a/packages/components/src/components/popover/popover.tsx +++ b/packages/components/src/components/popover/popover.tsx @@ -1,6 +1,6 @@ import classNames from 'classnames'; import React, { RefObject } from 'react'; -import TinyPopover, { ArrowContainer } from 'react-tiny-popover'; +import { ArrowContainer, Popover as TinyPopover } from 'react-tiny-popover'; import Icon from '../icon'; import Text from '../text'; import { useHover, useHoverCallback } from '../../hooks/use-hover'; @@ -32,7 +32,7 @@ const Popover = ({ window_border, zIndex = '1', data_testid, -}: React.PropsWithChildren>) => { +}: React.PropsWithChildren) => { const ref = React.useRef(); const [popover_ref, setPopoverRef] = React.useState(undefined); @@ -74,20 +74,18 @@ const Popover = ({ ? is_open ?? ((is_hovered && message) || (is_bubble_hover_enabled && is_bubble_hovered)) : is_open ?? (is_hovered && message)) as boolean } - position={alignment} - transitionDuration={0.25} + positions={[alignment]} padding={margin + 8} containerClassName={classNames({ 'react-tiny-popover-container--disabled-pointer-event': should_disable_pointer_events, 'react-tiny-popover-cursor-option': should_show_cursor, })} - windowBorderPadding={window_border} {...(relative_render ? { - contentDestination: popover_ref, - contentLocation: ({ targetRect, popoverRect, nudgedLeft }) => { + parentElement: popover_ref, + contentLocation: ({ childRect, popoverRect, nudgedLeft }) => { const screen_width = document.body.clientWidth; - const total_width = targetRect.right + (popoverRect.width - targetRect.width / 2); + const total_width = childRect.right + (popoverRect.width - childRect.width / 2); let top_offset = 0; let left_offset = 0; @@ -100,17 +98,17 @@ const Popover = ({ : popoverRect.width) + margin ) * -1; top_offset = - targetRect.height > popoverRect.height - ? (targetRect.height - popoverRect.height) / 2 - : ((popoverRect.height - targetRect.height) / 2) * -1; + childRect.height > popoverRect.height + ? (childRect.height - popoverRect.height) / 2 + : ((popoverRect.height - childRect.height) / 2) * -1; break; } case 'right': { left_offset = popoverRect.width + margin; top_offset = - targetRect.height > popoverRect.height - ? (targetRect.height - popoverRect.height) / 2 - : ((popoverRect.height - targetRect.height) / 2) * -1; + childRect.height > popoverRect.height + ? (childRect.height - popoverRect.height) / 2 + : ((popoverRect.height - childRect.height) / 2) * -1; break; } case 'top': { @@ -126,7 +124,7 @@ const Popover = ({ total_width > screen_width ? Math.abs(total_width - screen_width) * -1 : 0; - top_offset = targetRect.height + margin; + top_offset = childRect.height + margin; break; } default: @@ -139,14 +137,31 @@ const Popover = ({ }, } : { containerStyle: { zIndex } })} - content={({ position, targetRect, popoverRect }) => { + content={({ position, childRect, popoverRect }) => { return (
{ @@ -34,19 +34,24 @@ const SwipeableWrapper = ({ children, className, onChange, ...props }) => { return
{child}
; }); + const swipe_handlers = useSwipeable({ + onSwipedLeft: swipedLeft, + onSwipedRight: swipedRight, + ...props, + }); + return (
- {childrenWithWrapperDiv} - +
{!props.is_disabled && (
} + getRowAction={props.getRowAction} + getRowSize={() => 75} + keyMapper={props.keyMapper} + onScroll={props.onScroll} + row_gap={20} + rowRenderer={props.rowRenderer} + setListRef={props.setListRef} onRowsRendered={props.onRowsRendered} /> -) +); ``` diff --git a/packages/components/tsconfig.json b/packages/components/tsconfig.json index 4dfb5f5e78e9..42a6251650a2 100644 --- a/packages/components/tsconfig.json +++ b/packages/components/tsconfig.json @@ -7,5 +7,5 @@ "@deriv/*": ["../*/src"] } }, - "include": ["src", "./@types/react-div-100vh/react-div-100vh-config.d.ts", "../../utils.d.ts"] + "include": ["src", "./@types/react-div-100vh/react-div-100vh-config.d.ts, ./@types/@enykeev/react-virtualized/dist/es/AutoSizer.d.ts", "../../utils.d.ts"] } diff --git a/packages/components/webpack.config.js b/packages/components/webpack.config.js index beafd17e05f1..7f2b62248ecd 100644 --- a/packages/components/webpack.config.js +++ b/packages/components/webpack.config.js @@ -75,8 +75,7 @@ module.exports = function () { formik: 'formik', classnames: 'classnames', 'react-div-100vh': 'react-div-100vh', - 'react-drag-drawer': 'react-drag-drawer', - 'react-pose': 'react-pose', + 'framer-motion': 'framer-motion', 'babel-polyfill': 'babel-polyfill', 'prop-types': 'prop-types', 'react-transition-group': 'react-transition-group', @@ -89,7 +88,6 @@ module.exports = function () { 'react-router-dom': 'react-router-dom', 'react-swipeable': 'react-swipeable', 'react-tiny-popover': 'react-tiny-popover', - 'react-window': 'react-window', }, /^@deriv\/shared\/.+$/, /^@deriv\/translations\/.+$/, diff --git a/packages/core/package.json b/packages/core/package.json index f30d1448f5dc..83763236a6c6 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -122,15 +122,15 @@ "object.fromentries": "^2.0.0", "promise-polyfill": "^8.1.3", "prop-types": "^15.7.2", - "react": "^16.14.0", - "react-content-loader": "^4.3.2", - "react-dom": "^16.14.0", + "react": "^17.0.2", + "react-content-loader": "^6.2.0", + "react-dom": "^17.0.2", "react-i18next": "^11.11.0", "react-loadable": "^5.5.0", - "react-pose": "^4.0.10", + "framer-motion":"^6.5.1", "react-router": "^5.2.0", "react-router-dom": "^5.2.0", - "react-tiny-popover": "^5.1.0", + "react-tiny-popover": "^7.0.1", "react-transition-group": "4.4.2", "react-window": "^1.8.5", "web-push-notifications": "^3.33.0" diff --git a/packages/core/src/App/Components/Layout/Header/toggle-menu-drawer.jsx b/packages/core/src/App/Components/Layout/Header/toggle-menu-drawer.jsx index ae8cdbd0accb..dd9c98f4743d 100644 --- a/packages/core/src/App/Components/Layout/Header/toggle-menu-drawer.jsx +++ b/packages/core/src/App/Components/Layout/Header/toggle-menu-drawer.jsx @@ -129,11 +129,13 @@ const ToggleMenuDrawer = React.forwardRef( ) => { const liveChat = useLiveChat(); const [is_open, setIsOpen] = React.useState(false); + const [transitionExit, setTransitionExit] = React.useState(false); const [primary_routes_config, setPrimaryRoutesConfig] = React.useState([]); const [secondary_routes_config, setSecondaryRoutesConfig] = React.useState([]); const [is_submenu_expanded, expandSubMenu] = React.useState(false); const { is_appstore, is_pre_appstore, setIsPreAppStore } = React.useContext(PlatformContext); + const timeout = React.useRef(); React.useEffect(() => { const processRoutes = () => { @@ -167,10 +169,19 @@ const ToggleMenuDrawer = React.forwardRef( if (account_status || should_allow_authentication) { processRoutes(); } + + return () => clearTimeout(timeout); }, [is_appstore, is_pre_appstore, account_status, should_allow_authentication]); const toggleDrawer = React.useCallback(() => { - setIsOpen(!is_open); + if (!is_open) setIsOpen(!is_open); + else { + setTransitionExit(true); + timeout.current = setTimeout(() => { + setIsOpen(false); + setTransitionExit(false); + }, 400); + } expandSubMenu(false); }, [expandSubMenu, is_open]); @@ -366,6 +377,7 @@ const ToggleMenuDrawer = React.forwardRef( alignment={is_appstore ? 'right' : 'left'} icon_class='header__menu-toggle' is_open={is_open} + transitionExit={transitionExit} toggle={toggleDrawer} id='dt_mobile_drawer' enableApp={enableApp} diff --git a/packages/core/src/App/Components/Routes/__tests__/helpers.spec.js b/packages/core/src/App/Components/Routes/__tests__/helpers.spec.js index c763cb4a94bd..e7d3ebe221a9 100644 --- a/packages/core/src/App/Components/Routes/__tests__/helpers.spec.js +++ b/packages/core/src/App/Components/Routes/__tests__/helpers.spec.js @@ -45,7 +45,9 @@ describe('Helpers', () => { describe('getPath', () => { it('should return param values in params as a part of path', () => { - expect(Helpers.getPath('/contract/:contract_id', { contract_id: 37511105068 })).toBe('/contract/37511105068'); + expect(Helpers.getPath('/contract/:contract_id', { contract_id: 37511105068 })).toBe( + '/contract/37511105068' + ); expect( Helpers.getPath('/something_made_up/:something_made_up_param1/:something_made_up_param2', { something_made_up_param1: '789', diff --git a/packages/core/src/sass/app/_common/layout/app-layouts.scss b/packages/core/src/sass/app/_common/layout/app-layouts.scss index 1307b6a07773..a0fc98b58073 100644 --- a/packages/core/src/sass/app/_common/layout/app-layouts.scss +++ b/packages/core/src/sass/app/_common/layout/app-layouts.scss @@ -1,10 +1,19 @@ +@keyframes closeDrawerWrapper { + 0% { + opacity: 1; + } + 100% { + opacity: 0; + } +} + @include mobile { /** disabling pull to refresh on iOS / Android browsers */ /* postcss-bem-linter: ignore */ body, .deriv-app, .modal-root, - .dc-mobile-drawer__wrapper { + .dc-mobile-drawer__overlay { /* Break the flow */ position: absolute !important; top: 0 !important; @@ -24,6 +33,15 @@ position: fixed !important; } } + .dc-mobile-drawer__overlay { + position: fixed !important; + &.exit { + animation-name: closeDrawerWrapper; + animation-delay: 1s; + animation-duration: 0.1s; + animation-fill-mode: forwards; + } + } .body { /* Sending body at the bottom of the stack */ z-index: 1; @@ -120,6 +138,7 @@ overflow: hidden; backface-visibility: hidden; background-color: var(--general-main-1); + z-index: 2; &--is-disabled:after { opacity: 1; diff --git a/packages/hooks/package.json b/packages/hooks/package.json index c80fde6b78d3..c2fffafd5140 100644 --- a/packages/hooks/package.json +++ b/packages/hooks/package.json @@ -6,7 +6,7 @@ "dependencies": { "@deriv/api": "^1.0.0", "@deriv/stores": "^1.0.0", - "react": "^16.14.0" + "react": "^17.0.2" }, "devDependencies": { "typescript": "^4.6.3", diff --git a/packages/indicators/package.json b/packages/indicators/package.json index ec09a2af52cc..3114d179c7d6 100644 --- a/packages/indicators/package.json +++ b/packages/indicators/package.json @@ -44,7 +44,7 @@ }, "dependencies": { "@deriv/shared": "^1.0.0", - "react": "^16.14.0", - "react-dom": "^16.14.0" + "react": "^17.0.2", + "react-dom": "^17.0.2" } } diff --git a/packages/p2p/package.json b/packages/p2p/package.json index 5511d3f23bdb..8ee8fcbbad50 100644 --- a/packages/p2p/package.json +++ b/packages/p2p/package.json @@ -41,9 +41,9 @@ "mobx": "^6.6.1", "mobx-react-lite": "^3.4.0", "prop-types": "^15.7.2", - "react": "^16.14.0", - "react-content-loader": "^4.3.2", - "react-dom": "^16.14.0", + "react": "^17.0.2", + "react-content-loader": "^6.2.0", + "react-dom": "^17.0.2", "react-i18next": "^11.11.0", "react-simple-star-rating": "4.0.4", "react-svg-loader": "^3.0.3", diff --git a/packages/p2p/scripts/__tests__/extract-string.spec.js b/packages/p2p/scripts/__tests__/extract-string.spec.js index ab001bca5a9d..4e27c66f21a8 100644 --- a/packages/p2p/scripts/__tests__/extract-string.spec.js +++ b/packages/p2p/scripts/__tests__/extract-string.spec.js @@ -112,7 +112,6 @@ describe('Integration checks', () => { } } - const error_message = `Invalid string format passed to localize/:\n\n\t${errors.join('\n\t')}\n\n\t`; /* eslint-disable-next-line no-unused-expressions */ expect(Object.keys(errors)).toHaveLength(0); }); diff --git a/packages/reports/package.json b/packages/reports/package.json index 40b6288184ec..6734ffe7e131 100644 --- a/packages/reports/package.json +++ b/packages/reports/package.json @@ -103,12 +103,12 @@ "object.fromentries": "^2.0.0", "promise-polyfill": "^8.1.3", "prop-types": "^15.7.2", - "react": "^16.14.0", - "react-content-loader": "^4.3.2", - "react-dom": "^16.14.0", + "react": "^17.0.2", + "react-content-loader": "^6.2.0", + "react-dom": "^17.0.2", "react-i18next": "^11.11.0", "react-loadable": "^5.5.0", - "react-pose": "^4.0.10", + "framer-motion":"^6.5.1", "react-router": "^5.2.0", "react-router-dom": "^5.2.0", "react-transition-group": "4.4.2", diff --git a/packages/reports/src/Components/Routes/__tests__/helpers.spec.js b/packages/reports/src/Components/Routes/__tests__/helpers.spec.js index 19c34ab45533..228089ca5952 100644 --- a/packages/reports/src/Components/Routes/__tests__/helpers.spec.js +++ b/packages/reports/src/Components/Routes/__tests__/helpers.spec.js @@ -14,16 +14,20 @@ describe('Helpers', () => { }); it('should return route_info of parent route when path is in routes_config child level and is nested', () => { const reports_routes_length = getRoutesConfig().find(r => r.path === routes.reports).routes.length; - expect(Object.keys(Helpers.findRouteByPath(routes.profit, getRoutesConfig()))).toEqual(expect.arrayContaining([ - 'path', - 'component', - 'is_authenticated', - 'routes', - 'icon_component', - 'getTitle' - ])); + expect(Object.keys(Helpers.findRouteByPath(routes.profit, getRoutesConfig()))).toEqual( + expect.arrayContaining([ + 'path', + 'component', + 'is_authenticated', + 'routes', + 'icon_component', + 'getTitle', + ]) + ); expect(Helpers.findRouteByPath(routes.profit, getRoutesConfig()).routes).toBeInstanceOf(Array); - expect(Helpers.findRouteByPath(routes.profit, getRoutesConfig()).routes).toHaveLength(reports_routes_length); + expect(Helpers.findRouteByPath(routes.profit, getRoutesConfig()).routes).toHaveLength( + reports_routes_length + ); expect(Helpers.findRouteByPath(routes.profit, getRoutesConfig()).is_authenticated).toBe(true); expect(Helpers.findRouteByPath(routes.profit, getRoutesConfig()).path).toBe(routes.reports); }); @@ -46,7 +50,9 @@ describe('Helpers', () => { describe('getPath', () => { it('should return param values in params as a part of path', () => { - expect(Helpers.getPath('/contract/:contract_id', { contract_id: 37511105068 })).toBe('/contract/37511105068'); + expect(Helpers.getPath('/contract/:contract_id', { contract_id: 37511105068 })).toBe( + '/contract/37511105068' + ); expect( Helpers.getPath('/something_made_up/:something_made_up_param1/:something_made_up_param2', { something_made_up_param1: '789', diff --git a/packages/shared/package.json b/packages/shared/package.json index ac98c27b4475..3e4231dce720 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -51,7 +51,7 @@ "mobx": "^6.6.1", "moment": "^2.29.2", "object.fromentries": "^2.0.0", - "react": "^16.14.0", + "react": "^17.0.2", "react-loadable": "^5.5.0" } } diff --git a/packages/shared/src/utils/currency/__tests__/currency.spec.ts b/packages/shared/src/utils/currency/__tests__/currency.spec.ts index 81e08a43f019..8ca2e29f44ff 100644 --- a/packages/shared/src/utils/currency/__tests__/currency.spec.ts +++ b/packages/shared/src/utils/currency/__tests__/currency.spec.ts @@ -21,11 +21,19 @@ describe('CurrencyUtils', () => { expect(CurrencyUtils.formatMoney('GBP', '123.55')).toBe(`${CurrencyUtils.formatCurrency('GBP')}123.55`); expect(CurrencyUtils.formatMoney('EUR', '123.55')).toBe(`${CurrencyUtils.formatCurrency('EUR')}123.55`); expect(CurrencyUtils.formatMoney('AUD', '123.55')).toBe(`${CurrencyUtils.formatCurrency('AUD')}123.55`); - expect(CurrencyUtils.formatMoney('BTC', '0.005432110')).toBe(`${CurrencyUtils.formatCurrency('BTC')}0.00543211`); - expect(CurrencyUtils.formatMoney('BTC', '0.005432116')).toBe(`${CurrencyUtils.formatCurrency('BTC')}0.00543212`); - expect(CurrencyUtils.formatMoney('BTC', '0.00000001')).toBe(`${CurrencyUtils.formatCurrency('BTC')}0.00000001`); + expect(CurrencyUtils.formatMoney('BTC', '0.005432110')).toBe( + `${CurrencyUtils.formatCurrency('BTC')}0.00543211` + ); + expect(CurrencyUtils.formatMoney('BTC', '0.005432116')).toBe( + `${CurrencyUtils.formatCurrency('BTC')}0.00543212` + ); + expect(CurrencyUtils.formatMoney('BTC', '0.00000001')).toBe( + `${CurrencyUtils.formatCurrency('BTC')}0.00000001` + ); // don't remove trailing zeroes for now - expect(CurrencyUtils.formatMoney('BTC', '0.00010000')).toBe(`${CurrencyUtils.formatCurrency('BTC')}0.00010000`); + expect(CurrencyUtils.formatMoney('BTC', '0.00010000')).toBe( + `${CurrencyUtils.formatCurrency('BTC')}0.00010000` + ); }); it('works with negative values', () => { diff --git a/packages/shared/src/utils/object/__tests__/object.spec.ts b/packages/shared/src/utils/object/__tests__/object.spec.ts index 736889d60802..bdc740f47b94 100644 --- a/packages/shared/src/utils/object/__tests__/object.spec.ts +++ b/packages/shared/src/utils/object/__tests__/object.spec.ts @@ -32,21 +32,28 @@ describe('Utility', () => { }; it('returns correct values with correct type', () => { - expect(typeof Utility.getPropertyValue(obj, 'str')).toBe('string').and.toBe('abc'); + expect(typeof Utility.getPropertyValue(obj, 'str')) + .toBe('string') + .and.toBe('abc'); expect(Utility.getPropertyValue(obj, 'num')).toBeInstanceOf(Number).and.toBe(123); - expect(typeof Utility.getPropertyValue(obj, 'empty')).toBe('string').and.toBe(''); + expect(typeof Utility.getPropertyValue(obj, 'empty')) + .toBe('string') + .and.toBe(''); expect(Utility.getPropertyValue(obj, 'nul')).toBeNull().and.toBe(null); expect(Utility.getPropertyValue(obj, 'undef')).toBeUndefined().and.toBeUndefined(); expect(Utility.getPropertyValue(obj, 'promise')).toBeInstanceOf(Promise); }); it('handles arrays correctly', () => { - expect(Array.isArray(Utility.getPropertyValue(obj, 'array'))).toBe(true).and.toEqual(obj.array); + expect(Array.isArray(Utility.getPropertyValue(obj, 'array'))) + .toBe(true) + .and.toEqual(obj.array); }); it('handles nested objects correctly', () => { expect(Utility.getPropertyValue(obj, 'nested')).toBeInstanceOf(Object).and.toEqual(obj.nested); - expect(typeof Utility.getPropertyValue(obj, ['nested', 'level_2', 'level_3'])).toBe('string') + expect(typeof Utility.getPropertyValue(obj, ['nested', 'level_2', 'level_3'])) + .toBe('string') .and.toEqual(obj.nested.level_2.level_3); }); diff --git a/packages/shared/src/utils/url/__tests__/url.js b/packages/shared/src/utils/url/__tests__/url.js index 188ba17c25d4..edac76d1dd53 100644 --- a/packages/shared/src/utils/url/__tests__/url.js +++ b/packages/shared/src/utils/url/__tests__/url.js @@ -56,7 +56,9 @@ describe('Url', () => { expect(urlFor('`~!@$%^&*=+[}{]\\"\';:?><,|')).toBe(home_url); }); it('handles all valid characters', () => { - expect(urlFor('metatrader/comparison-4_vs_5')).toBe(`${website_url}metatrader/comparison-4_vs_5.html`); + expect(urlFor('metatrader/comparison-4_vs_5')).toBe( + `${website_url}metatrader/comparison-4_vs_5.html` + ); }); }); @@ -68,7 +70,9 @@ describe('Url', () => { describe('getPath', () => { it('should return param values in params as a part of path', () => { - expect(getPath('/contract/:contract_id', { contract_id: 37511105068 })).toBe('/contract/37511105068'); + expect(getPath('/contract/:contract_id', { contract_id: 37511105068 })).toBe( + '/contract/37511105068' + ); expect( getPath('/something_made_up/:something_made_up_param1/:something_made_up_param2', { something_made_up_param1: '789', diff --git a/packages/stores/package.json b/packages/stores/package.json index cdcceeef167c..7a7430fe08db 100644 --- a/packages/stores/package.json +++ b/packages/stores/package.json @@ -4,7 +4,7 @@ "version": "1.0.0", "main": "src/index.ts", "dependencies": { - "react": "^16.14.0", + "react": "^17.0.2", "mobx": "^6.6.1", "mobx-react-lite": "^3.4.0", "mobx-persist-store": "1.1.2" diff --git a/packages/trader/build/constants.js b/packages/trader/build/constants.js index e6f367a70c86..648ce89896d2 100644 --- a/packages/trader/build/constants.js +++ b/packages/trader/build/constants.js @@ -1,6 +1,5 @@ const CircularDependencyPlugin = require('circular-dependency-plugin'); const { CleanWebpackPlugin } = require('clean-webpack-plugin'); -const CopyPlugin = require('copy-webpack-plugin'); // const HtmlWebPackPlugin = require('html-webpack-plugin'); // const HtmlWebpackTagsPlugin = require('html-webpack-tags-plugin'); const IgnorePlugin = require('webpack').IgnorePlugin; @@ -14,7 +13,6 @@ const { WebpackManifestPlugin } = require('webpack-manifest-plugin'); const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin'); const { - copyConfig, cssConfig, // htmlInjectConfig, // htmlOutputConfig, diff --git a/packages/trader/package.json b/packages/trader/package.json index 09ae912660d3..27b9b42bb0b4 100644 --- a/packages/trader/package.json +++ b/packages/trader/package.json @@ -99,11 +99,11 @@ "moment": "^2.29.2", "null-loader": "^4.0.1", "prop-types": "^15.7.2", - "react": "^16.14.0", - "react-content-loader": "^4.3.2", - "react-dom": "^16.14.0", + "react": "^17.0.2", + "react-content-loader": "^6.2.0", + "react-dom": "^17.0.2", "react-loadable": "^5.5.0", - "react-pose": "^4.0.10", + "framer-motion":"^6.5.1", "react-router": "^5.2.0", "react-router-dom": "^5.2.0", "react-transition-group": "4.4.2" diff --git a/packages/trader/src/App/Components/Animations/bounce.jsx b/packages/trader/src/App/Components/Animations/bounce.jsx index 46e2b860fcc3..d20d10352730 100644 --- a/packages/trader/src/App/Components/Animations/bounce.jsx +++ b/packages/trader/src/App/Components/Animations/bounce.jsx @@ -1,38 +1,35 @@ import PropTypes from 'prop-types'; import React from 'react'; -import posed, { PoseGroup } from 'react-pose'; +import { motion } from 'framer-motion'; -const BounceUp = posed.div({ - enter: { +const BounceUp = { + animate: { y: 0, opacity: 1, - transition: { - y: { - type: 'spring', - stiffness: 500, - damping: 15, - }, - default: { - duration: 300, - }, - }, }, - exit: { + initial: { y: 35, opacity: 0, - transition: { - duration: 0, - }, }, -}); + transition: { + type: 'spring', + stiffness: 500, + damping: 15, + duration: 0.3, + }, +}; const Bounce = ({ children, className, is_visible, keyname }) => is_visible ? ( - - - {children} - - + + {children} + ) : null; Bounce.propTypes = { diff --git a/packages/trader/src/App/Components/Animations/slide-in.jsx b/packages/trader/src/App/Components/Animations/slide-in.jsx index edd0ef3c5d6d..1ef6cfd54447 100644 --- a/packages/trader/src/App/Components/Animations/slide-in.jsx +++ b/packages/trader/src/App/Components/Animations/slide-in.jsx @@ -1,61 +1,67 @@ import PropTypes from 'prop-types'; import React from 'react'; -import posed, { PoseGroup } from 'react-pose'; +import { motion } from 'framer-motion'; -const SlideInFromTop = posed.div({ - enter: { - y: 0, - opacity: 1, - transition: { - duration: 200, - }, - }, - exit: { +const SlideInFromTop = { + initial: { y: -20, opacity: 0, - transition: { - duration: 100, - }, }, -}); - -const SlideInFromBottom = posed.div({ - enter: { + animate: { y: 0, opacity: 1, - transition: { - duration: 200, - }, }, - exit: { + transition: { + duration: 0.2, + }, +}; + +const SlideInFromBottom = { + initial: { y: 20, opacity: 0, - transition: { - duration: 100, - }, }, -}); + animate: { + y: 0, + opacity: 1, + }, + transition: { + duration: 0.2, + }, +}; const SlideIn = ({ children, className, keyname, is_visible, type }) => { if (type === 'bottom') { return ( - + <> {is_visible && ( - + {children} - + )} - + ); } return ( - + <> {is_visible && ( - + {children} - + )} - + ); }; diff --git a/packages/trader/src/App/Components/Routes/__tests__/helpers.spec.js b/packages/trader/src/App/Components/Routes/__tests__/helpers.spec.js index 6b2807325303..ef0eebbbfef0 100644 --- a/packages/trader/src/App/Components/Routes/__tests__/helpers.spec.js +++ b/packages/trader/src/App/Components/Routes/__tests__/helpers.spec.js @@ -46,7 +46,9 @@ describe('Helpers', () => { describe('getPath', () => { it('should return param values in params as a part of path', () => { - expect(Helpers.getPath('/contract/:contract_id', { contract_id: 37511105068 })).toBe('/contract/37511105068'); + expect(Helpers.getPath('/contract/:contract_id', { contract_id: 37511105068 })).toBe( + '/contract/37511105068' + ); expect( Helpers.getPath('/something_made_up/:something_made_up_param1/:something_made_up_param2', { something_made_up_param1: '789', diff --git a/packages/translations/package.json b/packages/translations/package.json index c1d00211a03b..c234494b5fc8 100644 --- a/packages/translations/package.json +++ b/packages/translations/package.json @@ -35,7 +35,7 @@ "glob": "^7.1.5", "i18next": "^20.3.2", "prop-types": "^15.7.2", - "react": "^16.14.0", + "react": "^17.0.2", "react-i18next": "^11.11.0" }, "devDependencies": { From abd9e2568392c5e3c3843a8db8570e733725257e Mon Sep 17 00:00:00 2001 From: kate-deriv <121025168+kate-deriv@users.noreply.github.com> Date: Wed, 11 Jan 2023 04:58:53 +0300 Subject: [PATCH 29/84] fix: add optional chaining in getMinDuration function (#7344) --- .../Trading/Components/Form/DatePicker/trading-date-picker.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/trader/src/Modules/Trading/Components/Form/DatePicker/trading-date-picker.jsx b/packages/trader/src/Modules/Trading/Components/Form/DatePicker/trading-date-picker.jsx index 326ca5add747..169b6cff8144 100644 --- a/packages/trader/src/Modules/Trading/Components/Form/DatePicker/trading-date-picker.jsx +++ b/packages/trader/src/Modules/Trading/Components/Form/DatePicker/trading-date-picker.jsx @@ -45,7 +45,7 @@ const TradingDatePicker = ({ const getMinDuration = () => { return hasIntradayDurationUnit(duration_units_list) ? toMoment(server_time).clone() - : toMoment(server_time).clone().add(duration_min_max.daily.min, 'second'); + : toMoment(server_time).clone().add(duration_min_max?.daily?.min, 'second'); }; const getMomentContractStartDateTime = () => { From 6de2aae0dd2528477eaa8a14ab72eededa3fd595 Mon Sep 17 00:00:00 2001 From: Likhith Kolayari <98398322+likhith-deriv@users.noreply.github.com> Date: Wed, 11 Jan 2023 06:50:33 +0400 Subject: [PATCH 30/84] fix: :bug: resolved issue with trade. odal (#7291) --- packages/core/src/App/Containers/Modals/app-modals.jsx | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/core/src/App/Containers/Modals/app-modals.jsx b/packages/core/src/App/Containers/Modals/app-modals.jsx index 02536452963a..ed05eaf897f2 100644 --- a/packages/core/src/App/Containers/Modals/app-modals.jsx +++ b/packages/core/src/App/Containers/Modals/app-modals.jsx @@ -65,7 +65,6 @@ const AppModals = ({ is_trading_assessment_for_new_user_enabled, fetchFinancialAssessment, setCFDScore, - cfd_score, active_account_landing_company, is_deriv_account_needed_modal_visible, is_warning_scam_message_modal_visible, @@ -137,8 +136,7 @@ const AppModals = ({ if ( is_logged_in && active_account_landing_company === 'maltainvest' && - !is_trading_assessment_for_new_user_enabled && - cfd_score === 0 + !is_trading_assessment_for_new_user_enabled ) { ComponentToLoad = ; } @@ -177,7 +175,6 @@ export default connect(({ client, ui }) => ({ has_maltainvest_account: client.has_maltainvest_account, fetchFinancialAssessment: client.fetchFinancialAssessment, setCFDScore: client.setCFDScore, - cfd_score: client.cfd_score, setShouldShowVerifiedAccount: ui.setShouldShowVerifiedAccount, should_show_cooldown_modal: ui.should_show_cooldown_modal, should_show_assessment_complete_modal: ui.should_show_assessment_complete_modal, From ec5b85f5648f8ffac4994d67bd34b29c3b78205f Mon Sep 17 00:00:00 2001 From: Matin shafiei Date: Fri, 13 Jan 2023 12:04:57 +0800 Subject: [PATCH 31/84] Revert "fix: :bug: resolved issue with trade. odal (#7291)" (#7364) This reverts commit b6f7e4c91b463c0e5c9431e101d4e3734671e632. --- packages/core/src/App/Containers/Modals/app-modals.jsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/core/src/App/Containers/Modals/app-modals.jsx b/packages/core/src/App/Containers/Modals/app-modals.jsx index ed05eaf897f2..02536452963a 100644 --- a/packages/core/src/App/Containers/Modals/app-modals.jsx +++ b/packages/core/src/App/Containers/Modals/app-modals.jsx @@ -65,6 +65,7 @@ const AppModals = ({ is_trading_assessment_for_new_user_enabled, fetchFinancialAssessment, setCFDScore, + cfd_score, active_account_landing_company, is_deriv_account_needed_modal_visible, is_warning_scam_message_modal_visible, @@ -136,7 +137,8 @@ const AppModals = ({ if ( is_logged_in && active_account_landing_company === 'maltainvest' && - !is_trading_assessment_for_new_user_enabled + !is_trading_assessment_for_new_user_enabled && + cfd_score === 0 ) { ComponentToLoad = ; } @@ -175,6 +177,7 @@ export default connect(({ client, ui }) => ({ has_maltainvest_account: client.has_maltainvest_account, fetchFinancialAssessment: client.fetchFinancialAssessment, setCFDScore: client.setCFDScore, + cfd_score: client.cfd_score, setShouldShowVerifiedAccount: ui.setShouldShowVerifiedAccount, should_show_cooldown_modal: ui.should_show_cooldown_modal, should_show_assessment_complete_modal: ui.should_show_assessment_complete_modal, From 551a3c49566e86d396991746e8a470fedd3842b4 Mon Sep 17 00:00:00 2001 From: Farzin Mirzaie <72082844+farzin-deriv@users.noreply.github.com> Date: Mon, 16 Jan 2023 14:42:14 +0800 Subject: [PATCH 32/84] Farzin/85054/Call `resetWithrawForm` on `CryptoWithdrawForm` component `onunmount` (#7331) * fix(cashier): :bug: call `resetWithrawForm` on `CryptoWithdrawForm` component `onunmount` * test(cashier): :white_check_mark: fix failing test Co-authored-by: Farzin Mirzaie --- .../__tests__/crypto-withdraw-form.spec.tsx | 1 + .../crypto-withdraw-form/crypto-withdraw-form.tsx | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/cashier/src/pages/withdrawal/crypto-withdraw-form/__tests__/crypto-withdraw-form.spec.tsx b/packages/cashier/src/pages/withdrawal/crypto-withdraw-form/__tests__/crypto-withdraw-form.spec.tsx index 680121fb0d7e..37fd21b338de 100644 --- a/packages/cashier/src/pages/withdrawal/crypto-withdraw-form/__tests__/crypto-withdraw-form.spec.tsx +++ b/packages/cashier/src/pages/withdrawal/crypto-withdraw-form/__tests__/crypto-withdraw-form.spec.tsx @@ -32,6 +32,7 @@ describe('', () => { requestWithdraw: jest.fn(), setBlockchainAddress: jest.fn(), setWithdrawPercentageSelectorResult: jest.fn(), + resetWithrawForm: jest.fn(), }, }, }, diff --git a/packages/cashier/src/pages/withdrawal/crypto-withdraw-form/crypto-withdraw-form.tsx b/packages/cashier/src/pages/withdrawal/crypto-withdraw-form/crypto-withdraw-form.tsx index 601072f57374..d6f56aa9e5a5 100644 --- a/packages/cashier/src/pages/withdrawal/crypto-withdraw-form/crypto-withdraw-form.tsx +++ b/packages/cashier/src/pages/withdrawal/crypto-withdraw-form/crypto-withdraw-form.tsx @@ -72,6 +72,7 @@ const CryptoWithdrawForm = observer(() => { setWithdrawPercentageSelectorResult, validateWithdrawFromAmount, validateWithdrawToAmount, + resetWithrawForm, } = withdraw; const { @@ -92,7 +93,11 @@ const CryptoWithdrawForm = observer(() => { React.useEffect(() => { onMountWithdraw(verification_code); - return () => percentageSelectorSelectionStatus(false); + + return () => { + percentageSelectorSelectionStatus(false); + resetWithrawForm(); + }; // eslint-disable-next-line react-hooks/exhaustive-deps }, []); From b032a727abffc39a2934bd15ea5236f0eb06db03 Mon Sep 17 00:00:00 2001 From: Niloofar Sadeghi <93518187+niloofar-deriv@users.noreply.github.com> Date: Mon, 16 Jan 2023 14:12:11 +0330 Subject: [PATCH 33/84] Niloofar Sadeghi / Task - Refactor tests in the language.spec.js file (#7325) * refactor: language tests * fix: typo Co-authored-by: Niloofar Sadeghi --- .../Utils/Language/__tests__/language.spec.js | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/packages/core/src/Utils/Language/__tests__/language.spec.js b/packages/core/src/Utils/Language/__tests__/language.spec.js index e8a51a53c541..6c285aa77015 100644 --- a/packages/core/src/Utils/Language/__tests__/language.spec.js +++ b/packages/core/src/Utils/Language/__tests__/language.spec.js @@ -1,21 +1,21 @@ -// TODO refactor old tests in this component -import React from 'react'; import { getAllowedLanguages } from '@deriv/translations'; -describe('getAllowedLanguages', () => { - it('It Returns the desired allowed languages', () => { - // expect({ - // EN: 'English', - // ES: 'Español', - // FR: 'Français', - // ID: 'Indonesia', - // IT: 'Italiano', - // PL: 'Polish', - // PT: 'Português', - // RU: 'Русский', - // VI: 'Tiếng Việt', - // ZH_CN: '简体中文', - // ZH_TW: '繁體中文', - // }).toEqual(expect.arrayContaining([getAllowedLanguages()])); +const languages = { + EN: 'English', + ES: 'Español', + FR: 'Français', + ID: 'Indonesia', + IT: 'Italiano', + PL: 'Polish', + PT: 'Português', + RU: 'Русский', + VI: 'Tiếng Việt', + ZH_CN: '简体中文', + ZH_TW: '繁體中文', +}; + +describe('getAllowedLanguages method', () => { + it('should return the desired allowed languages', () => { + expect(getAllowedLanguages()).toEqual(languages); }); }); From 6f4c2acd7e6466e5497d8ce5bd38a3b1296ad9e7 Mon Sep 17 00:00:00 2001 From: Niloofar Sadeghi <93518187+niloofar-deriv@users.noreply.github.com> Date: Mon, 16 Jan 2023 14:13:18 +0330 Subject: [PATCH 34/84] refactor: proposal tests (#7327) Co-authored-by: Niloofar Sadeghi --- .../Trading/Helpers/__tests__/proposal.js | 381 ++++++++---------- 1 file changed, 179 insertions(+), 202 deletions(-) diff --git a/packages/trader/src/Stores/Modules/Trading/Helpers/__tests__/proposal.js b/packages/trader/src/Stores/Modules/Trading/Helpers/__tests__/proposal.js index 47a67701b4a7..cae8a94fcfa9 100644 --- a/packages/trader/src/Stores/Modules/Trading/Helpers/__tests__/proposal.js +++ b/packages/trader/src/Stores/Modules/Trading/Helpers/__tests__/proposal.js @@ -1,212 +1,189 @@ -// TODO refactor old tests in this component -import React from 'react'; -import * as Proposal from '../proposal'; +import { getProposalInfo, createProposalRequests } from '../proposal'; describe('Proposal', () => { - describe('getProposalInfo', () => { - // const store = { - // currency: 'EUR', - // basis_list: [ - // { - // text: 'Payout', - // value: 'payout', - // }, - // { - // text: 'Stake', - // value: 'stake', - // }, - // ], - // basis: 'payout', - // }; - it('should return 0 as profit when proposal has error', () => { - // const obj_prev_contract_basis = { - // text: 'Payout', - // value: 1234, - // }; - // const response = { - // error: { - // message: 'This is error', - // }, - // }; - // expect(Proposal.getProposalInfo(store, response, obj_prev_contract_basis)).toEqual({ - // profit: '0.00', - // returns: '0.00%', - // stake: undefined, - // payout: undefined, - // cancellation: undefined, - // commission: undefined, - // error_code: undefined, - // error_field: undefined, - // limit_order: undefined, - // id: '', - // message: 'This is error', - // has_error: true, - // has_error_details: false, - // has_increased: false, - // obj_contract_basis: { - // text: 'Stake', - // value: '', - // }, - // }); + describe('getProposalInfo function', () => { + const fake_store = { + currency: 'EUR', + basis_list: [ + { text: 'Payout', value: 'payout' }, + { text: 'Stake', value: 'stake' }, + ], + basis: 'payout', + }; + + const fake_obj_prev_contract_basis = { + text: 'payout', + value: 1234, + }; + + it('should return 0 as profit when proposal has an error', () => { + const fake_response = { + error: { message: 'This is error' }, + }; + + expect(getProposalInfo(fake_store, fake_response, fake_obj_prev_contract_basis)).toEqual({ + profit: '0.00', + returns: '0.00%', + stake: undefined, + payout: undefined, + cancellation: undefined, + commission: undefined, + error_code: undefined, + error_field: undefined, + limit_order: undefined, + id: '', + message: 'This is error', + has_error: true, + has_error_details: false, + has_increased: false, + obj_contract_basis: { + text: 'Stake', + value: '', + }, + }); }); - // it('should return profit and return calculated if proposal has no error', () => { - // const response = { - // proposal: { - // proposal: 1, - // ask_price: 50, - // display_value: 200, - // payout: 300, - // id: 'id1', - // longcode: 'This is a longcode', - // }, - // }; - // const obj_prev_contract_basis = { - // text: 'payout', - // value: 1234, - // }; - // expect(Proposal.getProposalInfo(store, response, obj_prev_contract_basis)).toEqual({ - // cancellation: undefined, - // commission: undefined, - // error_code: undefined, - // error_field: undefined, - // limit_order: undefined, - // profit: '250.00', - // returns: '500.00%', - // stake: 200, - // payout: 300, - // id: 'id1', - // message: 'This is a longcode', - // has_error: false, - // has_error_details: false, - // has_increased: false, - // obj_contract_basis: { - // text: 'Stake', - // value: 200, - // }, - // }); - // }); - }); - // describe('createProposalRequests', () => { - // it('should return request containing trade type which is not already in request', () => { - // const store = { - // amount: '10', - // basis: 'payout', - // currency: 'USD', - // symbol: 'frxAUDJPY', - // start_time: '12:30', - // duration: '5', - // duration_unit: 't', - // trade_types: { - // CALL: 'Higher', - // PUT: 'Lower', - // }, - // expiry_type: 'duration', - // form_components: ['duration', 'amount', 'start_date'], - // root_store: { - // client: { - // currency: 'USD', - // }, - // }, - // proposal_requests: { - // CALL: { - // amount: 10, - // basis: 'payout', - // contract_type: 'CALL', - // currency: 'USD', - // duration: 5, - // duration_unit: 't', - // proposal: 1, - // req_id: 7, - // subscribe: 1, - // symbol: 'frxAUDJPY', - // }, - // }, - // }; + it('should return profit and return calculated if proposal has no error', () => { + const fake_response = { + proposal: { + proposal: 1, + ask_price: 50, + display_value: 200, + payout: 300, + id: 'id1', + longcode: 'This is a longcode', + }, + }; - // expect(Proposal.createProposalRequests(store)).toEqual({ - // CALL: { - // amount: 10, - // basis: 'payout', - // contract_type: 'CALL', - // currency: 'USD', - // duration: 5, - // duration_unit: 't', - // proposal: 1, - // subscribe: 1, - // symbol: 'frxAUDJPY', - // }, - // PUT: { - // proposal: 1, - // subscribe: 1, - // amount: 10, - // basis: 'payout', - // contract_type: 'PUT', - // currency: 'USD', - // symbol: 'frxAUDJPY', - // duration: 5, - // duration_unit: 't', - // }, - // }); - // }); + expect(getProposalInfo(fake_store, fake_response, fake_obj_prev_contract_basis)).toEqual({ + cancellation: undefined, + commission: undefined, + error_code: undefined, + error_field: undefined, + limit_order: undefined, + profit: '250.00', + returns: '500.00%', + stake: 200, + payout: 300, + id: 'id1', + message: 'This is a longcode', + has_error: false, + has_error_details: false, + has_increased: false, + obj_contract_basis: { + text: 'Stake', + value: 200, + }, + }); + }); + }); - // it('should return request as before if all trade types already exist in request', () => { - // const store = { - // amount: '10', - // basis: 'payout', - // currency: 'USD', - // symbol: 'frxAUDJPY', - // start_time: '12:30', - // duration: '5', - // duration_unit: 't', - // trade_types: { - // CALL: 'Higher', - // }, - // expiry_type: 'duration', - // form_components: ['duration', 'amount', 'start_date'], - // root_store: { - // client: { - // currency: 'USD', - // }, - // }, - // proposal_requests: { - // CALL: { - // amount: 10, - // basis: 'payout', - // contract_type: 'CALL', - // currency: 'USD', - // duration: 5, - // duration_unit: 't', - // proposal: 1, - // req_id: 7, - // subscribe: 1, - // symbol: 'frxAUDJPY', - // }, - // }, - // }; + describe('createProposalRequests function', () => { + it('should return the request containing trade type which is not already in the request', () => { + const fake_store = { + amount: '10', + basis: 'payout', + currency: 'USD', + symbol: 'frxAUDJPY', + start_time: '12:30', + duration: '5', + duration_unit: 't', + trade_types: { CALL: 'Higher', PUT: 'Lower' }, + expiry_type: 'duration', + form_components: ['duration', 'amount', 'start_date'], + root_store: { client: { currency: 'USD' } }, + proposal_requests: { + CALL: { + amount: 10, + basis: 'payout', + contract_type: 'CALL', + currency: 'USD', + duration: 5, + duration_unit: 't', + proposal: 1, + req_id: 7, + subscribe: 1, + symbol: 'frxAUDJPY', + }, + }, + }; - // expect(Proposal.createProposalRequests(store)).toEqual({ - // CALL: { - // amount: 10, - // basis: 'payout', - // contract_type: 'CALL', - // currency: 'USD', - // duration: 5, - // duration_unit: 't', - // proposal: 1, - // subscribe: 1, - // symbol: 'frxAUDJPY', - // }, - // }); - // }); + expect(createProposalRequests(fake_store)).toEqual({ + CALL: { + amount: 10, + basis: 'payout', + contract_type: 'CALL', + currency: 'USD', + duration: 5, + duration_unit: 't', + proposal: 1, + subscribe: 1, + symbol: 'frxAUDJPY', + }, + PUT: { + proposal: 1, + subscribe: 1, + amount: 10, + basis: 'payout', + contract_type: 'PUT', + currency: 'USD', + symbol: 'frxAUDJPY', + duration: 5, + duration_unit: 't', + }, + }); + }); + + it('should return the request as before if all trade types already exist in the request', () => { + const fake_store = { + amount: '10', + basis: 'payout', + currency: 'USD', + symbol: 'frxAUDJPY', + start_time: '12:30', + duration: '5', + duration_unit: 't', + trade_types: { CALL: 'Higher' }, + expiry_type: 'duration', + form_components: ['duration', 'amount', 'start_date'], + root_store: { client: { currency: 'USD' } }, + proposal_requests: { + CALL: { + amount: 10, + basis: 'payout', + contract_type: 'CALL', + currency: 'USD', + duration: 5, + duration_unit: 't', + proposal: 1, + req_id: 7, + subscribe: 1, + symbol: 'frxAUDJPY', + }, + }, + }; - // it('should return empty if there is no trade type', () => { - // const store = { - // trade_types: {}, - // proposal_requests: {}, - // }; + expect(createProposalRequests(fake_store)).toEqual({ + CALL: { + amount: 10, + basis: 'payout', + contract_type: 'CALL', + currency: 'USD', + duration: 5, + duration_unit: 't', + proposal: 1, + subscribe: 1, + symbol: 'frxAUDJPY', + }, + }); + }); - // expect(Proposal.createProposalRequests(store)).toHaveLength(0); - // }); - // }); + it('should return an empty object if there is no trade type', () => { + const fake_store = { + trade_types: {}, + proposal_requests: {}, + }; + expect(createProposalRequests(fake_store)).toEqual({}); + }); + }); }); From 3c3772ed3d426db47d40467645b1236c3e27215a Mon Sep 17 00:00:00 2001 From: Niloofar Sadeghi <93518187+niloofar-deriv@users.noreply.github.com> Date: Mon, 16 Jan 2023 14:14:04 +0330 Subject: [PATCH 35/84] Niloofar Sadeghi / Task - Refactor tests in the error.spec.js file (#7324) * refactor: errors validator tests * fix: typo Co-authored-by: Niloofar Sadeghi --- .../Utils/Validator/__tests__/error.spec.js | 91 +++++++++---------- .../Utils/Validator/__tests__/error.spec.js | 91 +++++++++---------- .../Utils/Validator/__tests__/error.spec.js | 91 +++++++++---------- 3 files changed, 123 insertions(+), 150 deletions(-) diff --git a/packages/cfd/src/Utils/Validator/__tests__/error.spec.js b/packages/cfd/src/Utils/Validator/__tests__/error.spec.js index 0c3a6a8a53d0..f97dae65582c 100644 --- a/packages/cfd/src/Utils/Validator/__tests__/error.spec.js +++ b/packages/cfd/src/Utils/Validator/__tests__/error.spec.js @@ -1,53 +1,44 @@ -// TODO refactor old tests in this component import Errors from '../errors'; -describe('Error', () => { - // let errors; - // beforeEach(() => { - // errors = new Errors(); - // errors.add('Error', 100); - // }); - - describe('.add', () => { - it('should add error to errors', () => { - // errors.add('Error', 101); - // expect(errors.errors).toHaveProperty('Error').toHaveLength(2); - }); - // it('should not add error if already existed', () => { - // errors.add('Error', 100); - // expect(errors.errors).toHaveProperty('Error').toHaveLength(1); - // }); - }); - - // describe('.all', () => { - // it('should return all errors', () => { - // expect(errors.all()).toEqual({ - // Error: [100], - // }); - // }); - // }); - - // describe('.first', () => { - // it('should return first error if attribute exists', () => { - // expect(errors.first('Error')).toEqual(100); - // }); - // }); - - // describe('.get', () => { - // it('should return data if attribute exists', () => { - // expect(errors.get('Error')).toEqual([100]); - // }); - // it('should return [] if attribute does not exist', () => { - // expect(errors.get('')).toEqual([]); - // }); - // }); - - // describe('.has', () => { - // it('should return true if attribute exists', () => { - // expect(errors.has('Error')).toBe(true); - // }); - // it('should return false if attribute does not exists', () => { - // expect(errors.has('')).toBe(false); - // }); - // }); +describe('Errors', () => { + let errors; + + beforeEach(() => { + errors = new Errors(); + errors.add('Error', 100); + }); + + it('should add a new error to the errors', () => { + errors.add('Error', 101); + expect(errors.errors['Error']).toHaveLength(2); + }); + + it('should not add an error if already existed', () => { + errors.add('Error', 100); + expect(errors.errors['Error']).toHaveLength(1); + }); + + it('should return all errors', () => { + expect(errors.all()).toEqual({ Error: [100] }); + }); + + it('should return first error if attribute exists', () => { + expect(errors.first('Error')).toEqual(100); + }); + + it('should return data if attribute exists', () => { + expect(errors.get('Error')).toEqual([100]); + }); + + it('should return an empty array if attribute does not exist', () => { + expect(errors.get('')).toEqual([]); + }); + + it('should return "true" if attribute exists', () => { + expect(errors.has('Error')).toBeTruthy(); + }); + + it('should return "false" if the attribute does not exist', () => { + expect(errors.has('')).toBeFalsy(); + }); }); diff --git a/packages/reports/src/Utils/Validator/__tests__/error.spec.js b/packages/reports/src/Utils/Validator/__tests__/error.spec.js index 0c3a6a8a53d0..f97dae65582c 100644 --- a/packages/reports/src/Utils/Validator/__tests__/error.spec.js +++ b/packages/reports/src/Utils/Validator/__tests__/error.spec.js @@ -1,53 +1,44 @@ -// TODO refactor old tests in this component import Errors from '../errors'; -describe('Error', () => { - // let errors; - // beforeEach(() => { - // errors = new Errors(); - // errors.add('Error', 100); - // }); - - describe('.add', () => { - it('should add error to errors', () => { - // errors.add('Error', 101); - // expect(errors.errors).toHaveProperty('Error').toHaveLength(2); - }); - // it('should not add error if already existed', () => { - // errors.add('Error', 100); - // expect(errors.errors).toHaveProperty('Error').toHaveLength(1); - // }); - }); - - // describe('.all', () => { - // it('should return all errors', () => { - // expect(errors.all()).toEqual({ - // Error: [100], - // }); - // }); - // }); - - // describe('.first', () => { - // it('should return first error if attribute exists', () => { - // expect(errors.first('Error')).toEqual(100); - // }); - // }); - - // describe('.get', () => { - // it('should return data if attribute exists', () => { - // expect(errors.get('Error')).toEqual([100]); - // }); - // it('should return [] if attribute does not exist', () => { - // expect(errors.get('')).toEqual([]); - // }); - // }); - - // describe('.has', () => { - // it('should return true if attribute exists', () => { - // expect(errors.has('Error')).toBe(true); - // }); - // it('should return false if attribute does not exists', () => { - // expect(errors.has('')).toBe(false); - // }); - // }); +describe('Errors', () => { + let errors; + + beforeEach(() => { + errors = new Errors(); + errors.add('Error', 100); + }); + + it('should add a new error to the errors', () => { + errors.add('Error', 101); + expect(errors.errors['Error']).toHaveLength(2); + }); + + it('should not add an error if already existed', () => { + errors.add('Error', 100); + expect(errors.errors['Error']).toHaveLength(1); + }); + + it('should return all errors', () => { + expect(errors.all()).toEqual({ Error: [100] }); + }); + + it('should return first error if attribute exists', () => { + expect(errors.first('Error')).toEqual(100); + }); + + it('should return data if attribute exists', () => { + expect(errors.get('Error')).toEqual([100]); + }); + + it('should return an empty array if attribute does not exist', () => { + expect(errors.get('')).toEqual([]); + }); + + it('should return "true" if attribute exists', () => { + expect(errors.has('Error')).toBeTruthy(); + }); + + it('should return "false" if the attribute does not exist', () => { + expect(errors.has('')).toBeFalsy(); + }); }); diff --git a/packages/trader/src/Utils/Validator/__tests__/error.spec.js b/packages/trader/src/Utils/Validator/__tests__/error.spec.js index 0c3a6a8a53d0..f97dae65582c 100644 --- a/packages/trader/src/Utils/Validator/__tests__/error.spec.js +++ b/packages/trader/src/Utils/Validator/__tests__/error.spec.js @@ -1,53 +1,44 @@ -// TODO refactor old tests in this component import Errors from '../errors'; -describe('Error', () => { - // let errors; - // beforeEach(() => { - // errors = new Errors(); - // errors.add('Error', 100); - // }); - - describe('.add', () => { - it('should add error to errors', () => { - // errors.add('Error', 101); - // expect(errors.errors).toHaveProperty('Error').toHaveLength(2); - }); - // it('should not add error if already existed', () => { - // errors.add('Error', 100); - // expect(errors.errors).toHaveProperty('Error').toHaveLength(1); - // }); - }); - - // describe('.all', () => { - // it('should return all errors', () => { - // expect(errors.all()).toEqual({ - // Error: [100], - // }); - // }); - // }); - - // describe('.first', () => { - // it('should return first error if attribute exists', () => { - // expect(errors.first('Error')).toEqual(100); - // }); - // }); - - // describe('.get', () => { - // it('should return data if attribute exists', () => { - // expect(errors.get('Error')).toEqual([100]); - // }); - // it('should return [] if attribute does not exist', () => { - // expect(errors.get('')).toEqual([]); - // }); - // }); - - // describe('.has', () => { - // it('should return true if attribute exists', () => { - // expect(errors.has('Error')).toBe(true); - // }); - // it('should return false if attribute does not exists', () => { - // expect(errors.has('')).toBe(false); - // }); - // }); +describe('Errors', () => { + let errors; + + beforeEach(() => { + errors = new Errors(); + errors.add('Error', 100); + }); + + it('should add a new error to the errors', () => { + errors.add('Error', 101); + expect(errors.errors['Error']).toHaveLength(2); + }); + + it('should not add an error if already existed', () => { + errors.add('Error', 100); + expect(errors.errors['Error']).toHaveLength(1); + }); + + it('should return all errors', () => { + expect(errors.all()).toEqual({ Error: [100] }); + }); + + it('should return first error if attribute exists', () => { + expect(errors.first('Error')).toEqual(100); + }); + + it('should return data if attribute exists', () => { + expect(errors.get('Error')).toEqual([100]); + }); + + it('should return an empty array if attribute does not exist', () => { + expect(errors.get('')).toEqual([]); + }); + + it('should return "true" if attribute exists', () => { + expect(errors.has('Error')).toBeTruthy(); + }); + + it('should return "false" if the attribute does not exist', () => { + expect(errors.has('')).toBeFalsy(); + }); }); From 14490b4cd68570fc6832e29056eb2630cd39a914 Mon Sep 17 00:00:00 2001 From: Niloofar Sadeghi <93518187+niloofar-deriv@users.noreply.github.com> Date: Mon, 16 Jan 2023 14:17:14 +0330 Subject: [PATCH 36/84] Niloofar Sadeghi / Task - Refactor tests in the binary-link.spec.tsx file (#7288) * refactor: binary-link tests * refactor: improve testids namings Co-authored-by: Niloofar Sadeghi --- .../Routes/__tests__/binary-link.spec.tsx | 74 ++++++++----------- .../src/App/Components/Routes/binary-link.jsx | 12 ++- 2 files changed, 42 insertions(+), 44 deletions(-) diff --git a/packages/trader/src/App/Components/Routes/__tests__/binary-link.spec.tsx b/packages/trader/src/App/Components/Routes/__tests__/binary-link.spec.tsx index 45d06ad65d8d..c37ff374e150 100644 --- a/packages/trader/src/App/Components/Routes/__tests__/binary-link.spec.tsx +++ b/packages/trader/src/App/Components/Routes/__tests__/binary-link.spec.tsx @@ -1,48 +1,38 @@ -// TODO refactor old tests in this component import React from 'react'; -import { NavLink } from 'react-router-dom'; -import { routes } from '@deriv/shared'; +import { render, screen } from '@testing-library/react'; +import { BrowserRouter } from 'react-router-dom'; import { BinaryLink } from '../index'; -// configure({ adapter: new Adapter() }); +type TMockBinaryLink = { + to?: string; +}; -describe('', () => { - it('should render one component', () => { - // const wrapper = shallow(); - // expect(wrapper).toHaveLength(1); +const MockBinaryLink = ({ to }: TMockBinaryLink) => ( + + +
+ + +); + +describe('BinaryLink component', () => { + it('should render "children" when passed in', () => { + render(); + expect(screen.getByTestId('dt_child')).toBeInTheDocument(); + }); + + it('should have "active_class" when passed in', () => { + render(); + expect(screen.getByTestId('dt_binary_link')).toHaveClass('active_class'); + }); + + it('should render "NavLink" when "to" property is passed', () => { + render(); + expect(screen.getByTestId('dt_binary_link')).toBeInTheDocument(); + }); + + it('should render "a" element whe property "to" is not passed', () => { + render(); + expect(screen.getByTestId('dt_binary_link')).toBeInTheDocument(); }); - // it('should render children when passed in', () => { - // const child_div =
; - // const wrapper = shallow({child_div}); - // expect(wrapper.contains(child_div)).toBe(true); - // }); - // it("should render one when property 'to' is passed", () => { - // const wrapper = shallow(); - // expect(wrapper.find(NavLink)).toHaveLength(1); - // }); - // it("should not render when property 'to' is not passed", () => { - // const wrapper = shallow(); - // expect(wrapper.find(NavLink)).toHaveLength(0); - // }); - // it("should render when property 'to' is not passed", () => { - // const wrapper = shallow(); - // expect(wrapper.contains()).toBe(true); - // }); - // it("should not render when property 'to' is passed", () => { - // const wrapper = shallow(); - // expect(wrapper.contains()).toBe(false); - // }); - // it('should render component with props if any given', () => { - // const wrapper = shallow(); - // expect(wrapper.find('.a-cool-classname').exists()); - // }); - // it('should throw error if the route given is not a valid route', () => { - // let error; - // try { - // shallow(); - // } catch (e) { - // error = e; - // } - // expect(error).toBeInstanceOf(Error); - // }); }); diff --git a/packages/trader/src/App/Components/Routes/binary-link.jsx b/packages/trader/src/App/Components/Routes/binary-link.jsx index 32cde172573d..43d66e6c5d4e 100644 --- a/packages/trader/src/App/Components/Routes/binary-link.jsx +++ b/packages/trader/src/App/Components/Routes/binary-link.jsx @@ -16,11 +16,19 @@ const BinaryLink = ({ active_class, to, children, ...props }) => { } return to ? ( - + {children} ) : ( - {children} + + {children} + ); }; From 0680ab0c1941dff15dad76f141ee4ecf3394406c Mon Sep 17 00:00:00 2001 From: Niloofar Sadeghi <93518187+niloofar-deriv@users.noreply.github.com> Date: Mon, 16 Jan 2023 14:17:49 +0330 Subject: [PATCH 37/84] refactor: money tests (#7353) --- .../components/money/__tests__/money.spec.tsx | 49 +++++++++++++++ .../components/src/components/money/money.tsx | 2 +- .../Elements/__tests__/money.spec.tsx | 60 ------------------- 3 files changed, 50 insertions(+), 61 deletions(-) create mode 100644 packages/components/src/components/money/__tests__/money.spec.tsx delete mode 100644 packages/trader/src/App/Components/Elements/__tests__/money.spec.tsx diff --git a/packages/components/src/components/money/__tests__/money.spec.tsx b/packages/components/src/components/money/__tests__/money.spec.tsx new file mode 100644 index 000000000000..8e6c7a07c5d5 --- /dev/null +++ b/packages/components/src/components/money/__tests__/money.spec.tsx @@ -0,0 +1,49 @@ +import React from 'react'; +import { render, screen } from '@testing-library/react'; +import Money from '../money'; + +describe('Money', () => { + it('should have the "className" when passed in', () => { + render(); + expect(screen.getByTestId('dt_span')).toHaveClass('test-class'); + }); + + it('should return correct text based on the props when "amount" is > 0 and "has_sign" is "true"', () => { + render(); + expect(screen.getByText('+')).toBeInTheDocument(); + expect(screen.getByText('10.00')).toBeInTheDocument(); + }); + + it('should return correct text based on the props when "amount" is < 0 and "has_sign" is "true"', () => { + render(); + expect(screen.getByText('-')).toBeInTheDocument(); + expect(screen.getByText('10.00')).toBeInTheDocument(); + }); + + it('should return correct text based on the props when "amount" is 0 and "has_sign" is "true"', () => { + render(); + expect(screen.getByText('0.00')).toBeInTheDocument(); + }); + + it('should return correct text based on the props when "amount" is > 0 and "has_sign" is "true" and "should_format" is "false")', () => { + render(); + expect(screen.getByText('+')).toBeInTheDocument(); + expect(screen.getByText('10')).toBeInTheDocument(); + }); + + it('should return correct text based on the props when "amount" is < 0 and "has_sign" is "true" and "should_format" is "false"', () => { + render(); + expect(screen.getByText('-')).toBeInTheDocument(); + expect(screen.getByText('10.5')).toBeInTheDocument(); + }); + + it('should return correct text based on the props when "amount" is 0 and "has_sign" is "true" and "should_format" is "false"', () => { + render(); + expect(screen.getByText('0')).toBeInTheDocument(); + }); + + it('should show the currency when "show_currency" passed', () => { + render(); + expect(screen.getByText('0.00 USD')).toBeInTheDocument(); + }); +}); diff --git a/packages/components/src/components/money/money.tsx b/packages/components/src/components/money/money.tsx index 691e473072ff..d9556a181846 100644 --- a/packages/components/src/components/money/money.tsx +++ b/packages/components/src/components/money/money.tsx @@ -30,7 +30,7 @@ const Money = ({ return ( {has_sign && sign} - + {final_amount} {show_currency && getCurrencyDisplayCode(currency)} diff --git a/packages/trader/src/App/Components/Elements/__tests__/money.spec.tsx b/packages/trader/src/App/Components/Elements/__tests__/money.spec.tsx deleted file mode 100644 index 6c84a518702c..000000000000 --- a/packages/trader/src/App/Components/Elements/__tests__/money.spec.tsx +++ /dev/null @@ -1,60 +0,0 @@ -// TODO refactor old tests in this component -import React from 'react'; -import { Money } from '@deriv/components'; - -// configure({ adapter: new Adapter() }); - -describe('Money', () => { - it('should render one component', () => { - // const wrapper = shallow(); - // expect(wrapper).toHaveLength(1); - }); - // it('should return correct text based on props when number is > 0 and has_sign is true', () => { - // const wrapper = shallow(); - // expect(wrapper.text().trim()).toBe('+10.00'); - // }); - // it('should return correct text based on props when number is > 0 and has_sign is true', () => { - // const wrapper = shallow(); - // expect(wrapper.text().trim()).toBe('+10.00'); - // }); - // it('should return correct text based on props when number is < 0 and has_sign is true', () => { - // const wrapper = shallow(); - // expect(wrapper.text().trim()).toBe('-10.00'); - // }); - // it('should return correct text based on props when number is 0 and has_sign is true', () => { - // const wrapper = shallow(); - // expect(wrapper.text().trim()).toBe('0.00'); - // }); - // it('should return correct text based on props when number is > 0 and has_sign is true (should_format is false)', () => { - // const wrapper = shallow(); - // expect(wrapper.text().trim()).toBe('+10'); - // }); - // it('should return correct text based on props when number is > 0 and has_sign is true (should_format is false)', () => { - // const wrapper = shallow(); - // expect(wrapper.text().trim()).toBe('+10'); - // }); - // it('should return correct text based on props when number is < 0 and has_sign is true (should_format is false)', () => { - // const wrapper = shallow(); - // expect(wrapper.text().trim()).toBe('-10.5'); - // }); - // it('should return correct text based on props when number is 0 and has_sign is true (should_format is false)', () => { - // const wrapper = shallow(); - // expect(wrapper.text().trim()).toBe('0'); - // }); - // it('should return correct text based on props when number is > 0 and has_sign is false', () => { - // const wrapper = shallow(); - // expect(wrapper.text().trim()).toBe('10.00'); - // }); - // it('should return correct text based on props when number is > 0 and has_sign is false', () => { - // const wrapper = shallow(); - // expect(wrapper.text().trim()).toBe('10.00'); - // }); - // it('should return correct text based on props when number is < 0 and has_sign is false', () => { - // const wrapper = shallow(); - // expect(wrapper.text().trim()).toBe('10.50'); - // }); - // it('should return correct text based on props when number is 0 and has_sign is false', () => { - // const wrapper = shallow(); - // expect(wrapper.text().trim()).toBe('0.00'); - // }); -}); From df2d2da73fcbaa68aebc72e31b1b2cae5ade3a29 Mon Sep 17 00:00:00 2001 From: Niloofar Sadeghi <93518187+niloofar-deriv@users.noreply.github.com> Date: Mon, 16 Jan 2023 14:18:23 +0330 Subject: [PATCH 38/84] refactor: toggle-positions tests (#7287) Co-authored-by: Niloofar Sadeghi --- .../__tests__/toggle-positions.spec.tsx | 48 +++++++++---------- .../TogglePositions/toggle-positions.jsx | 3 +- 2 files changed, 25 insertions(+), 26 deletions(-) diff --git a/packages/trader/src/App/Components/Elements/TogglePositions/__tests__/toggle-positions.spec.tsx b/packages/trader/src/App/Components/Elements/TogglePositions/__tests__/toggle-positions.spec.tsx index 261c54eca0d2..19770e5e8bf3 100644 --- a/packages/trader/src/App/Components/Elements/TogglePositions/__tests__/toggle-positions.spec.tsx +++ b/packages/trader/src/App/Components/Elements/TogglePositions/__tests__/toggle-positions.spec.tsx @@ -1,31 +1,29 @@ -// TODO refactor old tests in this component import React from 'react'; -// import { fake } from 'sinon'; +import userEvent from '@testing-library/user-event'; +import { render, screen } from '@testing-library/react'; import TogglePositions from '../toggle-positions.jsx'; -import { Icon } from '@deriv/components'; -// configure({ adapter: new Adapter() }); +describe('TogglePositions component', () => { + it('should have "positions-toggle--active" class when "is_open" is "true"', () => { + render(); + expect(screen.getByTestId('dt_positions_toggle')).toHaveClass('positions-toggle--active'); + }); + + it('should have "positions-toggle--has-count" class when "positions_count > 0"', () => { + render(); + expect(screen.getByTestId('dt_positions_toggle')).toHaveClass('positions-toggle--has-count'); + }); + + it('should call "togglePositions" when the user clicked on the link', () => { + const mockTogglePositions = jest.fn(); + render(); + const link = screen.getByTestId('dt_positions_toggle'); + userEvent.click(link); + expect(mockTogglePositions).toHaveBeenCalledTimes(1); + }); -describe('TogglePositions', () => { - it('should render one component', () => { - // const wrapper = shallow(); + it('should render "IcPortfolio" icon', () => { + render(); + expect(screen.getByTestId('dt_icon')).toBeVisible(); }); - // it('should have active class when is_positions_drawer_on is true', () => { - // const wrapper = shallow(); - // expect(wrapper.find('.positions-toggle--active').exists()).toBe(true); - // }); - // it('should not have active class when is_positions_drawer_on is false', () => { - // const wrapper = shallow(); - // expect(wrapper.find('.positions-toggle--active').exists()).toBe(false); - // }); - // it("should contain ", () => { - // const wrapper = shallow(); - // expect(wrapper.contains()).toBe(true); - // }); - // it('should call twDrawer passed onClick', () => { - // const callback = fake(); - // const wrapper = shallow(); - // wrapper.prop('onClick')(); - // expect(callback.toBeCalled()).toBe(true); - // }); }); diff --git a/packages/trader/src/App/Components/Elements/TogglePositions/toggle-positions.jsx b/packages/trader/src/App/Components/Elements/TogglePositions/toggle-positions.jsx index e69df126ce6b..c37fb05d11f0 100644 --- a/packages/trader/src/App/Components/Elements/TogglePositions/toggle-positions.jsx +++ b/packages/trader/src/App/Components/Elements/TogglePositions/toggle-positions.jsx @@ -12,11 +12,12 @@ const TogglePositions = ({ positions_count, is_open, togglePositions }) => { return ( - + ); }; From 80b1c6ff52e360940acb6abecb9b775c85653438 Mon Sep 17 00:00:00 2001 From: Niloofar Sadeghi <93518187+niloofar-deriv@users.noreply.github.com> Date: Mon, 16 Jan 2023 14:18:54 +0330 Subject: [PATCH 39/84] refactor: toggle-button tests (#7328) Co-authored-by: Niloofar Sadeghi --- .../__tests__/toggle-button.spec.tsx | 143 +++++++----------- 1 file changed, 52 insertions(+), 91 deletions(-) diff --git a/packages/trader/src/App/Components/Elements/ToggleButton/__tests__/toggle-button.spec.tsx b/packages/trader/src/App/Components/Elements/ToggleButton/__tests__/toggle-button.spec.tsx index decd13f1028c..5e1b8ea3f7be 100644 --- a/packages/trader/src/App/Components/Elements/ToggleButton/__tests__/toggle-button.spec.tsx +++ b/packages/trader/src/App/Components/Elements/ToggleButton/__tests__/toggle-button.spec.tsx @@ -1,103 +1,64 @@ -// TODO refactor old tests in this component import React from 'react'; -// import { fake } from 'sinon'; -import { Button } from '@deriv/components'; +import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; import ToggleButton from '../toggle-button.jsx'; -import { beforeEach } from '@jest/globals'; -describe('', () => { - it('should render a
); -}); +}; export default FundsProtection; diff --git a/packages/cashier/src/components/no-balance/__tests__/no-balance.spec.tsx b/packages/cashier/src/components/no-balance/__tests__/no-balance.spec.tsx index 413397ec2b25..44cf1c2f7cf8 100644 --- a/packages/cashier/src/components/no-balance/__tests__/no-balance.spec.tsx +++ b/packages/cashier/src/components/no-balance/__tests__/no-balance.spec.tsx @@ -12,7 +12,15 @@ describe('', () => { beforeEach(() => { mockRootStore = { - client: { currency: 'USD' }, + client: { + currency: 'USD', + mt5_login_list: [ + { + account_type: 'demo', + sub_account_type: 'financial_stp', + }, + ], + }, modules: { cashier: { deposit: { is_deposit_locked: false }, @@ -37,23 +45,6 @@ describe('', () => { expect(screen.getByText('Please make a deposit to use this feature.')).toBeInTheDocument(); }); - it('must not able to make a deposit when deposit is locked', async () => { - mockRootStore.modules.cashier.deposit.is_deposit_locked = true; - - render( - - - , - { - wrapper: ({ children }) => {children}, - } - ); - - expect(screen.getByRole('heading')).toBeInTheDocument(); - expect(screen.queryByText('Deposit now')).not.toBeInTheDocument(); - expect(screen.queryByText('Please make a deposit to use this feature.')).not.toBeInTheDocument(); - }); - it('component should redirect to deposit page when button is clicked', () => { render( diff --git a/packages/cashier/src/components/no-balance/no-balance.tsx b/packages/cashier/src/components/no-balance/no-balance.tsx index 80f74ace85ab..dcac52adcfc6 100644 --- a/packages/cashier/src/components/no-balance/no-balance.tsx +++ b/packages/cashier/src/components/no-balance/no-balance.tsx @@ -1,16 +1,17 @@ import React from 'react'; import { RouteComponentProps, withRouter } from 'react-router-dom'; import { Button, Icon, Text } from '@deriv/components'; +import { useDepositLocked } from '@deriv/hooks'; import { routes, getCurrencyDisplayCode } from '@deriv/shared'; import { localize, Localize } from '@deriv/translations'; import { useStore, observer } from '@deriv/stores'; const NoBalance = observer(({ history }: RouteComponentProps) => { + const is_deposit_locked = useDepositLocked(); const { client: { currency }, modules: { cashier: { - deposit: { is_deposit_locked }, general_store: { setCashierTabIndex: setTabIndex }, }, }, diff --git a/packages/cashier/src/pages/account-transfer/__tests__/account-transfer.spec.tsx b/packages/cashier/src/pages/account-transfer/__tests__/account-transfer.spec.tsx index 764829934fa5..5c837061429d 100644 --- a/packages/cashier/src/pages/account-transfer/__tests__/account-transfer.spec.tsx +++ b/packages/cashier/src/pages/account-transfer/__tests__/account-transfer.spec.tsx @@ -28,6 +28,12 @@ describe('', () => { client: { is_switching: false, is_virtual: false, + mt5_login_list: [ + { + account_type: 'demo', + sub_account_type: 'financial_stp', + }, + ], }, ui: { is_dark_mode_on: false, diff --git a/packages/cashier/src/pages/deposit/__tests__/deposit.spec.tsx b/packages/cashier/src/pages/deposit/__tests__/deposit.spec.tsx index 6e75606a913b..87fe12ba73f2 100644 --- a/packages/cashier/src/pages/deposit/__tests__/deposit.spec.tsx +++ b/packages/cashier/src/pages/deposit/__tests__/deposit.spec.tsx @@ -49,6 +49,12 @@ describe('', () => { it('should render component', () => { const mockRootStore: DeepPartial = { client: { + mt5_login_list: [ + { + account_type: 'demo', + sub_account_type: 'financial_stp', + }, + ], currency: 'USD', can_change_fiat_currency: false, current_currency_type: 'fiat', @@ -67,7 +73,6 @@ describe('', () => { }, deposit: { error: { is_ask_uk_funds_protection: false, message: '', setErrorMessage: jest.fn() }, - is_deposit_locked: false, onMountDeposit: jest.fn(), }, general_store: { @@ -89,7 +94,7 @@ describe('', () => { expect(screen.getByText('Loading')).toBeInTheDocument(); - rerender(); + rerender(); expect(screen.getByText('Loading')).toBeInTheDocument(); }); @@ -97,6 +102,12 @@ describe('', () => { it('should render component', () => { const mockRootStore: DeepPartial = { client: { + mt5_login_list: [ + { + account_type: 'demo', + sub_account_type: 'financial_stp', + }, + ], currency: 'USD', can_change_fiat_currency: false, current_currency_type: 'fiat', @@ -113,7 +124,6 @@ describe('', () => { }, deposit: { error: { is_ask_uk_funds_protection: false, message: '', setErrorMessage: jest.fn() }, - is_deposit_locked: false, onMountDeposit: jest.fn(), }, general_store: { @@ -138,6 +148,12 @@ describe('', () => { it('should render component', () => { const mockRootStore: DeepPartial = { client: { + mt5_login_list: [ + { + account_type: 'demo', + sub_account_type: 'financial_stp', + }, + ], currency: 'USD', can_change_fiat_currency: false, current_currency_type: 'fiat', @@ -154,7 +170,6 @@ describe('', () => { }, deposit: { error: { is_ask_uk_funds_protection: false, message: '', setErrorMessage: jest.fn() }, - is_deposit_locked: false, onMountDeposit: jest.fn(), }, general_store: { @@ -174,13 +189,11 @@ describe('', () => { expect(screen.getByText('CashierLocked')).toBeInTheDocument(); - rerender( - - ); + rerender(); expect(screen.getByText('CashierLocked')).toBeInTheDocument(); - rerender(); + rerender(); expect(screen.getByText('CashierLocked')).toBeInTheDocument(); }); @@ -188,6 +201,12 @@ describe('', () => { it('should render component', () => { const mockRootStore: DeepPartial = { client: { + mt5_login_list: [ + { + account_type: 'demo', + sub_account_type: 'financial_stp', + }, + ], currency: 'USD', can_change_fiat_currency: false, current_currency_type: 'fiat', @@ -204,7 +223,6 @@ describe('', () => { }, deposit: { error: { is_ask_uk_funds_protection: true, message: '', setErrorMessage: jest.fn() }, - is_deposit_locked: false, onMountDeposit: jest.fn(), }, general_store: { @@ -229,6 +247,13 @@ describe('', () => { it('should render component', () => { const mockRootStore: DeepPartial = { client: { + mt5_login_list: [ + { + account_type: 'real', + sub_account_type: 'financial_stp', + }, + ], + is_deposit_lock: true, currency: 'USD', can_change_fiat_currency: false, current_currency_type: 'fiat', @@ -245,7 +270,6 @@ describe('', () => { }, deposit: { error: { is_ask_uk_funds_protection: false, message: '', setErrorMessage: jest.fn() }, - is_deposit_locked: true, onMountDeposit: jest.fn(), }, general_store: { @@ -270,6 +294,12 @@ describe('', () => { it('should render component', () => { const mockRootStore: DeepPartial = { client: { + mt5_login_list: [ + { + account_type: 'demo', + sub_account_type: 'financial_stp', + }, + ], currency: 'USD', can_change_fiat_currency: false, current_currency_type: 'fiat', @@ -286,7 +316,6 @@ describe('', () => { }, deposit: { error: { is_ask_uk_funds_protection: false, message: '', setErrorMessage: jest.fn() }, - is_deposit_locked: false, onMountDeposit: jest.fn(), }, general_store: { @@ -311,6 +340,12 @@ describe('', () => { it('should render component', () => { const mockRootStore: DeepPartial = { client: { + mt5_login_list: [ + { + account_type: 'demo', + sub_account_type: 'financial_stp', + }, + ], currency: 'USD', can_change_fiat_currency: false, current_currency_type: 'fiat', @@ -327,7 +362,6 @@ describe('', () => { }, deposit: { error: { is_ask_uk_funds_protection: false, message: 'error', setErrorMessage: jest.fn() }, - is_deposit_locked: false, onMountDeposit: jest.fn(), }, general_store: { @@ -352,6 +386,12 @@ describe('', () => { it('should render component', () => { const mockRootStore: DeepPartial = { client: { + mt5_login_list: [ + { + account_type: 'demo', + sub_account_type: 'financial_stp', + }, + ], currency: 'BTC', can_change_fiat_currency: false, current_currency_type: 'fiat', @@ -368,7 +408,6 @@ describe('', () => { }, deposit: { error: { is_ask_uk_funds_protection: false, message: '', setErrorMessage: jest.fn() }, - is_deposit_locked: false, onMountDeposit: jest.fn(), }, general_store: { @@ -394,6 +433,12 @@ describe('', () => { it('should render component', () => { const mockRootStore: DeepPartial = { client: { + mt5_login_list: [ + { + account_type: 'demo', + sub_account_type: 'financial_stp', + }, + ], currency: 'USD', can_change_fiat_currency: false, current_currency_type: 'fiat', @@ -410,7 +455,6 @@ describe('', () => { }, deposit: { error: { is_ask_uk_funds_protection: false, message: '', setErrorMessage: jest.fn() }, - is_deposit_locked: false, onMountDeposit: jest.fn(), }, general_store: { @@ -435,6 +479,12 @@ describe('', () => { it('should render component', () => { const mockRootStore: DeepPartial = { client: { + mt5_login_list: [ + { + account_type: 'demo', + sub_account_type: 'financial_stp', + }, + ], currency: 'USD', can_change_fiat_currency: false, current_currency_type: 'fiat', @@ -451,7 +501,6 @@ describe('', () => { }, deposit: { error: { is_ask_uk_funds_protection: false, message: '', setErrorMessage: jest.fn() }, - is_deposit_locked: false, onMountDeposit: jest.fn(), }, general_store: { @@ -476,6 +525,12 @@ describe('', () => { it('should trigger "setSideNotes" callback', () => { const mockRootStore: DeepPartial = { client: { + mt5_login_list: [ + { + account_type: 'demo', + sub_account_type: 'financial_stp', + }, + ], currency: 'UST', can_change_fiat_currency: false, current_currency_type: 'fiat', @@ -493,7 +548,6 @@ describe('', () => { }, deposit: { error: { is_ask_uk_funds_protection: false, message: '', setErrorMessage: jest.fn() }, - is_deposit_locked: false, onMountDeposit: jest.fn(), }, general_store: { diff --git a/packages/cashier/src/pages/deposit/deposit.tsx b/packages/cashier/src/pages/deposit/deposit.tsx index 647c04cb8f12..773028763896 100644 --- a/packages/cashier/src/pages/deposit/deposit.tsx +++ b/packages/cashier/src/pages/deposit/deposit.tsx @@ -1,5 +1,6 @@ import React from 'react'; import { Loading } from '@deriv/components'; +import { useDepositLocked } from '@deriv/hooks'; import { useStore, observer } from '@deriv/stores'; import { Real, Virtual } from 'Components/cashier-container'; import { CashierOnboarding, CashierOnboardingSideNote } from 'Components/cashier-onboarding'; @@ -18,6 +19,7 @@ type TDeposit = { }; const Deposit = observer(({ setSideNotes }: TDeposit) => { + const is_deposit_locked = useDepositLocked(); const { client, modules } = useStore(); const { can_change_fiat_currency, @@ -31,7 +33,7 @@ const Deposit = observer(({ setSideNotes }: TDeposit) => { const { cashier } = modules; const { iframe, deposit, transaction_history, general_store } = cashier; const { clearIframe, iframe_height, iframe_url } = iframe; - const { container, error, is_deposit_locked, onMountDeposit: onMount } = deposit; + const { container, error, onMountDeposit: onMount } = deposit; const { crypto_transactions, is_crypto_transactions_visible, diff --git a/packages/cashier/src/pages/on-ramp/__tests__/on-ramp.spec.tsx b/packages/cashier/src/pages/on-ramp/__tests__/on-ramp.spec.tsx index 1c9ae4de7b53..e9956d88986a 100644 --- a/packages/cashier/src/pages/on-ramp/__tests__/on-ramp.spec.tsx +++ b/packages/cashier/src/pages/on-ramp/__tests__/on-ramp.spec.tsx @@ -39,6 +39,12 @@ describe('', () => { account_status: { status: [], }, + mt5_login_list: [ + { + account_type: 'demo', + sub_account_type: 'financial_stp', + }, + ], }, common: { routeTo: jest.fn(), @@ -55,9 +61,6 @@ describe('', () => { should_show_dialog: false, onramp_popup_modal_title: 'Title of the onramp popup modal', }, - deposit: { - is_deposit_locked: false, - }, general_store: { is_cashier_onboarding: false, is_cashier_locked: false, @@ -91,7 +94,7 @@ describe('', () => { }); const renderOnRamp = (is_rerender = false) => { const ui = ( - + ); diff --git a/packages/cashier/src/pages/on-ramp/on-ramp.tsx b/packages/cashier/src/pages/on-ramp/on-ramp.tsx index cd3a32047d2e..9134465b0ac5 100644 --- a/packages/cashier/src/pages/on-ramp/on-ramp.tsx +++ b/packages/cashier/src/pages/on-ramp/on-ramp.tsx @@ -1,5 +1,6 @@ import React from 'react'; import { Loading, Modal, SelectNative, ReadMore, Text } from '@deriv/components'; +import { useDepositLocked } from '@deriv/hooks'; import { routes, isMobile } from '@deriv/shared'; import { Localize, localize } from '@deriv/translations'; import { useStore, observer } from '@deriv/stores'; @@ -55,8 +56,9 @@ const OnRampInfo = () => ( ); const OnRamp = observer(({ menu_options, setSideNotes }: TOnRampProps) => { + const is_deposit_locked = useDepositLocked(); const { modules, common, client } = useStore(); - const { onramp, general_store, deposit } = modules.cashier; + const { onramp, general_store } = modules.cashier; const { filtered_onramp_providers, is_onramp_modal_open, @@ -68,7 +70,6 @@ const OnRamp = observer(({ menu_options, setSideNotes }: TOnRampProps) => { should_show_dialog, } = onramp; const { is_cashier_onboarding, is_cashier_locked, is_loading, cashier_route_tab_index } = general_store; - const { is_deposit_locked } = deposit; const { is_switching } = client; const { routeTo } = common; diff --git a/packages/cashier/src/stores/__tests__/deposit-store.spec.js b/packages/cashier/src/stores/__tests__/deposit-store.spec.js index b2be024856b5..093aa59f8b9e 100644 --- a/packages/cashier/src/stores/__tests__/deposit-store.spec.js +++ b/packages/cashier/src/stores/__tests__/deposit-store.spec.js @@ -9,15 +9,6 @@ describe('DepositStore', () => { beforeEach(() => { const root_store = { client: { - is_authentication_needed: false, - is_tnc_needed: false, - is_financial_account: false, - is_financial_information_incomplete: false, - is_trading_experience_incomplete: false, - account_status: {}, - is_eu: false, - mt5_login_list: [], - is_deposit_lock: false, is_virtual: false, updateAccountStatus: jest.fn(), }, @@ -95,66 +86,4 @@ describe('DepositStore', () => { expect(checkIframeLoaded).not.toHaveBeenCalled(); expect(setLoading).toHaveBeenCalledWith(false); }); - - it('should return is_deposit_locked equal to true if the client needs authentication', () => { - expect(deposit_store.is_deposit_locked).toBeFalsy(); - - deposit_store.root_store.client.account_status.status = ['authentication_needed']; - deposit_store.root_store.client.is_authentication_needed = true; - deposit_store.root_store.client.is_eu = true; - expect(deposit_store.is_deposit_locked).toBeTruthy(); - }); - - it('should return is_deposit_locked equal to true if the client needs financial assessment', () => { - deposit_store.root_store.client.account_status.status = [ - 'financial_information_not_complete', - 'trading_experience_not_complete', - ]; - deposit_store.root_store.client.is_financial_account = true; - deposit_store.root_store.client.is_financial_information_incomplete = true; - expect(deposit_store.is_deposit_locked).toBeTruthy(); - - deposit_store.root_store.client.is_financial_information_incomplete = false; - deposit_store.root_store.client.is_trading_experience_incomplete = true; - expect(deposit_store.is_deposit_locked).toBeTruthy(); - }); - - it('should return is_deposit_locked equal to true if the client needs terms and conditions', () => { - deposit_store.root_store.client.account_status.status = ['cashier_locked']; - deposit_store.root_store.client.is_eu = true; - deposit_store.root_store.client.is_tnc_needed = true; - expect(deposit_store.is_deposit_locked).toBeTruthy(); - - deposit_store.root_store.client.is_eu = false; - deposit_store.root_store.client.mt5_login_list = [{ account_type: 'real', sub_account_type: 'financial_stp' }]; - expect(deposit_store.is_deposit_locked).toBeTruthy(); - }); - - it('should return is_deposit_locked equal to true if the client needs financial risk approval', () => { - deposit_store.root_store.client.account_status.status = ['financial_assessment_not_complete']; - deposit_store.error.is_ask_financial_risk_approval = true; - expect(deposit_store.is_deposit_locked).toBeTruthy(); - }); - - it('should submit funds protection', async () => { - Object.defineProperty(window, 'location', { - configurable: true, - value: { reload: jest.fn() }, - }); - - await deposit_store.submitFundsProtection(); - expect(location.reload).toHaveBeenCalled(); - - window.location.reload.mockRestore(); - }); - - it('should handle the error upon submitting funds protection', async () => { - const spySetMessage = jest.spyOn(deposit_store.error, 'setMessage'); - const error_message = 'Sorry, an error occurred.'; - - deposit_store.WS.send.mockResolvedValueOnce({ error: { message: error_message } }); - - await deposit_store.submitFundsProtection(); - expect(spySetMessage).toHaveBeenCalledWith(error_message); - }); }); diff --git a/packages/cashier/src/stores/deposit-store.ts b/packages/cashier/src/stores/deposit-store.ts index e8de170d8d2f..c8001f76c66d 100644 --- a/packages/cashier/src/stores/deposit-store.ts +++ b/packages/cashier/src/stores/deposit-store.ts @@ -1,4 +1,4 @@ -import { action, computed, makeObservable, observable } from 'mobx'; +import { action, makeObservable, observable } from 'mobx'; import Constants from 'Constants/constants'; import ErrorStore from './error-store'; import { TRootStore, TWebSocket } from 'Types'; @@ -9,8 +9,6 @@ export default class DepositStore { container: observable, error: observable, onMountDeposit: action.bound, - is_deposit_locked: computed, - submitFundsProtection: action.bound, }); this.root_store = root_store; @@ -83,59 +81,4 @@ export default class DepositStore { setLoading(false); } - - get is_deposit_locked(): boolean { - const { - account_status, - is_authentication_needed, - is_financial_account, - is_financial_information_incomplete, - is_deposit_lock, - is_eu, - is_tnc_needed, - is_trading_experience_incomplete, - landing_company_shortcode, - mt5_login_list, - } = this.root_store.client; - if (!account_status?.status) return false; - - const need_authentication = this.error.is_ask_authentication || (is_authentication_needed && is_eu); - const need_financial_assessment = - is_financial_account && (is_financial_information_incomplete || is_trading_experience_incomplete); - // CR can deposit without accepting latest tnc except those with Financial STP - const need_tnc = - (is_eu || - mt5_login_list.some( - item => item.account_type === 'real' && item.sub_account_type === 'financial_stp' - )) && - is_tnc_needed; - - if (landing_company_shortcode === 'maltainvest') { - return ( - is_deposit_lock || - need_authentication || - need_tnc || - is_trading_experience_incomplete || - this.error.is_ask_financial_risk_approval - ); - } - - return ( - is_deposit_lock || - need_authentication || - need_tnc || - need_financial_assessment || - this.error.is_ask_financial_risk_approval - ); - } - - submitFundsProtection(): void { - this.WS.send({ ukgc_funds_protection: 1, tnc_approval: 1 }).then(response => { - if (response.error) { - this.error.setMessage(response.error.message); - } else { - location.reload(); - } - }); - } } diff --git a/packages/hooks/src/__tests__/useDepositLocked.spec.tsx b/packages/hooks/src/__tests__/useDepositLocked.spec.tsx index 5c9b47815cfa..9a9f4083200f 100644 --- a/packages/hooks/src/__tests__/useDepositLocked.spec.tsx +++ b/packages/hooks/src/__tests__/useDepositLocked.spec.tsx @@ -26,6 +26,7 @@ describe('useDepositLocked', () => { is_financial_account: false, is_financial_information_incomplete: false, is_trading_experience_incomplete: false, + landing_company_shortcode: 'svg', mt5_login_list: [ { account_type: 'demo', @@ -53,6 +54,7 @@ describe('useDepositLocked', () => { is_financial_account: false, is_financial_information_incomplete: false, is_trading_experience_incomplete: false, + landing_company_shortcode: 'svg', mt5_login_list: [ { account_type: 'demo', @@ -80,6 +82,7 @@ describe('useDepositLocked', () => { is_financial_account: false, is_financial_information_incomplete: false, is_trading_experience_incomplete: false, + landing_company_shortcode: 'svg', mt5_login_list: [ { account_type: 'real', @@ -107,6 +110,7 @@ describe('useDepositLocked', () => { is_financial_account: true, is_financial_information_incomplete: true, is_trading_experience_incomplete: false, + landing_company_shortcode: 'svg', mt5_login_list: [ { account_type: 'demo', @@ -134,6 +138,7 @@ describe('useDepositLocked', () => { is_financial_account: false, is_financial_information_incomplete: false, is_trading_experience_incomplete: false, + landing_company_shortcode: 'svg', mt5_login_list: [ { account_type: 'real', @@ -150,4 +155,60 @@ describe('useDepositLocked', () => { const is_deposit_locked = screen.getByTestId('dt_is_deposit_locked'); expect(is_deposit_locked).toHaveTextContent('true'); }); + + test('should be true if is_need_financial_assessment is true and landing_company_shortcode as svg', async () => { + const mockRootStore: DeepPartial = { + client: { + is_deposit_lock: false, + is_authentication_needed: false, + is_tnc_needed: false, + is_eu: false, + is_financial_account: true, + is_financial_information_incomplete: true, + is_trading_experience_incomplete: false, + landing_company_shortcode: 'svg', + mt5_login_list: [ + { + account_type: 'demo', + sub_account_type: 'financial', + }, + ], + }, + }; + + render(, { + wrapper: ({ children }) => {children}, + }); + + const is_deposit_locked = screen.getByTestId('dt_is_deposit_locked'); + expect(is_deposit_locked).toHaveTextContent('true'); + }); + + test('should be true if is_trading_experience_incomplete is true and landing_company_shortcode as maltainvest', async () => { + const mockRootStore: DeepPartial = { + client: { + is_deposit_lock: false, + is_authentication_needed: false, + is_tnc_needed: false, + is_eu: false, + is_financial_account: false, + is_financial_information_incomplete: false, + is_trading_experience_incomplete: true, + landing_company_shortcode: 'maltainvest', + mt5_login_list: [ + { + account_type: 'demo', + sub_account_type: 'financial', + }, + ], + }, + }; + + render(, { + wrapper: ({ children }) => {children}, + }); + + const is_deposit_locked = screen.getByTestId('dt_is_deposit_locked'); + expect(is_deposit_locked).toHaveTextContent('true'); + }); }); diff --git a/packages/hooks/src/useDepositLocked.ts b/packages/hooks/src/useDepositLocked.ts index 3074b1159248..3e6c39ae9610 100644 --- a/packages/hooks/src/useDepositLocked.ts +++ b/packages/hooks/src/useDepositLocked.ts @@ -5,11 +5,20 @@ import useNeedTNC from './useNeedTNC'; const useDepositLocked = () => { const { client } = useStore(); - const { is_deposit_lock } = client; + const { is_deposit_lock, is_trading_experience_incomplete, landing_company_shortcode } = client; const is_need_authentication = useNeedAuthentication(); const is_need_tnc = useNeedTNC(); const is_need_financial_assessment = useNeedFinancialAssessment(); - const is_deposit_locked = is_deposit_lock || is_need_authentication || is_need_tnc || is_need_financial_assessment; + const is_malta_invest = landing_company_shortcode === 'maltainvest'; + const is_trading_experience_incomplete_or_need_financial_assessment = is_malta_invest + ? is_trading_experience_incomplete + : is_need_financial_assessment; + + const is_deposit_locked = + is_deposit_lock || + is_need_authentication || + is_need_tnc || + is_trading_experience_incomplete_or_need_financial_assessment; return is_deposit_locked; }; From 4888c778d8f6351f904c4e953b7849e893774ed9 Mon Sep 17 00:00:00 2001 From: adrienne-deriv <103016120+adrienne-deriv@users.noreply.github.com> Date: Tue, 17 Jan 2023 15:09:20 +0800 Subject: [PATCH 47/84] Adrienne / Github actions Lighthouse report workflow (#7317) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: added checks to job to run only on pull requests * chore: fixed issues with testing * chore: testing github actions running on local branch * chore: added workflow_dispatch event to test out manually * chore: added workflow_dispatch event to test out manually * chore: added workflow_dispatch event to test out manually * chore: fix typo * chore: fix issue where lighthouse config file is not found * chore: fix issue where lighthouse config file is not found * chore: test with hardcoded url * chore: test with updated permissions * chore: reverted changes due to lack of token permission * chore: reverted changes due to lack of token permission * chore: added progress comment * chore: added progress comment * chore: test * chore: reverted test * chore: reverted test * chore: commented config path for lighthouse assertions * chore: fixed syntax on like 38 where it expects a string instead of mapping * translations: 📚 sync translations with crowdin (#7361) Co-authored-by: DerivFE <80095553+DerivFE@users.noreply.github.com> Co-authored-by: Jim Daniels Wasswa <104334373+jim-deriv@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: DerivFE <80095553+DerivFE@users.noreply.github.com> --- .github/lighthouse/lighthouserc.json | 13 +++++ .github/workflows/lighthouse.yml | 85 ++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 .github/lighthouse/lighthouserc.json create mode 100644 .github/workflows/lighthouse.yml diff --git a/.github/lighthouse/lighthouserc.json b/.github/lighthouse/lighthouserc.json new file mode 100644 index 000000000000..63a96d735ee7 --- /dev/null +++ b/.github/lighthouse/lighthouserc.json @@ -0,0 +1,13 @@ +{ + "ci": { + "assert": { + "assertions": { + "categories:performance": ["warn", { "minScore": 0.5 }], + "categories:accessibility": ["warn", { "minScore": 0.5 }], + "categories:best-practices": ["warn", { "minScore": 0.5 }], + "categories:seo": ["warn", { "minScore": 0.5 }], + "categories:pwa": ["warn", { "minScore": 0.5 }] + } + } + } +} diff --git a/.github/workflows/lighthouse.yml b/.github/workflows/lighthouse.yml new file mode 100644 index 000000000000..102de54fc792 --- /dev/null +++ b/.github/workflows/lighthouse.yml @@ -0,0 +1,85 @@ +name: Generate Lighthouse report + +on: + issue_comment: + types: [edited] + +jobs: + generate_lighthouse_report: + timeout-minutes: 30 + runs-on: ubuntu-latest + steps: + - name: Checkout to repo + uses: actions/checkout@v3 + with: + fetch-depth: 1 + ref: master + + - name: Add Lighthouse progress comment + id: generate_lighthouse_comment + uses: marocchino/sticky-pull-request-comment@v2 + with: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + number: ${{github.event.issue.number}} + header: generate_lighthouse_comment + message: "⏳ **Generating Lighthouse report...**" + + - name: Capture Vercel preview URL + id: vercel_preview_url + uses: binary-com/vercel-preview-url-action@v1.0.5 + with: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Generate Lighthouse report + uses: treosh/lighthouse-ci-action@v9 + id: lighthouse_report + with: + temporaryPublicStorage: true + urls: | + ${{ steps.vercel_preview_url.outputs.vercel_preview_url }} + uploadArtifacts: true + # configure Lighthouse score assertions in this file + # configPath: .github/lighthouse/lighthouserc.json + + - name: Retrieve Lighthouse score + id: lighthouse_score + uses: actions/github-script@v3 + with: + github-token: ${{secrets.GITHUB_TOKEN}} + script: | + const result = ${{ steps.lighthouse_report.outputs.manifest }}[0].summary + const links = ${{ steps.lighthouse_report.outputs.links }} + const score = res => res >= 90 ? '🟢' : res >= 50 ? '🟧' : '🔺' + const formatResult = (res) => Math.round((res * 100)) + + Object.keys(result).forEach(key => result[key] = formatResult(result[key])) + + const comment = [ + `🚨 [Lighthouse report](${Object.values(links)[0]}) for the changes in this PR:`, + '| Category | Score |', + '| --- | --- |', + `| ${score(result.performance)} Performance | ${result.performance} |`, + `| ${score(result.accessibility)} Accessibility | ${result.accessibility} |`, + `| ${score(result['best-practices'])} Best practices | ${result['best-practices']} |`, + `| ${score(result.seo)} SEO | ${result.seo} |`, + `| ${score(result.pwa)} PWA | ${result.pwa} |`, + ' ', + `*Lighthouse ran with [${Object.keys(links)[0]}](${Object.keys(links)[0]})*` + ].join('\n') + core.setOutput("comment", comment); + + - name: Post Lighthouse report + uses: marocchino/sticky-pull-request-comment@v2 + with: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + header: Lighthouse report + number: ${{github.event.issue.number}} + message: ${{steps.lighthouse_score.outputs.comment}} + + - name: Clear Lighthouse progress comment + uses: marocchino/sticky-pull-request-comment@v2 + with: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + number: ${{github.event.issue.number}} + header: generate_lighthouse_comment + delete: true From 6f91be9d69aa46f1e21fb1e7bd6ddb4ed6aa1a1c Mon Sep 17 00:00:00 2001 From: Likhith Kolayari <98398322+likhith-deriv@users.noreply.github.com> Date: Tue, 17 Jan 2023 15:05:11 +0400 Subject: [PATCH 48/84] likhith/POI status fix (#6792) * feat: :bug: POI status fix * fix: :recycle: incorporated review comments Co-authored-by: Matin shafiei Co-authored-by: vinu-deriv --- .../poi/status/unsupported/unsupported.jsx | 25 +++++++++++++++++-- packages/account/src/Modules/Page404/index.js | 4 ++- .../proof-of-identity-container.jsx | 7 +++--- .../proof-of-identity-submission.jsx | 1 + .../components/src/components/label/label.tsx | 4 +-- .../scripts/__tests__/extract-string.spec.js | 1 - packages/trader/build/constants.js | 2 ++ 7 files changed, 35 insertions(+), 9 deletions(-) diff --git a/packages/account/src/Components/poi/status/unsupported/unsupported.jsx b/packages/account/src/Components/poi/status/unsupported/unsupported.jsx index 8a1b2cd66152..eed7145adedb 100644 --- a/packages/account/src/Components/poi/status/unsupported/unsupported.jsx +++ b/packages/account/src/Components/poi/status/unsupported/unsupported.jsx @@ -8,6 +8,9 @@ import DetailComponent from './detail-component.jsx'; import { Documents } from './documents.jsx'; import { getDocumentIndex, DOCUMENT_TYPES } from './constants'; import UploadComplete from '../upload-complete'; +import Verified from 'Components/poi/status/verified'; +import Limited from 'Components/poi/status/limited'; +import Expired from 'Components/poi/status/expired'; const checkNimcStep = documents => { let has_nimc = false; @@ -19,7 +22,16 @@ const checkNimcStep = documents => { return has_nimc; }; -const Unsupported = ({ country_code, handlePOIforMT5Complete, ...props }) => { +const Unsupported = ({ + country_code, + handlePOIforMT5Complete, + manual, + redirect_button, + needs_poa, + handleRequireSubmission, + allow_poi_resubmission, + ...props +}) => { const [detail, setDetail] = React.useState(null); const toggleDetail = index => setDetail(index); @@ -28,7 +40,16 @@ const Unsupported = ({ country_code, handlePOIforMT5Complete, ...props }) => { country_code, }); - if (props?.manual?.status === identity_status_codes.pending) return ; + if (manual) { + if (manual.status === identity_status_codes.pending) return ; + else if ([identity_status_codes.rejected, identity_status_codes.suspected].includes(manual.status)) { + if (!allow_poi_resubmission) return ; + } else if (manual.status === identity_status_codes.verified) { + return ; + } else if (manual.status === identity_status_codes.expired) { + return ; + } + } if (detail !== null) { return ( diff --git a/packages/account/src/Modules/Page404/index.js b/packages/account/src/Modules/Page404/index.js index ccb77a533cf4..5bd19e4b89a2 100644 --- a/packages/account/src/Modules/Page404/index.js +++ b/packages/account/src/Modules/Page404/index.js @@ -1 +1,3 @@ -export default from './Components/Page404.jsx'; +import Page404 from './Components/Page404.jsx'; + +export default Page404; diff --git a/packages/account/src/Sections/Verification/ProofOfIdentity/proof-of-identity-container.jsx b/packages/account/src/Sections/Verification/ProofOfIdentity/proof-of-identity-container.jsx index 4b4e549c0902..a88ff838b49c 100644 --- a/packages/account/src/Sections/Verification/ProofOfIdentity/proof-of-identity-container.jsx +++ b/packages/account/src/Sections/Verification/ProofOfIdentity/proof-of-identity-container.jsx @@ -131,9 +131,7 @@ const ProofOfIdentityContainer = ({ } else if ( !identity_last_attempt || // Prioritise verified status from back office. How we know this is if there is mismatch between current statuses (Should be refactored) - (identity_status === identity_status_codes.verified && identity_status !== identity_last_attempt.status) || - // Prioritise pending status from back office. We can't rely on last attempt as it doesn't get updated after manual upload (Should be refactored) - identity_status === identity_status_codes.pending + (identity_status === identity_status_codes.verified && identity_status !== identity_last_attempt.status) ) { switch (identity_status) { case identity_status_codes.pending: @@ -198,6 +196,9 @@ const ProofOfIdentityContainer = ({ manual={manual} is_from_external={is_from_external} setIsCfdPoiCompleted={setIsCfdPoiCompleted} + needs_poa={needs_poa} + redirect_button={redirect_button} + handleRequireSubmission={handleRequireSubmission} /> ); default: diff --git a/packages/account/src/Sections/Verification/ProofOfIdentity/proof-of-identity-submission.jsx b/packages/account/src/Sections/Verification/ProofOfIdentity/proof-of-identity-submission.jsx index 319b2fb79358..cd6211880fdc 100644 --- a/packages/account/src/Sections/Verification/ProofOfIdentity/proof-of-identity-submission.jsx +++ b/packages/account/src/Sections/Verification/ProofOfIdentity/proof-of-identity-submission.jsx @@ -155,6 +155,7 @@ const POISubmission = ({ country_code={selected_country.value} is_from_external={is_from_external} setIsCfdPoiCompleted={setIsCfdPoiCompleted} + allow_poi_resubmission={allow_poi_resubmission} /> ); default: diff --git a/packages/components/src/components/label/label.tsx b/packages/components/src/components/label/label.tsx index 8bb0c5f953f8..cbd4f7bf6a8d 100644 --- a/packages/components/src/components/label/label.tsx +++ b/packages/components/src/components/label/label.tsx @@ -17,8 +17,8 @@ const available_modes = [ const available_sizes = ['regular', 'large'] as const; type TLabel = { - mode: typeof available_modes[number]; - size: typeof available_sizes[number]; + mode: (typeof available_modes)[number]; + size: (typeof available_sizes)[number]; className?: string; }; diff --git a/packages/p2p/scripts/__tests__/extract-string.spec.js b/packages/p2p/scripts/__tests__/extract-string.spec.js index 4e27c66f21a8..089ab0e68d28 100644 --- a/packages/p2p/scripts/__tests__/extract-string.spec.js +++ b/packages/p2p/scripts/__tests__/extract-string.spec.js @@ -111,7 +111,6 @@ describe('Integration checks', () => { console.log(e); } } - /* eslint-disable-next-line no-unused-expressions */ expect(Object.keys(errors)).toHaveLength(0); }); diff --git a/packages/trader/build/constants.js b/packages/trader/build/constants.js index 648ce89896d2..4ac622f587a0 100644 --- a/packages/trader/build/constants.js +++ b/packages/trader/build/constants.js @@ -1,5 +1,6 @@ const CircularDependencyPlugin = require('circular-dependency-plugin'); const { CleanWebpackPlugin } = require('clean-webpack-plugin'); +// const CopyPlugin = require('copy-webpack-plugin'); // const HtmlWebPackPlugin = require('html-webpack-plugin'); // const HtmlWebpackTagsPlugin = require('html-webpack-tags-plugin'); const IgnorePlugin = require('webpack').IgnorePlugin; @@ -13,6 +14,7 @@ const { WebpackManifestPlugin } = require('webpack-manifest-plugin'); const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin'); const { + // copyConfig, cssConfig, // htmlInjectConfig, // htmlOutputConfig, From 6cf02fbb3fb0365834e3314585c5debd58172db2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 17 Jan 2023 15:46:25 +0400 Subject: [PATCH 49/84] =?UTF-8?q?translations:=20=F0=9F=93=9A=20sync=20tra?= =?UTF-8?q?nslations=20with=20crowdin=20(#7383)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: DerivFE <80095553+DerivFE@users.noreply.github.com> --- .../translations/src/translations/es.json | 2 +- .../translations/src/translations/ko.json | 22 +++---- .../translations/src/translations/pl.json | 60 +++++++++---------- .../translations/src/translations/th.json | 4 +- .../translations/src/translations/tr.json | 60 +++++++++---------- .../translations/src/translations/vi.json | 60 +++++++++---------- 6 files changed, 104 insertions(+), 104 deletions(-) diff --git a/packages/translations/src/translations/es.json b/packages/translations/src/translations/es.json index 08a7cdea0209..e50c65a7684d 100644 --- a/packages/translations/src/translations/es.json +++ b/packages/translations/src/translations/es.json @@ -212,7 +212,7 @@ "278684544": "obtener sublista desde # desde el final", "282319001": "Revise su foto", "282564053": "A continuación, necesitaremos su prueba de domicilio.", - "283830551": "Tu dirección no coincide con la de tu perfil", + "283830551": "Su dirección no coincide con la de su perfil", "283986166": "La autoexclusión en este sitio web solo se aplica a su cuenta {{brand_website_name}} y no incluye otras empresas o sitios web.", "284527272": "antimoda", "284772879": "Contrato", diff --git a/packages/translations/src/translations/ko.json b/packages/translations/src/translations/ko.json index 9f57ab1f46ca..a42c1478fcf6 100644 --- a/packages/translations/src/translations/ko.json +++ b/packages/translations/src/translations/ko.json @@ -574,7 +574,7 @@ "745656178": "이 블록을 사용하셔서 귀하의 계약을 시장가격으로 판매하세요.", "745674059": "선택되어진 옵션에 따라 주어진 무자열에서 특정 문자를 불러옵니다. ", "746112978": "업데이트를 하기 위해 귀하의 컴퓨터에서 몇 초가 걸릴 수 있습니다", - "750886728": "Switch to your real account to submit your documents", + "750886728": "실제 계정으로 전환하여 문서를 제출하세요", "751692023": "귀하께서 잘못 송금하신 것에 대해서 저희는 환불을 <0>보장할 수 없습니다.", "752024971": "숫자의 최대 수에 도달하였습니다", "752633544": "귀하께서는 특정 기준에 도달하게 되면 신분 및 주소 증명을 제출하셔야 합니다", @@ -872,7 +872,7 @@ "1112582372": "간격 기간", "1113119682": "이 블록은 캔들의 목록으로부터 선택되어진 캔들 값을 귀하에게 제공합니다.", "1113292761": "8MB 이하", - "1113433728": "Resubmit your proof of identity and address", + "1113433728": "귀하의 신원 및 주소를 다시 제출하세요", "1117863275": "보안 및 안전", "1118294625": "귀하께서는 {{exclusion_end}} 까지 우리의 웹사이트에서 트레이딩 하는 것으로부터 자가제한을 하시기로 선택하셨습니다. 만약 자가 제한 기간이 지난 이후에도 거래를 주문하거나 또는 예금을 하실 수 없다면 라이브 챗을 통해 우리에게 연락해주시기 바랍니다.", "1119887091": "검증", @@ -1114,7 +1114,7 @@ "1396417530": "약세장 지수", "1397628594": "부족한 잔액", "1399620764": "우리는 귀하의 금융 정보를 요청해야할 법적 의무가 있습니다.", - "1400341216": "We’ll review your documents and notify you of its status within 1 to 3 days.", + "1400341216": "저희는 귀하의 문서를 검토할 것이며 해당 상태에 대하여 1에서 3일 내로 귀하에게 공지해 드릴 것입니다.", "1400637999": "(모든 항목들이 필수 입력사항입니다)", "1400732866": "카메라에서 보기", "1400962248": "고가-종가", @@ -1264,7 +1264,7 @@ "1587046102": "해당 국가에서 나온 문서들은 현재 지원되지 않습니다 — 다른 문서 종류로 시도해보세요", "1589640950": "이 계약의 재판매는 제공되지 않습니다.", "1589702653": "주소증명", - "1591933071": "Resubmit document", + "1591933071": "문서 다시 제출", "1593010588": "지금 로그인하세요", "1594147169": "다시 돌아와 주세요", "1594322503": "판매가 가능합니다", @@ -1549,7 +1549,7 @@ "1918832194": "경험 없음", "1919030163": "좋은 자가촬영사진을 찍기 위한 팁", "1919594496": "{{website_name}} 는 그 어떠한 결제 에이전트와도 제휴되어있지 않습니다. 고객분들은 위험을 단독적으로 감수하고 결제 에이전트와 거래합니다. 고객분들께서는 결제 에이전트의 서비스를 이용하기 이전에 결제 에이전트에 대한 모든 정보의 정확도 및 신용을 확인 ({{website_name}} 또는 다른 곳) 하실 것을 조언받습니다.", - "1919694313": "To start trading, transfer funds from your Deriv account into this account.", + "1919694313": "거래를 시작하려면 Deriv 계정에서 이 계좌로 자금을 이체하세요.", "1920217537": "비교", "1920468180": "SMA 블록 활용 방법", "1921634159": "몇몇 인적 세부사항", @@ -1656,7 +1656,7 @@ "2037481040": "귀하의 계좌에 자금을 충전하기 위해 하나의 방식을 선택하세요", "2037665157": "모든 블록들을 확장하기", "2037906477": "#로부터 하부 목록 받기", - "2042023623": "We’re reviewing your documents. This should take about 5 minutes.", + "2042023623": "귀하의 문서를 검토 중입니다.이 작업에는 약 5분이 소요됩니다.", "2042050260": "- 매입 가격: 해당 계약의 매입 가격 (지분)", "2042115724": "귀하의 성명, 계좌 번호, 전화 번호, 이메일 주소가 포함되어 있는 개인 정보 페이지와 계좌의 스크린샷을 업로드하세요.", "2042778835": "때때로 변경될 수 있는 이 불만사항 정책은 {{legal_entity_name}} 을 통해 등록되어 있는 귀하의 계좌에 적용됩니다.", @@ -2750,7 +2750,7 @@ "-1125797291": "비밀번호가 업데이트되었습니다.", "-157145612": "귀하의 업데이트된 비밀번호로 로그인해주시기 바랍니다.", "-1728185398": "주소 증명 재제출", - "-612396514": "Please resubmit your proof of address.", + "-612396514": "주소 증명을 다시 제출하십시오.", "-1519764694": "귀하의 주소 증명이 확인되었습니다.", "-1961967032": "신분 증명 재제출", "-117048458": "귀하의 신원 증명을 제출해 주시기 바랍니다.", @@ -2982,7 +2982,7 @@ "-712681566": "피어 투 피어 거래", "-1267880283": "{{field_name}} 은 필수입력 사항입니다", "-2084509650": "{{field_name}} 이 올바른 형식으로 되어 있지 않습니다.", - "-222283483": "Account opening reason*", + "-222283483": "계좌 개설 이유*", "-1779241732": "주소의 첫 번째 줄이 올바른 형식으로 되어 있지 않습니다.", "-188222339": "글자수는 {{max_number}} 을 초과할 수 없습니다.", "-1673422138": "도/지방이 올바른 형식으로 되어 있지 않습니다.", @@ -2996,15 +2996,15 @@ "-1982499699": "{{platform_name_dbot}} 둘러보기", "-1567989247": "귀하의 신분 및 주소 증명 제출", "-184453418": "귀하의 {{platform}} 비밀번호를 입력하세요", - "-393388362": "We’re reviewing your documents. This should take about 1 to 3 days.", + "-393388362": "귀하의 문서를 검토 중입니다.이 작업에는 1~3일 정도 소요됩니다.", "-790488576": "비밀번호를 잊으셨나요?", "-926547017": "귀하의 {{platform}} 비밀번호를 입력하셔서 {{platform}} {{account}} {{jurisdiction_shortcode}} 계정을 추가하세요.", "-1190393389": "{{platform}} {{account}} 계정을 추가하기 위해 귀하의 {{platform}} 비밀번호를 입력하세요.", "-2057918502": "힌트: 귀하의 {{platform}} 비밀번호와는 다른 Deriv 비밀번호를 입력하셨을 수 있습니다.", "-1769158315": "실제", "-700260448": "데모", - "-1936102840": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} account. ", - "-1570793523": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} account.", + "-1936102840": "축하합니다. {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} 계정이 성공적으로 생성되었습니다. ", + "-1570793523": "축하합니다, 귀하께서는 귀하의 {{category}} <0>{{platform}} <1>{{type}} 계좌를 성공적으로 생성하셨습니다.", "-1928229820": "Deriv X 투자자 비밀번호 재설정", "-1087845020": "주요", "-1950683866": "투자자", diff --git a/packages/translations/src/translations/pl.json b/packages/translations/src/translations/pl.json index 1e64742c2c3a..2ccc004a5443 100644 --- a/packages/translations/src/translations/pl.json +++ b/packages/translations/src/translations/pl.json @@ -180,7 +180,7 @@ "248909149": "Wyślij bezpieczny link na swój telefon", "249908265": "Czy jesteś obywatelem tego kraju: {{- residence}}?", "251134918": "Informacje o koncie", - "251322536": "Deriv EZ accounts", + "251322536": "Konta Deriv EZ", "251445658": "Ciemny motyw", "251882697": "Dziękujemy! Twoja odpowiedź została zapisana w naszym systemie.<0/><0/> Kliknij „OK”, aby kontynuować.", "254912581": "Ten blok jest podobny do EMA, tylko że daje całą linię EMA w oparciu o listę wejściową i wybrany okres czasu.", @@ -196,7 +196,7 @@ "265644304": "Typy zakładów", "267992618": "Na platformach brakuje podstawowych funkcji.", "268940240": "Twoje saldo ({{format_balance}} {{currency}}) jest niższe od obecnie obowiązującej minimalnej kwoty wypłaty ({{format_min_withdraw_amount}} {{currency}}). Zasil swoje konto, aby kontynuować wypłatę.", - "269322978": "Deposit with your local currency via peer-to-peer exchange with fellow traders in your country.", + "269322978": "Wpłacaj środki w swojej lokalnej walucie, korzystając z wymiany między inwestorami w Twoim kraju.", "269607721": "Prześlij", "270339490": "Jeśli wybierzesz „ponad”, zdobędziesz wypłatę, gdy ostatnia cyfra ostatniego ticku będzie większa niż cyfra przewidywana przez Ciebie.", "270610771": "W tym przykładzie cena otwarcia świecy jest przypisana do zmiennej „candle_open_price”.", @@ -212,7 +212,7 @@ "278684544": "uzyskaj listę podrzędną z # od końca", "282319001": "Sprawdź swój obraz", "282564053": "Następnie będziemy potrzebować potwierdzenia adresu.", - "283830551": "Your address doesn’t match your profile", + "283830551": "Twój adres nie pasuje do Twojego profilu", "283986166": "Opcja samo-wykluczenia dostępna na stronie internetowej odnosi się wyłącznie do Twojego konta {{brand_website_name}} i nie obejmuje innych firm czy witryn internetowych.", "284527272": "anty-tryb", "284772879": "Kontrakt", @@ -574,7 +574,7 @@ "745656178": "Użyj tego bloku, aby sprzedać swój kontrakt po cenie rynkowej.", "745674059": "Zwraca określony znak z danego ciągu tekstu zgodnie z wybraną opcją. ", "746112978": "Aktualizacja może zająć komputerowi kilka sekund", - "750886728": "Switch to your real account to submit your documents", + "750886728": "Przejdź na swoje konto rzeczywiste, aby przesłać dokumenty", "751692023": "<0>Nie gwarantujemy zwrotu środków w przypadku dokonania złego transferu.", "752024971": "Osiągnięto maksymalną liczbę cyfr", "752633544": "Po osiągnięciu określonych progów będzie konieczne przesłanie dokumentu potwierdzającego tożsamość i adres", @@ -872,7 +872,7 @@ "1112582372": "Czas trwania interwału", "1113119682": "Ten blok daje wartość wybranej świecy z listy świec.", "1113292761": "Mniej niż 8 MB", - "1113433728": "Resubmit your proof of identity and address", + "1113433728": "Prześlij ponownie potwierdzenie tożsamości i adresu", "1117863275": "Bezpieczeństwo", "1118294625": "Wybrano opcję samodzielnego wykluczenia na naszej stronie do dnia {{exclusion_end}}. Jeśli nie możesz zawrzeć zakładu lub wpłacić środków po okresie samodzielnego wykluczenia, skontaktuj się z nami przez czat na żywo.", "1119887091": "Weryfikacja", @@ -1114,7 +1114,7 @@ "1396417530": "Indeks rynku niedźwiedzia", "1397628594": "Niewystarczające środki", "1399620764": "Jesteśmy zobowiązani prawnie do pozyskania Twoich informacji finansowych.", - "1400341216": "We’ll review your documents and notify you of its status within 1 to 3 days.", + "1400341216": "Sprawdzimy Twoje dokumenty i powiadomimy Cię o statusie w ciągu 1-3 dni.", "1400637999": "(Wszystkie pola są wymagane)", "1400732866": "Widok z aparatu", "1400962248": "Wysoka-Zamknięcia", @@ -1260,11 +1260,11 @@ "1584109614": "Lista ciągu ticków", "1584578483": "Ponad 50 aktywów: forex, akcje, indeksy giełdowe, indeksy syntetyczne i kryptowaluty.", "1584936297": "Plik XML zawiera nieobsługiwane elementy. Sprawdź lub zmień plik.", - "1585859194": "We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts, your Deriv fiat and {{platform_name_derivez}} accounts, and your Deriv fiat and {{platform_name_dxtrade}} accounts.", + "1585859194": "Za przelewy w różnych walutach między kontem Deriv w walucie fiducjarnej a kontem {{platform_name_mt5}} lub kontem Deriv w walucie fiducjarnej a kontami {{platform_name_derivez}} lub {{platform_name_dxtrade}} pobierana jest opłata w wysokości 1%.", "1587046102": "Dokumenty z tego kraju nie są obecnie obsługiwane — spróbuj użyć inny rodzaj dokumentu", "1589640950": "Nie można odsprzedać tego kontraktu.", "1589702653": "Potwierdzenie adresu", - "1591933071": "Resubmit document", + "1591933071": "Prześlij dokument ponownie", "1593010588": "Zaloguj teraz", "1594147169": "Wróć za", "1594322503": "Dostępna jest opcja sprzedaży", @@ -1346,7 +1346,7 @@ "1694517345": "Wprowadź nowy adres e-mail", "1695807119": "Nie udało się załadować bloków Dysku Google", "1700233813": "Przelew z konta {{selected_value}} nie jest dozwolony. Wybierz inne konto z rozwijanej listy", - "1701447705": "Please update your address", + "1701447705": "Zaktualizuj swój adres", "1704656659": "Ile masz doświadczenia w inwestowaniu w kontrakty CFD?", "1708413635": "Dla Twojego konta {{currency_name}} ({{currency}})", "1709859601": "Czas punktu wyjściowego", @@ -1417,7 +1417,7 @@ "1778893716": "Kliknij tutaj", "1779519903": "Akceptowane są tylko liczby.", "1780770384": "Ten blok daje losową wartość ułamkową między 0,0 a 1,0.", - "1781393492": "We do not charge a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts, your Deriv fiat and {{platform_name_derivez}} accounts and your Deriv fiat and {{platform_name_dxtrade}} accounts.", + "1781393492": "Za przelewy w tych samych walutach między kontem Deriv w walucie fiducjarnej a kontem {{platform_name_mt5}} lub kontem Deriv w walucie fiducjarnej a kontami {{platform_name_derivez}} lub {{platform_name_dxtrade}} nie jest pobierana opłata.", "1782308283": "Szybka strategia", "1782395995": "Szacowanie ostatniej cyfry", "1782690282": "Menu bloków", @@ -1428,7 +1428,7 @@ "1788966083": "01-07-1999", "1789497185": "Upewnij się, że dane paszportowe są widoczne i czytelne, nie są zamazane ani prześwietlone", "1790770969": "Główne-FX (standardowe/mikro partie), Drugorzędne-FX, Towary, Kryptowaluty", - "1791017883": "Check out this <0>user guide.", + "1791017883": "Zapoznaj się z tym <0>podręcznikiem użytkownika.", "1791432284": "Szukaj kraju", "1791971912": "Ostatnie", "1793913365": "Aby wpłacić pieniądze, przejdź na swoje konto {{currency_symbol}}.", @@ -1549,7 +1549,7 @@ "1918832194": "Brak doświadczenia", "1919030163": "Wskazówki, jak zrobić dobre zdjęcie selfie", "1919594496": "Strona {{website_name}} nie jest powiązana z żadnym pośrednikiem płatności. Klienci zawierają transakcje z pośrednikami płatności na swoje własne ryzyko. Zaleca się klientom sprawdzenie referencji pośredników płatności i rzetelność wszelkich informacji dot. pośredników płatności (na {{website_name}} lub w innym miejscu) przed skorzystaniem z ich usług.", - "1919694313": "To start trading, transfer funds from your Deriv account into this account.", + "1919694313": "Aby rozpocząć inwestowanie, przelej środki z konta Deriv na to konto.", "1920217537": "Porównaj", "1920468180": "Jak używać bloku SMA", "1921634159": "Kilka informacji osobowych", @@ -1656,7 +1656,7 @@ "2037481040": "Wybierz sposób zasilenia swojego konta", "2037665157": "Rozszerz wszystkie bloki", "2037906477": "uzyskaj listę podrzędną z #", - "2042023623": "We’re reviewing your documents. This should take about 5 minutes.", + "2042023623": "Sprawdzamy Twoje dokumenty. Powinno to zająć około 5 minut.", "2042050260": "- Cena zakupu: cena zakupu (stawka) kontraktu", "2042115724": "Prześlij zrzut ekranu swojego konta i strony danych osobowych ze swoim imieniem i nazwiskiem, numerem konta, numerem telefonu i adresem e-mail.", "2042778835": "Polityka składania skarg, która może ulegać zmianom co jakiś czas, ma zastosowanie w odniesieniu do Twojego konta zarejestrowanego przez {{legal_entity_name}}.", @@ -2226,7 +2226,7 @@ "-38915613": "Niezapisane zmiany", "-2137450250": "Masz niezapisane zmiany. Czy na pewno chcesz odrzucić zmiany i opuścić stronę?", "-1067082004": "Opuść sekcję Ustawienia", - "-1982432743": "It appears that the address in your document doesn’t match the address\n in your Deriv profile. Please update your personal details now with the\n correct address.", + "-1982432743": "Wygląda na to, że adres w dokumencie nie pasuje do adresu\n w Twoim profilu Deriv. Zaktualizuj teraz swoje dane osobowe, podając\n poprawny adres.", "-1451334536": "Kontynuuj handlowanie", "-1525879032": "Twój dokument potwierdzający adres jest już nieważny. Prześlij potwierdzenie ponownie.", "-1425489838": "Weryfikacja potwierdzenia adresu nie jest wymagana", @@ -2346,11 +2346,11 @@ "-2056016338": "Za przelewy w tych samych walutach między kontem Deriv w walucie fiducjarnej a kontem {{platform_name_mt5}} nie pobierana jest opłata.", "-599632330": "Za przelewy w różnych walutach między kontem Deriv w walucie fiducjarnej a kontem {{platform_name_mt5}} lub kontem Deriv w walucie fiducjarnej a kontem {{platform_name_dxtrade}} pobierana jest opłata w wysokości 1% kwoty transferu.", "-1196994774": "Za przelewy między Twoimi kontami Deriv w kryptowalucie pobierana jest opłata w wysokości 2% kwoty transferu lub {{minimum_fee}} {{currency}}, w zależności od tego, która kwota jest wyższa.", - "-1361372445": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts, your Deriv cryptocurrency and {{platform_name_derivez}} accounts, and your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.", + "-1361372445": "Za przelewy między kontem Deriv w kryptowalucie a kontem Deriv MT5 lub kontem Deriv w kryptowalucie a kontem {{platform_name_derivez}} lub {{platform_name_dxtrade}} pobierana jest opłata w wysokości 2% kwoty transferu lub {{minimum_fee}} {{currency}}, w zależności od tego, która kwota jest wyższa.", "-993556039": "Za przelewy między kontem Deriv w kryptowalucie a kontem Deriv MT5 lub kontem Deriv w kryptowalucie a kontem {{platform_name_dxtrade}} pobierana jest opłata w wysokości 2% kwoty transferu lub {{minimum_fee}} {{currency}}, w zależności od tego, która kwota jest wyższa.", "-1382702462": "Za przelewy między kontem Deriv w kryptowalucie a kontem Deriv MT5 pobierana jest opłata w wysokości 2% kwoty transferu lub {{minimum_fee}} {{currency}}, w zależności od tego, która kwota jest wyższa.", - "-1995859618": "You may transfer between your Deriv fiat, cryptocurrency, {{platform_name_mt5}}, {{platform_name_derivez}} and {{platform_name_dxtrade}} accounts.", - "-545616470": "Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts, up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts, up to {{ allowed_derivez }} transfers between your Deriv and {{platform_name_derivez}} accounts, and up to {{ allowed_dxtrade }} transfers between your Deriv and {{platform_name_dxtrade}} accounts.", + "-1995859618": "Możesz przelać środki między fidujarnym kontem Deriv, kontem w kryptowalucie, kontem {{platform_name_mt5}}, {{platform_name_derivez}} i {{platform_name_dxtrade}}.", + "-545616470": "Każdego dnia możesz zrealizować do {{ allowed_internal }} przelewów między Twoimi kontami Deriv, do {{ allowed_mt5 }} przelewów między Twoim kontem Deriv a {{platform_name_mt5}}, do {{ allowed_derivez }} przelewów między Twoim kontem Deriv a {{platform_name_derivez}} oraz do {{ allowed_dxtrade }} przelewów między Twoim kontem Deriv a {{platform_name_dxtrade}}.", "-1151983985": "Limity przelewów mogą się zmieniać w zależności od kursów wymiany walut.", "-1747571263": "Ten przelew może być niemożliwy do zrealizowania.", "-757062699": "Transfery mogą być niedostępne z powodu wysokiej zmienności lub problemów technicznych oraz w okresie zamknięcia giełd walutowych.", @@ -2750,7 +2750,7 @@ "-1125797291": "Zaktualizowano hasło.", "-157145612": "Zaloguj się przy użyciu zaktualizowanego hasła.", "-1728185398": "Prześlij ponownie potwierdzenie adresu", - "-612396514": "Please resubmit your proof of address.", + "-612396514": "Prosimy o ponowne przesłanie dowodu adresu.", "-1519764694": "Twoje potwierdzenie adresu zostało zweryfikowane.", "-1961967032": "Prześlij ponownie potwierdzenie tożsamości", "-117048458": "Prześlij potwierdzenie tożsamości.", @@ -2778,10 +2778,10 @@ "-1834929362": "Prześlij mój dokument", "-1043638404": "<0>Weryfikacja dowodu własności <1>nie powiodła się", "-1766760306": "<0><1>Prześlij dokument <2>z poprawnymi danymi.<3>", - "-2142540205": "It appears that the address in your document doesn’t match the address in your Deriv profile. Please update your personal details now with the correct address.", - "-482715448": "Go to Personal details", - "-2072411961": "Your proof of address has been verified", - "-384887227": "Update the address in your profile.", + "-2142540205": "Wygląda na to, że adres w dokumencie nie pasuje do adresu w Twoim profilu Deriv. Zaktualizuj teraz swoje dane osobowe, podając poprawny adres.", + "-482715448": "Przejdź do danych osobowych", + "-2072411961": "Twój dowód adresu został zweryfikowany", + "-384887227": "Zaktualizuj adres w swoim profilu.", "-1998049070": "Jeśli zgadzasz się na wykorzystywanie przez nas plików cookies, kliknij Akceptuję. <0>Przeczytaj naszą politykę, aby uzyskać więcej informacji.", "-402093392": "Dodaj konto Deriv", "-277547429": "Konto Deriv pozwoli Ci wpłacić (i wypłacić) środki z konta MT5.", @@ -2923,10 +2923,10 @@ "-429248139": "5. Zastrzeżenie", "-818926350": "Komisja Finansowa akceptuje odwołania w ciągu 45 dni od daty zdarzenia i wyłącznie do uprzedniej próbie inwestora rozwiązania sprawy bezpośrednio z firmą.", "-358055541": "Umocnij swoje transakcje dzięki nowym narzędziom", - "-29496115": "We've partnered with Acuity to give you a suite of intuitive trading tools for MT5 so you can keep track of market events and trends, free of charge!<0/><0/>", - "-648669944": "Download the Acuity suite and take advantage of the <1>Macroeconomic Calendar, Market Alerts, Research Terminal, and <1>Signal Centre Trade Ideas without leaving your MT5 terminal.<0/><0/>", - "-794294380": "This suite is only available for Windows, and is most recommended for financial assets.", - "-922510206": "Need help using Acuity?", + "-29496115": "Nawiązaliśmy współpracę z Acuity, aby zapewnić Ci zestaw intuicyjnych narzędzi inwestycyjnych dla MT5, dzięki czemu możesz bezpłatnie śledzić wydarzenia rynkowe i trendy! <0/><0/>", + "-648669944": "Pobierz pakiet Acuity i skorzystaj z <1>kalendarza makroekonomicznego, alertów rynkowych, terminalu badawczego i <1>pomysłów inwestycyjnych Signal Centre bez opuszczania terminalu MT5.<0/><0/>", + "-794294380": "Ten pakiet jest dostępny tylko dla systemu Windows i najbardziej zalecany dla aktywów finansowych.", + "-922510206": "Potrzebujesz pomocy związanej z obsługą Acuity?", "-815070480": "Zastrzeżenie: Usługi inwestycyjne i informacje dostarczone przez Acuity nie powinny być interpretowane jako zachęcanie do inwestowania i/lub handlu. Deriv nie oferuje porad inwestycyjnych. Przeszłość nie jest przewodnikiem po przyszłych wynikach, a strategie, które działały w przeszłości, mogą nie działać w przyszłości.", "-2111521813": "Pobierz Acuity", "-175369516": "Witaj w Deriv X", @@ -2982,7 +2982,7 @@ "-712681566": "Wymiana między inwestorami", "-1267880283": "Pole {{field_name}} jest wymagane", "-2084509650": "Pole {{field_name}} ma niewłaściwy format.", - "-222283483": "Account opening reason*", + "-222283483": "Powód otwarcia konta*", "-1779241732": "Pierwsza linijka adresu jest w nieprawidłowym formacie.", "-188222339": "Nie może przekraczać {{max_number}} znaków.", "-1673422138": "Województwo jest w niewłaściwym formacie.", @@ -2996,15 +2996,15 @@ "-1982499699": "Poznaj {{platform_name_dbot}}", "-1567989247": "Prześlij potwierdzenie tożsamości i adresu", "-184453418": "Wprowadź swoje hasło {{platform}}", - "-393388362": "We’re reviewing your documents. This should take about 1 to 3 days.", + "-393388362": "Sprawdzamy Twoje dokumenty. Powinno to zająć około 1-3 dni.", "-790488576": "Nie pamiętasz hasła?", "-926547017": "Wprowadź swoje hasło {{platform}}, aby dodać konto {{platform}} {{account}} {{jurisdiction_shortcode}}.", "-1190393389": "Wprowadź swoje hasło {{platform}}, aby dodać konto {{platform}} {{account}}.", "-2057918502": "Wskazówka: Możliwe, że wprowadzono hasło Deriv, które różni się od hasła {{platform}}.", "-1769158315": "prawdziwe", "-700260448": "demo", - "-1936102840": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} account. ", - "-1570793523": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} account.", + "-1936102840": "Gratulacje, pomyślnie utworzono konto {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}}. ", + "-1570793523": "Gratulacje, Twoje konto {{category}} <0>{{platform}} <1>{{type}} zostało utworzone.", "-1928229820": "Zresetuj hasło inwestora Deriv X", "-1087845020": "główne", "-1950683866": "inwestor", diff --git a/packages/translations/src/translations/th.json b/packages/translations/src/translations/th.json index cf7156aaf960..5acf7fce74dc 100644 --- a/packages/translations/src/translations/th.json +++ b/packages/translations/src/translations/th.json @@ -76,7 +76,7 @@ "111718006": "เวลาสิ้นสุด", "111931529": "ยอดรวมเงินทุนทรัพย์สูงสุดในรอบ 7 วัน", "113378532": "ETH/USD", - "113884303": "German Index", + "113884303": "ดัชนีเยอรมัน", "115032488": "ราคาซื้อและกำไร/ขาดทุน", "116005488": "ตัวบ่งชี้", "117318539": "รหัสผ่านควรประกอบด้วยอักษรภาษาอังกฤษตัวพิมพ์เล็กและตัวพิมพ์ใหญ่พร้อมกับตัวเลข", @@ -225,7 +225,7 @@ "292887559": "ไม่อนุญาตให้โอนไปที่ {{selected_value}} โปรดเลือกบัญชีอื่นจากเมนูด้านล่าง", "294305803": "จัดการการตั้งค่าบัญชี", "294335229": "ขายที่ราคาตลาด", - "300762428": "Swiss Index", + "300762428": "ดัชนีสวิส", "303959005": "ราคาขาย:", "304309961": "เรากําลังตรวจสอบคําขอถอนเงินของคุณ คุณอาจยังสามารถยกเลิกธุรกรรมนี้ได้หากต้องการ แต่เมื่อใดที่เราเริ่มการประมวลผลแล้ว คุณจะไม่สามารถทำการยกเลิกได้", "310234308": "ให้ปิดตำแหน่งการค้าทั้งหมดของคุณ", diff --git a/packages/translations/src/translations/tr.json b/packages/translations/src/translations/tr.json index cdc6c2aa5031..9389b48f94c5 100644 --- a/packages/translations/src/translations/tr.json +++ b/packages/translations/src/translations/tr.json @@ -180,7 +180,7 @@ "248909149": "Telefonunuza güvenli bir bağlantı gönder", "249908265": "{{- residence}} vatandaşı mısınız?", "251134918": "Hesap bilgileri", - "251322536": "Deriv EZ accounts", + "251322536": "Deriv EZ hesapları", "251445658": "Koyu tema", "251882697": "Teşekkür ederim! Cevabınız sistemimize kaydedildi. Devam etmek için<0/><0/> lütfen 'Tamam' düğmesine tıklayın.", "254912581": "Bu blok EMA'ya benziyor, ancak size giriş listesine ve verilen süreye göre tüm EMA hattını verir.", @@ -196,7 +196,7 @@ "265644304": "Ticaret türleri", "267992618": "Platformlarda önemli özellikler veya işlevler yoktur.", "268940240": "Bakiyeniz ({{format_balance}}} {{currency}}), izin verilen geçerli minimum çekilme oranından ({{format_min_withdraw_amount}}} {{currency}}) düşük. Para çekme işlemine devam etmek için lütfen hesabınızın üstünü tamamlayın.", - "269322978": "Deposit with your local currency via peer-to-peer exchange with fellow traders in your country.", + "269322978": "Ülkenizdeki diğer tüccarlarla uçtan uca değişim ile yerel para biriminize para yatırınız.", "269607721": "Yükle", "270339490": "\"Üzerinde\" seçeneğini belirlerseniz, son tikin son basamağı tahmininizden büyükse ödemeyi kazanırsınız.", "270610771": "Bu örnekte, bir mumun açılış fiyatı \"candle_open_price\" değişkenine atanır.", @@ -212,7 +212,7 @@ "278684544": "sondan # dan alt listesi alın", "282319001": "Resminizi kontrol edin", "282564053": "Ardından, adres kanıtınıza ihtiyacımız olacak.", - "283830551": "Your address doesn’t match your profile", + "283830551": "Adresiniz profilinizle eşleşmiyor", "283986166": "Web sitesinde kendini-dışlama yalnızca {{brand_website_name}} hesabınız için geçerlidir ve diğer şirketleri ve web sitelerini içermez.", "284527272": "antimode", "284772879": "Sözleşme", @@ -574,7 +574,7 @@ "745656178": "Sözleşmenizi piyasa fiyatı üzerinden satmak için bu bloğu kullanın.", "745674059": "Seçili seçeneğe göre belirli bir metin dizisinden belirli bir karakteri geri getirir. ", "746112978": "Bilgisayarınızın güncellenmesi birkaç saniye sürebilir", - "750886728": "Switch to your real account to submit your documents", + "750886728": "Belgelerinizi göndermek için gerçek hesabınıza geçin", "751692023": "Yanlış bir transfer yaparsanız geri iade garantisi <0>vermiyoruz.", "752024971": "Maksimum basamak sayısına ulaşıldı", "752633544": "Belirli eşiklere ulaştığınızda kimlik ve adres belgesi sunmanız gerekecektir", @@ -872,7 +872,7 @@ "1112582372": "Aralık süresi", "1113119682": "Bu blok, bir mum listesinden seçilen mum değerini verir.", "1113292761": "8 Mb'den az", - "1113433728": "Resubmit your proof of identity and address", + "1113433728": "Kimlik kanıtınızı ve adresinizi yeniden gönderin", "1117863275": "Güvenlik ve emniyet", "1118294625": "{{exclusion_end}} yılına kadar kendinizi web sitemizde işlem yapmayı dışlamayı seçtiniz. Kendini-dışlama döneminizden sonra bir ticaret veya para yatırma işlemi yapamazsınız. Lütfen canlı sohbet yoluyla bizimle iletişime geçin.", "1119887091": "Doğrulama", @@ -1114,7 +1114,7 @@ "1396417530": "Ayı Piyasası Endeksi", "1397628594": "Yetersiz fon", "1399620764": "Yasal olarak finansal bilgilerinizi istemek zorundayız.", - "1400341216": "We’ll review your documents and notify you of its status within 1 to 3 days.", + "1400341216": "Belgelerinizi inceleyeceğiz ve 1 ila 3 gün içinde durumunu size bildireceğiz.", "1400637999": "(Tüm alanlar zorunludur)", "1400732866": "Kameradan görünüm", "1400962248": "Yüksek-Kapanış", @@ -1260,11 +1260,11 @@ "1584109614": "Tikler Dizesi Listesi", "1584578483": "50'den fazla varlık: forex, hisse senetleri, hisse senedi endeksleri, sentetik endeksler ve kripto para birimleri.", "1584936297": "XML dosyası desteklenmeyen öğeler içeriyor. Lütfen dosyayı kontrol edin veya değiştirin.", - "1585859194": "We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts, your Deriv fiat and {{platform_name_derivez}} accounts, and your Deriv fiat and {{platform_name_dxtrade}} accounts.", + "1585859194": "Deriv fiat ve {{platform_name_mt5}} hesaplarınız, Deriv fiat ve {{platform_name_derivez}} hesaplarınız ve Deriv fiat ve {{platform_name_dxtrade}} hesaplarınız arasındaki farklı para birimlerindeki transferler için %1 transfer ücreti alacağız.", "1587046102": "O ülkedeki belgeler şu anda desteklenmiyor — başka bir belge türü deneyin", "1589640950": "Bu sözleşmenin yeniden satışa sunulması sunulmamaktadır.", "1589702653": "Adres kanıtı", - "1591933071": "Resubmit document", + "1591933071": "Belgeyi yeniden gönder", "1593010588": "Login now", "1594147169": "Lütfen tekrar gelin", "1594322503": "Satış yapılabilir", @@ -1346,7 +1346,7 @@ "1694517345": "Yeni bir e-posta adresi girin", "1695807119": "Google Drive blokları yüklenemedi", "1700233813": "{{selected_value}} konumundan aktarıma izin verilmiyor. Lütfen açılır listeden başka bir hesap seçin", - "1701447705": "Please update your address", + "1701447705": "Lütfen adresinizi güncelleyin", "1704656659": "CFD ticaretinde ne kadar deneyiminiz var?", "1708413635": "{{currency_name}} ({{currency}}) hesabınız için", "1709859601": "Çıkış Noktası Zamanı", @@ -1417,7 +1417,7 @@ "1778893716": "Buraya tıklayın", "1779519903": "Geçerli bir sayı olmalıdır.", "1780770384": "Bu blok size 0.0 ile 1.0 arasında rastgele bir fraksiyon verir.", - "1781393492": "We do not charge a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts, your Deriv fiat and {{platform_name_derivez}} accounts and your Deriv fiat and {{platform_name_dxtrade}} accounts.", + "1781393492": "Deriv fiatınız ile {{platform_name_mt5}} hesaplarınız, Deriv fiatınız ve {{platform_name_derivez}} hesaplarınız ve Deriv fiatınız ve {{platform_name_dxtrade}} hesaplarınız arasındaki aynı para birimindeki transferler için transfer ücreti almayız.", "1782308283": "Hızlı strateji", "1782395995": "Son Basamak Tahmini", "1782690282": "Bloklar menüsü", @@ -1428,7 +1428,7 @@ "1788966083": "01-07-1999", "1789497185": "Pasaport ayrıntılarınızın bulanıklık veya parlama olmadan okunabildiğinden emin olun", "1790770969": "FX - majörler (standart/mikro lotlar), FX - minörler, Emtia, Kripto para birimleri", - "1791017883": "Check out this <0>user guide.", + "1791017883": "Bu <0>kullanım kılavuzuna göz atın.", "1791432284": "Ülke ara", "1791971912": "Geçmiş", "1793913365": "Para yatırmak için lütfen {{currency_symbol}} hesabınıza geçin.", @@ -1549,7 +1549,7 @@ "1918832194": "Deneyim yok", "1919030163": "İyi bir selfie yapmak için ipuçları", "1919594496": "{{website_name}} is not affiliated with any payment agents. Customers deal with payment agents at their sole risk. Customers are advised to check the credentials of payment agents and the accuracy of any information about payment agents (on {{website_name}} or elsewhere) before using their services.", - "1919694313": "To start trading, transfer funds from your Deriv account into this account.", + "1919694313": "Ticarete başlamak için Deriv hesabınızdan bu hesaba para aktarın.", "1920217537": "Karşılaştır", "1920468180": "SMA bloğu nasıl kullanılır", "1921634159": "Birkaç kişisel detay", @@ -1656,7 +1656,7 @@ "2037481040": "Hesabınızı fonlamak için bir yol seçin", "2037665157": "Tüm Blokları Genişlet", "2037906477": "# dan alt liste alın", - "2042023623": "We’re reviewing your documents. This should take about 5 minutes.", + "2042023623": "Belgelerinizi inceliyoruz. Bu yaklaşık 5 dakika sürmelidir.", "2042050260": "- Satın alma fiyatı: sözleşmenin satın alma fiyatı (bahisi)", "2042115724": "Hesabınızın ve kişisel bilgiler sayfanızın ekran görüntüsünü adınızla birlikte yükleyin, hesap numarası, telefon numarası, ve e-posta adresi.", "2042778835": "Zaman zaman değişebilen bu şikayet politikası, {{legal_entity_name}} ile kayıtlı hesabınız için geçerlidir.", @@ -2226,7 +2226,7 @@ "-38915613": "Kaydedilmemiş değişiklikler", "-2137450250": "Kaydedilmemiş değişiklikleriniz var. Değişiklikleri iptal etmek ve bu sayfadan çıkmak istediğinizden emin misiniz?", "-1067082004": "Ayarlardan Çık", - "-1982432743": "It appears that the address in your document doesn’t match the address\n in your Deriv profile. Please update your personal details now with the\n correct address.", + "-1982432743": "Görünüşe göre belgenizdeki adres, adresle eşleşmiyor\n Deriv profilinizde. Lütfen kişisel bilgilerinizi şimdi\n Doğru adres.", "-1451334536": "Alım satım işlemine devam et", "-1525879032": "Adres kanıtı belgelerinizin süresi doldu. Lütfen tekrar gönderin.", "-1425489838": "Adres doğrulama belgesi gerekli değil", @@ -2346,11 +2346,11 @@ "-2056016338": "Deriv fiat ve {{platform_name_mt5}} hesaplarınız arasında ayrı ayrı para birimindeki transferler için sizden transfer ücreti alınmaz.", "-599632330": "Deriv fiat ve {{platform_name_mt5}} hesaplarınız arasında ve Deriv fiat ve {{platform_name_dxtrade}} hesaplarınız arasında farklı para birimindeki transferler için %1 transfer ücreti alırız.", "-1196994774": "Deriv kripto para hesaplarınız arasındaki transferler için %2 transfer ücreti veya {{minimum_fee}} {{currency}}, hangisi daha yüksekse, tahsil edeceğiz.", - "-1361372445": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts, your Deriv cryptocurrency and {{platform_name_derivez}} accounts, and your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.", + "-1361372445": "2 transfer ücreti veya {{minimum_fee}} alacağız. Deriv cryptocurrency ve Deriv MT5 hesaplarınız, Deriv cryptocurrency ve {{platform_name_derivez}} hesaplarınız ve Deriv cryptocurrency ve {{platform_name_dxtrade}} hesaplarınız arasındaki transferler için {{currency}}, hangisi daha yüksekse.", "-993556039": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts and between your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.", "-1382702462": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts.", - "-1995859618": "You may transfer between your Deriv fiat, cryptocurrency, {{platform_name_mt5}}, {{platform_name_derivez}} and {{platform_name_dxtrade}} accounts.", - "-545616470": "Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts, up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts, up to {{ allowed_derivez }} transfers between your Deriv and {{platform_name_derivez}} accounts, and up to {{ allowed_dxtrade }} transfers between your Deriv and {{platform_name_dxtrade}} accounts.", + "-1995859618": "Deriv fiat, kripto para birimi, {{platform_name_mt5}}, {{platform_name_derivez}} ve {{platform_name_dxtrade}} hesaplarınız arasında transfer yapabilirsiniz.", + "-545616470": "Her gün, telafi edebilirsin {{ allowed_internal }} Deriv hesaplarınız arasında transferler, kadar {{ allowed_mt5 }} Deriv\"iniz ile {{platform_name_mt5}} hesaplarınız arasında transferler, kadar {{ allowed_derivez }} Deriv\"iniz arasında transferler ve {{platform_name_derivez}} hesaplar, ve en fazla {{ allowed_dxtrade }} Deriv\"iniz arasında transfer {{platform_name_dxtrade}} hesaplar.", "-1151983985": "Transfer limitleri döviz kurlarına bağlı olarak değişiklik gösterebilir.", "-1747571263": "Bazı transferlerin mümkün olmayabileceğini lütfen unutmayın.", "-757062699": "Transferler, yüksek volatilite veya teknik sorunlar nedeniyle ve döviz piyasaları kapalı olduğunda kullanılamayabilir.", @@ -2750,7 +2750,7 @@ "-1125797291": "Parola güncellendi.", "-157145612": "Lütfen güncellenmiş parolanızla oturum açın.", "-1728185398": "Adres kanıtını yeniden gönderin", - "-612396514": "Please resubmit your proof of address.", + "-612396514": "Lütfen adres kanıtınızı yeniden gönderin.", "-1519764694": "Your proof of address is verified.", "-1961967032": "Kimlik kanıtını yeniden gönderin", "-117048458": "Please submit your proof of identity.", @@ -2778,10 +2778,10 @@ "-1834929362": "Belgemi yükle", "-1043638404": "<0>Sahiplik doğrulaması kanıtı <1>başarısız oldu", "-1766760306": "<0><1>Lütfen belgenizi doğru ayrıntılarla yükleyin<2>.<3>", - "-2142540205": "It appears that the address in your document doesn’t match the address in your Deriv profile. Please update your personal details now with the correct address.", - "-482715448": "Go to Personal details", - "-2072411961": "Your proof of address has been verified", - "-384887227": "Update the address in your profile.", + "-2142540205": "Görünüşe göre belgenizdeki adres, adresle eşleşmiyor Deriv profilinizde. Lütfen kişisel bilgilerinizi şimdi Doğru adres.", + "-482715448": "Kişisel ayrıntılara git", + "-2072411961": "Adres kanıtınız doğrulandı", + "-384887227": "Profilinizdeki adresi güncelleyin.", "-1998049070": "Çerezleri kullanmayı kabul ediyorsanız Kabul Et'i tıklayın. Daha fazla bilgi için, <0>politikamıza bakın.", "-402093392": "Deriv Hesabı Ekle", "-277547429": "Bir Deriv hesabı, MT5 hesap(lar) ınıza para yatırmanıza (ve para çekmenize) olanak tanır.", @@ -2923,10 +2923,10 @@ "-429248139": "5. Yasal Uyarı", "-818926350": "Mali Komisyon, olayın tarihinden itibaren 45 gün içerisinde ve ancak ticaret yapan kişi sorunu doğrudan şirketle çözmeye çalıştıktan sonra itirazları kabul eder.", "-358055541": "Harika yeni araçlarla işlemlerinizi güçlendirin", - "-29496115": "We've partnered with Acuity to give you a suite of intuitive trading tools for MT5 so you can keep track of market events and trends, free of charge!<0/><0/>", - "-648669944": "Download the Acuity suite and take advantage of the <1>Macroeconomic Calendar, Market Alerts, Research Terminal, and <1>Signal Centre Trade Ideas without leaving your MT5 terminal.<0/><0/>", - "-794294380": "This suite is only available for Windows, and is most recommended for financial assets.", - "-922510206": "Need help using Acuity?", + "-29496115": "Piyasa olaylarını ve trendlerini ücretsiz olarak takip edebilmeniz için size MT5 için sezgisel ticaret araçları paketi sunmak için Acuity ile ortaklık kurduk! <0/><0/>", + "-648669944": "Acuity paketini indirin ve MT5 <1>terminalinizden çıkmadan Makroekonomik Takvim, Pazar Uyarıları, Araştırma Terminali ve <1>Sinyal Merkezi Ticaret Fikirlerinden yararlanın.<0/><0/>", + "-794294380": "Bu paket yalnızca Windows için kullanılabilir ve en çok finansal varlıklar için önerilir.", + "-922510206": "Acuity\"yi kullanma konusunda yardıma mı ihtiyacınız var?", "-815070480": "Feragatname: Acuity tarafından sağlanan ticaret hizmetleri ve bilgiler, yatırım ve/veya ticaret için bir talep olarak yorumlanmamalıdır. Deriv yatırım tavsiyesi sunmamaktadır. Geçmiş, gelecekteki performans için bir rehber değildir, ve geçmişte işe yarayan stratejiler gelecekte işe yaramayabilir.", "-2111521813": "Indir Acuity", "-175369516": "Deriv X'e hoş geldiniz", @@ -2982,7 +2982,7 @@ "-712681566": "Uçtan uca değişim", "-1267880283": "{{field_name}} gereklidir", "-2084509650": "{{field_name}} düzgün biçimlendirilmemiş.", - "-222283483": "Account opening reason*", + "-222283483": "Hesap açma nedeni*", "-1779241732": "Adresin ilk satırı doğru biçimde değil.", "-188222339": "Bu, {{max_number}} karakteri aşmamalıdır.", "-1673422138": "Bölge/İl uygun biçimde değil.", @@ -2996,15 +2996,15 @@ "-1982499699": "{{platform_name_dbot}} Keşfedin", "-1567989247": "Kimlik belgenizi ve adresinizi gönderin", "-184453418": "{{platform}} şifrenizi girin", - "-393388362": "We’re reviewing your documents. This should take about 1 to 3 days.", + "-393388362": "Belgelerinizi inceliyoruz. Bu yaklaşık 1 ila 3 gün sürmelidir.", "-790488576": "Şifreni mi unuttun?", "-926547017": "Enter your {{platform}} password to add a {{platform}} {{account}} {{jurisdiction_shortcode}} account.", "-1190393389": "{{platform}} {{account}} hesabı eklemek için {{platform}} şifrenizi girin.", "-2057918502": "İpucu: {{platform}} parolanızdan farklı olan Deriv parolanızı girmiş olabilirsiniz.", "-1769158315": "gerçek", "-700260448": "demo", - "-1936102840": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} account. ", - "-1570793523": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} account.", + "-1936102840": "Tebrikler, {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} hesabınızı başarıyla oluşturdunuz. ", + "-1570793523": "Tebrikler, {{category}}<0>{{platform}}<1>{{type}} hesabınızı başarıyla oluşturdunuz.", "-1928229820": "Deriv X yatırımcı parolasını sıfırla", "-1087845020": "ana", "-1950683866": "yatırımcı", diff --git a/packages/translations/src/translations/vi.json b/packages/translations/src/translations/vi.json index 8eae233ef118..781a0ab19887 100644 --- a/packages/translations/src/translations/vi.json +++ b/packages/translations/src/translations/vi.json @@ -180,7 +180,7 @@ "248909149": "Gửi đường dẫn an toàn tới điện thoại", "249908265": "Bạn có phải là công dân tại {{- residence}}?", "251134918": "Thông tin tài khoản", - "251322536": "Deriv EZ accounts", + "251322536": "Tài khoản Deriv EZ", "251445658": "Nền tối", "251882697": "Cảm ơn bạn! Phản hồi của bạn đã được ghi lại vào hệ thống của chúng tôi.<0/><0/> Vui lòng nhấp vào “OK” để tiếp tục.", "254912581": "Khung này tương tự như EMA, ngoại trừ việc nó cung cấp cho bạn toàn bộ dòng EMA dựa trên danh sách đầu vào và khoảng thời gian nhất định.", @@ -196,7 +196,7 @@ "265644304": "Kiểu giao dịch", "267992618": "Các nền tảng thiếu các tính năng hoặc chức năng thiết yếu.", "268940240": "Số dư của bạn ({{format_balance}} {{currency}}) ít hơn số tiền tối thiểu được phép rút hiện tại ({{format_min_withdraw_amount}} {{currency}}). Vui lòng nạp tiền vào tài khoản để tiếp tục rút tiền.", - "269322978": "Deposit with your local currency via peer-to-peer exchange with fellow traders in your country.", + "269322978": "Nạp tiền với tiền tệ tại nơi bạn sống qua giao dịch ngang hàng với các người dùng khác tại quốc gia của bạn.", "269607721": "Tải lên", "270339490": "Nếu bạn chọn \"Trên\", bạn sẽ giành chiến thắng nếu chữ số cuối cùng của tick cuối cùng lớn hơn so với dự đoán bạn đưa ra.", "270610771": "Trong ví dụ này, giá bắt đầu của một nến được gán vào biến \"candle_open_price\".", @@ -212,7 +212,7 @@ "278684544": "lấy danh sách phụ # từ cuối", "282319001": "Hãy kiểm tra ảnh của bạn", "282564053": "Tiếp theo, chúng tôi sẽ cần bằng chứng địa chỉ của bạn.", - "283830551": "Your address doesn’t match your profile", + "283830551": "Địa chỉ của bạn không khớp với hồ sơ của bạn", "283986166": "Tự loại trừ trên trang web này chỉ áp dụng cho tài khoản {{brand_website_name}} của bạn và không bao gồm các công ty hoặc trang web khác.", "284527272": "antimode", "284772879": "Hợp đồng", @@ -574,7 +574,7 @@ "745656178": "Sử dụng khung này để bán hợp đồng của bạn \btại giá thị trường.", "745674059": "Trả về ký tự cụ thể từ một chuỗi văn bản đã cho theo tùy chọn. ", "746112978": "Máy tính của bạn có thể mất vài giây để cập nhật", - "750886728": "Switch to your real account to submit your documents", + "750886728": "Chuyển sang tài khoản thực của bạn để gửi tài liệu của bạn", "751692023": "Chúng tôi <0>không đảm bảo hoàn tiền nếu bạn chuyển khoản sai.", "752024971": "Đạt số chữ số tối đa", "752633544": "Bạn sẽ cần phải nộp bằng chứng danh tính và địa chỉ khi bạn đạt đến một số ngưỡng nhất định", @@ -872,7 +872,7 @@ "1112582372": "Khoảng thời gian", "1113119682": "K\u001dhung này cung cấp cho bạn giá trị nến đã chọn từ danh sách nến.", "1113292761": "Ít hơn 8MB", - "1113433728": "Resubmit your proof of identity and address", + "1113433728": "Nộp lại chứng minh danh tính và địa chỉ", "1117863275": "Bảo mật và Riêng tư", "1118294625": "Bạn đã chọn loại trừ bản thân khỏi giao dịch trên trang web của chúng tôi cho đến {{exclusion_end}}. Nếu bạn không thể thực hiện giao dịch hoặc ký quỹ sau thời gian tự loại trừ của mình, vui lòng liên hệ với chúng tôi qua trò chuyện trực tuyến.", "1119887091": "Xác minh", @@ -1114,7 +1114,7 @@ "1396417530": "Chỉ số thị trường Bear", "1397628594": "Không đủ số dư", "1399620764": "Chúng tôi có nghĩa vụ pháp lý phải yêu cầu các thông tin tài chính của bạn.", - "1400341216": "We’ll review your documents and notify you of its status within 1 to 3 days.", + "1400341216": "Chúng tôi sẽ xem xét tài liệu và thông báo cho bạn về trạng thái của nó trong vòng 1 đến 3 ngày.", "1400637999": "(Yêu cầu nhập đủ tất cả các ô)", "1400732866": "Xem qua camera", "1400962248": "Cao-Đóng", @@ -1260,11 +1260,11 @@ "1584109614": "Danh sách chuỗi Ticks", "1584578483": "Hơn 50 tài sản: forex, cổ phiếu, chỉ số chứng khoán, chỉ số tổng hợp và cryptocurrencies.", "1584936297": "Tệp XML chứa các yếu tố không được hỗ trợ. Vui lòng kiểm tra hoặc sửa đổi tập tin.", - "1585859194": "We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts, your Deriv fiat and {{platform_name_derivez}} accounts, and your Deriv fiat and {{platform_name_dxtrade}} accounts.", + "1585859194": "Chúng tôi sẽ tính phí chuyển khoản 1% cho việc chuyển tiền bằng các loại tiền tệ khác nhau giữa tài khoản Div fiat và {{platform_name_mt5}} tài khoản của bạn, tài khoản Derov fiat và {{platform_name_derivez}} tài khoản của bạn, và Derov fiat và {{platform_name_dxtrade}} tài khoản của bạn.", "1587046102": "Tài liệu từ quốc gia này hiện tại chưa được hỗ trợ — thử loại tài liệu khác", "1589640950": "Bán lại hợp đồng này không được hỗ trợ.", "1589702653": "Xác minh địa chỉ", - "1591933071": "Resubmit document", + "1591933071": "Gửi lại tài liệu", "1593010588": "Login now", "1594147169": "Vui lòng quay lại", "1594322503": "Lựa chọn bán hiện khả dụng", @@ -1346,7 +1346,7 @@ "1694517345": "Nhập địa chỉ email mới", "1695807119": "Không thể tải các khung Google Drive", "1700233813": "Chuyển tiền từ {{selected_value}} không được phép, Vui lòng chọn một tài khoản khác từ danh sách cuộn", - "1701447705": "Please update your address", + "1701447705": "Vui lòng cập nhật địa chỉ của bạn", "1704656659": "Bạn có bao nhiêu kinh nghiệm trong giao dịch CFD?", "1708413635": "Cho tài khoản {{currency_name}} {{currency}} của bạn", "1709859601": "Thời gian chốt", @@ -1417,7 +1417,7 @@ "1778893716": "Bấm vào đây", "1779519903": "Nên là một số hợp lệ.", "1780770384": "Khung này cung cấp cho bạn một phân số ngẫu nhiên trong khoảng từ 0.0 đến 1.0.", - "1781393492": "We do not charge a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts, your Deriv fiat and {{platform_name_derivez}} accounts and your Deriv fiat and {{platform_name_dxtrade}} accounts.", + "1781393492": "Chúng tôi không tính phí chuyển khoản cho việc chuyển tiền bằng cùng một loại tiền tệ giữa tài khoản Div fiat và {{platform_name_mt5}} tài khoản của bạn, tài khoản Div fiat và {{platform_name_derivez}} tài khoản của bạn và Derov fiat và {{platform_name_dxtrade}} tài khoản của bạn.", "1782308283": "Chiến lược nhanh", "1782395995": "Dự đoán Chữ số Cuối cùng", "1782690282": "Menu Khung", @@ -1428,7 +1428,7 @@ "1788966083": "01-07-1999", "1789497185": "Đảm bảo rằng các chi tiết trên hộ chiếu của bạn rõ ràng, không bị mờ hoặc lóa", "1790770969": "Cặp tiền tệ chính (lô tiêu chuẩn/nhỏ), Cặp tiền tệ thứ yếu, Hàng hoá thương mại, Tiền điện tử", - "1791017883": "Check out this <0>user guide.", + "1791017883": "Xem <0>hướng dẫn sử dụng này.", "1791432284": "Tìm quốc gia của bạn", "1791971912": "Gần đây", "1793913365": "Để gửi tiền, vui lòng chuyển sang tài khoản {{currency_symbol}} của bạn.", @@ -1549,7 +1549,7 @@ "1918832194": "Không có kinh nghiệm", "1919030163": "Các mẹo để có một bức ảnh tự chụp đẹp", "1919594496": "{{website_name}} is not affiliated with any payment agents. Customers deal with payment agents at their sole risk. Customers are advised to check the credentials of payment agents and the accuracy of any information about payment agents (on {{website_name}} or elsewhere) before using their services.", - "1919694313": "To start trading, transfer funds from your Deriv account into this account.", + "1919694313": "Để bắt đầu giao dịch, chuyển tiền từ tài khoản Div của bạn vào tài khoản này.", "1920217537": "So sánh", "1920468180": "Cách sử dụng khung SMA", "1921634159": "Một số chi tiết cá nhân", @@ -1656,7 +1656,7 @@ "2037481040": "Chọn một cách để nạp tiền vào tài khoản", "2037665157": "Mở rộng tất cả các Khung", "2037906477": "lấy danh sách phụ từ #", - "2042023623": "We’re reviewing your documents. This should take about 5 minutes.", + "2042023623": "Chúng tôi đang xem xét tài liệu của anh. Quá trình này sẽ mất khoảng 5 phút.", "2042050260": "- Giá mua: giá mua (mức cược) của hợp đồng", "2042115724": "Tải lên ảnh chụp màn hình tài khoản và trang chi tiết cá nhân của bạn với tên, số tài khoản, số điện thoại và địa chỉ email của bạn.", "2042778835": "Chính sách khiếu nại này có thể thay đổi theo thời gian, áp dụng cho (các) tài khoản của bạn đã đăng ký với {{legal_entity_name}}.", @@ -2226,7 +2226,7 @@ "-38915613": "Các thay đổi chưa lưu", "-2137450250": "Bạn có nhiều thay đổi chưa được lưu. Bạn có chắc chắn muốn loại bỏ các thay đổi và rời khỏi trang này?", "-1067082004": "Thoát cài đặt", - "-1982432743": "It appears that the address in your document doesn’t match the address\n in your Deriv profile. Please update your personal details now with the\n correct address.", + "-1982432743": "Dường như địa chỉ trong tài liệu của bạn không khớp với địa chỉ\n trong hồ sơ Div của bạn. Vui lòng cập nhật thông tin cá nhân của bạn ngay bây giờ với\n địa chỉ chính xác.", "-1451334536": "Tiếp tục giao dịch", "-1525879032": "Tài liệu để chứng minh địa chỉ đã hết hạn. Vui lòng gửi lại.", "-1425489838": "Không cần giấy tờ xác minh địa chỉ", @@ -2346,11 +2346,11 @@ "-2056016338": "Bạn sẽ không bị tính phí chuyển tiền đối với các chuyển khoản bằng cùng một loại tiền tệ giữa tài khoản Deriv fiat và {{platform_name_mt5}} của mình.", "-599632330": "Chúng tôi sẽ tính phí chuyển khoản 1% đối với các giao dịch chuyển tiền bằng các đơn vị tiền tệ khác nhau giữa tài khoản tiền pháp định Deriv và {{platform_name_mt5}} cũng như giữa tài khoản tiền pháp định Deriv và {{platform_name_dxtrade}}.", "-1196994774": "Chúng tôi sẽ tính phí chuyển khoản 2% hoặc {{minimum_fee}} {{currency}}, tùy theo mức nào cao hơn, đối với chuyển khoản giữa các tài khoản tiền kỹ thuật số Deriv của bạn.", - "-1361372445": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts, your Deriv cryptocurrency and {{platform_name_derivez}} accounts, and your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.", + "-1361372445": "Chúng tôi sẽ tính phí chuyển khoản 2% hoặc {{minimum_fee}} {{currency}}, tùy theo giá trị nào cao hơn, đối với việc chuyển tiền giữa các tài khoản cryptocurrency Derov và Deriv MT5 của bạn, cryptocurrency Derov và {{platform_name_derivez}} tài khoản, cryptocurrency Derov và {{platform_name_dxtrade}} tài khoản của bạn.", "-993556039": "Chúng tôi sẽ tính phí chuyển khoản 2% hoặc {{minimum_fee}} {{currency}}, tùy theo mức nào cao hơn, đối với chuyển khoản giữa tài khoản tiền điện tử Deriv và tài khoản Deriv MT5 cũng như giữa tài khoản tiền điện tử Deriv và tài khoản {{platform_name_dxtrade}} của bạn.", "-1382702462": "Chúng tôi sẽ tính phí chuyển khoản 2% hoặc {{minimum_fee}} {{currency}}, tùy theo mức nào cao hơn, đối với chuyển khoản giữa tài khoản tiền điện tử Deriv và tài khoản Deriv MT5 của bạn.", - "-1995859618": "You may transfer between your Deriv fiat, cryptocurrency, {{platform_name_mt5}}, {{platform_name_derivez}} and {{platform_name_dxtrade}} accounts.", - "-545616470": "Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts, up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts, up to {{ allowed_derivez }} transfers between your Deriv and {{platform_name_derivez}} accounts, and up to {{ allowed_dxtrade }} transfers between your Deriv and {{platform_name_dxtrade}} accounts.", + "-1995859618": "Bạn có thể chuyển khoản giữa các tài khoản Div fiat, cryptocurrency, {{platform_name_mt5}}, {{platform_name_derivez}} và {{platform_name_dxtrade}} của bạn.", + "-545616470": "Mỗi ngày, bạn có thể thực hiện tối đa {{ allowed_internal }} chuyển khoản giữa các tài khoản Div của bạn, tối đa {{ allowed_mt5 }} lần chuyển giữa Div và {{platform_name_mt5}} tài khoản của bạn, tối đa {{ allowed_derivez }} lần chuyển tiền giữa Div và {{platform_name_derivez}} tài khoản, và tối đa {{ allowed_dxtrade }} chuyển khoản giữa Div và {{platform_name_dxtrade}} tài khoản của bạn.", "-1151983985": "Giới hạn chuyển khoản có thể thay đổi tùy thuộc vào tỷ giá hối đoái.", "-1747571263": "Xin lưu ý rằng một số chuyển khoản có thể không thực hiện được.", "-757062699": "Việc chuyển tiền có thể không khả dụng do sự biến động cao hoặc các vấn đề kỹ thuật và khi thị trường hối đoái đóng cửa.", @@ -2750,7 +2750,7 @@ "-1125797291": "Mật khẩu đã được cập nhật.", "-157145612": "Vui lòng đăng nhập với mật khẩu mới cập nhật.", "-1728185398": "Nộp lại bằng chứng địa chỉ", - "-612396514": "Please resubmit your proof of address.", + "-612396514": "Vui lòng gửi lại bằng chứng về địa chỉ của bạn.", "-1519764694": "Chứng minh địa chỉ của bạn đã được xác minh.", "-1961967032": "Nộp lại chứng minh danh tính", "-117048458": "Vui lòng nộp xác minh danh tính của bạn.", @@ -2778,10 +2778,10 @@ "-1834929362": "Tải lên tài liệu của tôi", "-1043638404": "<0>Chứng minh quyền sở hữu <1>không thành công", "-1766760306": "<0><1>Vui lòng tải lên tài liệu của bạn <2>với các chi tiết chính xác.<3>", - "-2142540205": "It appears that the address in your document doesn’t match the address in your Deriv profile. Please update your personal details now with the correct address.", - "-482715448": "Go to Personal details", - "-2072411961": "Your proof of address has been verified", - "-384887227": "Update the address in your profile.", + "-2142540205": "Dường như địa chỉ trong tài liệu của bạn không khớp với địa chỉ trong hồ sơ Div của bạn. Vui lòng cập nhật thông tin cá nhân của bạn ngay bây giờ với địa chỉ chính xác.", + "-482715448": "Đi đến chi tiết cá nhân", + "-2072411961": "Chứng minh địa chỉ của bạn đã được xác minh", + "-384887227": "Cập nhật địa chỉ trong hồ sơ của bạn.", "-1998049070": "Nếu bạn đồng ý cho việc sử dụng cookies của chúng tôi, nhấn vào Chấp nhận. Để biết thêm thông tin <0>xem quy định.", "-402093392": "Thêm tài khoản Deriv", "-277547429": "Một tài khoản Deriv sẽ cho phép bạn nạp tiền (và rút tiền) vào tài khoản MT5 của bạn.", @@ -2923,10 +2923,10 @@ "-429248139": "5. Miễn trách nhiệm", "-818926350": "Ủy ban Tài chính chấp nhận kháng cáo trong 45 ngày sau ngày xảy ra vụ việc và chỉ sau khi nhà giao dịch đã cố gắng giải quyết vấn đề trực tiếp với công ty.", "-358055541": "Sức mạnh giao dịch của bạn với các công cụ mới tuyệt vời", - "-29496115": "We've partnered with Acuity to give you a suite of intuitive trading tools for MT5 so you can keep track of market events and trends, free of charge!<0/><0/>", - "-648669944": "Download the Acuity suite and take advantage of the <1>Macroeconomic Calendar, Market Alerts, Research Terminal, and <1>Signal Centre Trade Ideas without leaving your MT5 terminal.<0/><0/>", - "-794294380": "This suite is only available for Windows, and is most recommended for financial assets.", - "-922510206": "Need help using Acuity?", + "-29496115": "Chúng tôi đã hợp tác với Acuity để cung cấp cho bạn một bộ công cụ giao dịch trực quan cho MT5 để bạn có thể theo dõi các sự kiện và xu hướng thị trường, miễn phí! <0/><0/>", + "-648669944": "Tải xuống bộ Acuity và tận dụng lợi thế của <1>Lịch kinh tế vĩ mô, Cảnh báo Market, Research Terminal và <1>Signal Centre Trade Ide as mà không cần rời khỏi thiết bị đầu cuối MT5 của bạn.<0/><0/>", + "-794294380": "Bộ này chỉ có sẵn cho Windows và được khuyến nghị nhiều nhất cho tài sản tài chính.", + "-922510206": "Bạn cần trợ giúp khi sử dụng Acuity?", "-815070480": "Disclaimer: Các dịch vụ giao dịch và thông tin được cung cấp bởi Acuity không nên được hiểu là một lời mời đầu tư và/hoặc thương mại. Div không cung cấp lời khuyên đầu tư. Quá khứ không phải là một hướng dẫn cho hiệu suất trong tương lai, và các chiến lược đã làm việc trong quá khứ có thể không hoạt động trong tương lai.", "-2111521813": "Tải về Acuity", "-175369516": "Chào mừng đến với Deriv X", @@ -2982,7 +2982,7 @@ "-712681566": "Trao đổi ngang hàng (P2P)", "-1267880283": "{{field_name}} là bắt buộc", "-2084509650": "{{field_name}} không được định dạng đúng.", - "-222283483": "Account opening reason*", + "-222283483": "Lý do mở tài khoản*", "-1779241732": "Dòng địa chỉ đầu tiên không ở định dạng thích hợp.", "-188222339": "Mục này không được vượt quá {{max_number}} ký tự.", "-1673422138": "Bang/Tỉnh không ở trong một định dạng thích hợp.", @@ -2996,15 +2996,15 @@ "-1982499699": "Khám phá {{platform_name_dbot}}", "-1567989247": "Nộp chứng minh danh tính và địa chỉ", "-184453418": "Nhập mật khẩu {{platform}} của bạn", - "-393388362": "We’re reviewing your documents. This should take about 1 to 3 days.", + "-393388362": "Chúng tôi đang xem xét tài liệu của anh. Quá trình này sẽ mất khoảng 1 đến 3 ngày.", "-790488576": "Quên mật khẩu?", "-926547017": "Nhập mật khẩu {{platform}} của bạn để thêm tài khoản {{platform}} {{account}} {{jurisdiction_shortcode}}.", "-1190393389": "Nhập mật khẩu {{platform}} của bạn để thêm tài khoản {{platform}} {{account}}.", "-2057918502": "Gợi ý: Bạn có thể đã nhập mật khẩu Deriv của mình, mật khẩu này khác với mật khẩu {{platform}} của bạn.", "-1769158315": "thực", "-700260448": "\bdemo", - "-1936102840": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} account. ", - "-1570793523": "Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} account.", + "-1936102840": "Xin chúc mừng, bạn đã tạo thành công tài khoản {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} của mình. ", + "-1570793523": "Xin chúc mừng, bạn đã tạo thành công tài khoản {{category}} <0>{{platform}} <1>{{type}} của mình.", "-1928229820": "Đặt lại mật khẩu nhà đầu tư Deriv X", "-1087845020": "chính", "-1950683866": "nhà đầu tư", From d634ba15b536dc12098dd240fdd05c3f8efb856b Mon Sep 17 00:00:00 2001 From: Sui Sin <103026762+suisin-deriv@users.noreply.github.com> Date: Wed, 18 Jan 2023 18:27:29 +0800 Subject: [PATCH 50/84] Suisin/chore: Notifications for gathering users POI and POA (#7381) * chore: Notifications for gathering users POI and POA * chore: resolve subtasks bugs * chore: remove unused component * chore: remove unused component * chore: add and remove lines --- .../src/modules/trading-hub/index.tsx | 4 +- .../Containers/app-notification-messages.jsx | 6 +- .../Stores/Helpers/client-notifications.js | 4 + .../core/src/Stores/notification-store.js | 79 ++++++++++++++++++- 4 files changed, 89 insertions(+), 4 deletions(-) diff --git a/packages/appstore/src/modules/trading-hub/index.tsx b/packages/appstore/src/modules/trading-hub/index.tsx index 810f374f415c..82db7eeac157 100644 --- a/packages/appstore/src/modules/trading-hub/index.tsx +++ b/packages/appstore/src/modules/trading-hub/index.tsx @@ -55,7 +55,8 @@ const TradingHub: React.FC = () => { getRealFinancialAccountsExistingData, } = modules.cfd; const { platform } = common; - const { is_dark_mode_on } = ui; + const { notification_messages_ui: Notifications, is_dark_mode_on } = ui; + const { is_tour_open, toggleIsTourOpen, is_onboarding_visited, setIsOnboardingVisited } = tradinghub; /*TODO: We need to show this component whenever user click on tour guide button*/ const login_id = window.localStorage.getItem('active_loginid') ?? ''; @@ -199,6 +200,7 @@ const TradingHub: React.FC = () => { return (
+
diff --git a/packages/core/src/App/Containers/app-notification-messages.jsx b/packages/core/src/App/Containers/app-notification-messages.jsx index d0b1791b7fe4..53bd01bc3c9e 100644 --- a/packages/core/src/App/Containers/app-notification-messages.jsx +++ b/packages/core/src/App/Containers/app-notification-messages.jsx @@ -124,6 +124,10 @@ const AppNotificationMessages = ({ 'poa_address_mismatch_warning', 'poa_address_mismatch_success', 'poa_address_mismatch_failure', + 'svg_needs_poi_poa', + 'svg_needs_poa', + 'svg_needs_poi', + 'svg_poi_expired', ].includes(message.key) || message.type === 'p2p_completed_order' : true; @@ -135,7 +139,7 @@ const AppNotificationMessages = ({ const notifications_limit = isMobile() ? max_display_notifications_mobile : max_display_notifications; //TODO (yauheni-kryzhyk): showing pop-up only for specific messages. the rest of notifications are hidden. this logic should be changed in the upcoming new pop-up notifications implementation const filtered_excluded_notifications = notifications.filter(message => - excluded_notifications.includes(message.key) + message.key.includes('svg') ? message : excluded_notifications.includes(message.key) ); const notifications_sublist = filtered_excluded_notifications.slice(0, notifications_limit); diff --git a/packages/core/src/Stores/Helpers/client-notifications.js b/packages/core/src/Stores/Helpers/client-notifications.js index 448f127f3240..0f90766d6fdb 100644 --- a/packages/core/src/Stores/Helpers/client-notifications.js +++ b/packages/core/src/Stores/Helpers/client-notifications.js @@ -71,4 +71,8 @@ export const excluded_notifications = isMobile() 'maintenance', 'bot_switch_account', 'new_version_available', + 'svg_needs_poi_poa', + 'svg_needs_poa', + 'svg_needs_poi', + 'svg_poi_expired', ]; diff --git a/packages/core/src/Stores/notification-store.js b/packages/core/src/Stores/notification-store.js index d4c762112837..43c3ee2d6309 100644 --- a/packages/core/src/Stores/notification-store.js +++ b/packages/core/src/Stores/notification-store.js @@ -165,7 +165,7 @@ export default class NotificationStore extends BaseStore { const sortFn = isMobile() ? sortNotificationsMobile : sortNotifications; this.notification_messages = [...this.notification_messages, notification].sort(sortFn); - if (!excluded_notifications.includes(notification.key)) { + if (notification.key.includes('svg') || !excluded_notifications.includes(notification.key)) { this.updateNotifications(this.notification_messages); } } @@ -258,6 +258,7 @@ export default class NotificationStore extends BaseStore { const { current_language, selected_contract_type } = this.root_store.common; const malta_account = landing_company_shortcode === 'maltainvest'; const virtual_account = landing_company_shortcode === 'virtual'; + const cr_account = landing_company_shortcode === 'svg'; const is_website_up = website_status.site_status === 'up'; const has_trustpilot = LocalStore.getObject('notification_messages')[loginid]?.includes( this.client_notifications.trustpilot.key @@ -361,6 +362,20 @@ export default class NotificationStore extends BaseStore { needs_verification?.includes('ownership') && ownership?.status?.toLowerCase() !== 'rejected'; const poo_rejected = needs_verification?.includes('ownership') && ownership?.status?.toLowerCase() === 'rejected'; + const svg_needs_poi_poa = + cr_account && + status.includes('allow_document_upload') && + (identity?.status === 'none' || identity?.status === 'rejected') && + (document?.status === 'none' || document?.status === 'rejected'); + const svg_needs_poa = + cr_account && + status.includes('allow_document_upload') && + (document?.status === 'none' || document?.status === 'rejected'); + const svg_needs_poi = + cr_account && + status.includes('allow_document_upload') && + (identity?.status === 'none' || identity?.status === 'rejected'); + const svg_poi_expired = cr_account && identity?.status === 'expired'; this.addVerificationNotifications( identity, @@ -492,6 +507,16 @@ export default class NotificationStore extends BaseStore { if (poo_rejected) { this.addNotificationMessage(this.client_notifications.poo_rejected); } + //add notification message for SVG clients + if (svg_needs_poi_poa) { + this.addNotificationMessage(this.client_notifications.svg_needs_poi_poa); + } else if (svg_needs_poa) { + this.addNotificationMessage(this.client_notifications.svg_needs_poa); + } else if (svg_needs_poi) { + this.addNotificationMessage(this.client_notifications.svg_needs_poi); + } else if (svg_poi_expired) { + this.addNotificationMessage(this.client_notifications.svg_poi_expired); + } } } @@ -1308,6 +1333,54 @@ export default class NotificationStore extends BaseStore { text: localize('Start assessment'), }, }, + svg_needs_poi_poa: { + key: 'svg_needs_poi_poa', + header: localize('Account verification required'), + message: ( + + ), + type: 'warning', + action: { + route: routes.proof_of_identity, + text: localize('Go to my account settings'), + }, + }, + svg_needs_poa: { + key: 'svg_needs_poa', + header: localize('Proof of address required'), + message: ( + + ), + type: 'warning', + action: { + route: routes.proof_of_address, + text: localize('Submit proof of address'), + }, + }, + svg_needs_poi: { + key: 'svg_needs_poi', + header: localize('Proof of identity required'), + message: ( + + ), + type: 'warning', + action: { + route: routes.proof_of_identity, + text: localize('Submit proof of identity'), + }, + }, + svg_poi_expired: { + key: 'svg_poi_expired', + header: localize('Your proof of identity is expired'), + message: ( + + ), + type: 'warning', + action: { + route: routes.proof_of_identity, + text: localize('Submit proof of identity'), + }, + }, }; this.client_notifications = notifications; @@ -1331,7 +1404,9 @@ export default class NotificationStore extends BaseStore { } updateNotifications(notifications_array) { - this.notifications = notifications_array.filter(message => !excluded_notifications.includes(message.key)); + this.notifications = notifications_array.filter(message => + message.key.includes('svg') ? message : !excluded_notifications.includes(message.key) + ); } handlePOAAddressMismatchNotifications = () => { From b5f0f7525d5ac3effff43183a6d1c4a694c0f28d Mon Sep 17 00:00:00 2001 From: Shayan Khaleghparast <100833613+shayan-deriv@users.noreply.github.com> Date: Wed, 18 Jan 2023 15:09:35 +0330 Subject: [PATCH 51/84] Shayan/86260/fix collapsable panel placeholder alignment (#7389) * checking circle/ci test * removed test changes * fix: fixed react-content-loader in small screen * fix: fixed react-content-loader issue with dark-mode Co-authored-by: Shayan Khaleghparast <100833613+iman-fs@users.noreply.github.com> Co-authored-by: vinu-deriv <100689171+vinu-deriv@users.noreply.github.com> --- .../contract-card-loading/contract-card-loading.tsx | 4 ++-- .../journal/journal-components/journal-loader.tsx | 4 ++-- .../src/components/transactions/transaction.jsx | 8 ++++---- .../Layout/Header/Components/Preloader/accounts-info.jsx | 4 ++-- .../Layout/Header/Components/Preloader/accounts-item.jsx | 4 ++-- .../Layout/Header/Components/Preloader/header-items.jsx | 4 ++-- .../Header/Components/Preloader/platform-switcher.jsx | 4 ++-- .../Components/Elements/ContentLoader/positions-card.jsx | 4 ++-- .../Elements/ContentLoader/reports-table-row.jsx | 4 ++-- .../Components/Elements/ContentLoader/positions-card.jsx | 4 ++-- .../Components/Elements/ContentLoader/trade-params.jsx | 9 +++++---- 11 files changed, 27 insertions(+), 26 deletions(-) diff --git a/packages/bot-web-ui/src/components/contract-card-loading/contract-card-loading.tsx b/packages/bot-web-ui/src/components/contract-card-loading/contract-card-loading.tsx index 0ade53bd9a3c..cc0ff4dcc85c 100644 --- a/packages/bot-web-ui/src/components/contract-card-loading/contract-card-loading.tsx +++ b/packages/bot-web-ui/src/components/contract-card-loading/contract-card-loading.tsx @@ -10,8 +10,8 @@ const ContractCardLoader = ({ speed = 3 }: TContractCardLoader) => ( height={153} width={334} speed={speed} - primaryColor={'var(--general-section-2)'} - secondaryColor={'var(--general-hover)'} + backgroundColor={'var(--general-section-2)'} + foregroundColor={'var(--general-hover)'} > diff --git a/packages/bot-web-ui/src/components/journal/journal-components/journal-loader.tsx b/packages/bot-web-ui/src/components/journal/journal-components/journal-loader.tsx index b0a56e898a16..67df6108fe6e 100644 --- a/packages/bot-web-ui/src/components/journal/journal-components/journal-loader.tsx +++ b/packages/bot-web-ui/src/components/journal/journal-components/journal-loader.tsx @@ -8,8 +8,8 @@ const JournalLoader = ({ is_mobile }: { is_mobile: boolean }) => ( speed={3} width={350} height={92} - primaryColor={'var(--general-section-1)'} - secondaryColor={'var(--general-hover)'} + backgroundColor={'var(--general-section-1)'} + foregroundColor={'var(--general-hover)'} > diff --git a/packages/bot-web-ui/src/components/transactions/transaction.jsx b/packages/bot-web-ui/src/components/transactions/transaction.jsx index eb2072aa44a4..cc8238a8b442 100644 --- a/packages/bot-web-ui/src/components/transactions/transaction.jsx +++ b/packages/bot-web-ui/src/components/transactions/transaction.jsx @@ -29,8 +29,8 @@ const TransactionFieldLoader = () => ( height={10} width={80} speed={3} - primaryColor={'var(--general-section-2)'} - secondaryColor={'var(--general-hover)'} + backgroundColor={'var(--general-section-2)'} + foregroundColor={'var(--general-hover)'} > @@ -42,8 +42,8 @@ const TransactionIconLoader = () => ( speed={3} width={24} height={24} - primaryColor={'var(--general-section-1)'} - secondaryColor={'var(--general-hover)'} + backgroundColor={'var(--general-section-1)'} + foregroundColor={'var(--general-hover)'} > diff --git a/packages/core/src/App/Components/Layout/Header/Components/Preloader/accounts-info.jsx b/packages/core/src/App/Components/Layout/Header/Components/Preloader/accounts-info.jsx index 2ed1bb50b573..f6444b3994ee 100644 --- a/packages/core/src/App/Components/Layout/Header/Components/Preloader/accounts-info.jsx +++ b/packages/core/src/App/Components/Layout/Header/Components/Preloader/accounts-info.jsx @@ -7,8 +7,8 @@ const AccountsInfoLoader = ({ is_mobile, is_logged_in, speed }) => ( height={is_mobile ? 42 : 46} width={is_mobile ? 216 : 350} speed={speed} - primaryColor={'var(--general-section-1)'} - secondaryColor={'var(--general-hover)'} + backgroundColor={'var(--general-section-1)'} + foregroundColor={'var(--general-hover)'} > {is_logged_in ? : } diff --git a/packages/core/src/App/Components/Layout/Header/Components/Preloader/accounts-item.jsx b/packages/core/src/App/Components/Layout/Header/Components/Preloader/accounts-item.jsx index dcc8d721406e..6c060f404d50 100644 --- a/packages/core/src/App/Components/Layout/Header/Components/Preloader/accounts-item.jsx +++ b/packages/core/src/App/Components/Layout/Header/Components/Preloader/accounts-item.jsx @@ -7,8 +7,8 @@ const AccountsItemLoader = ({ speed }) => ( height={24} width={246} speed={speed} - primaryColor={'var(--general-section-1)'} - secondaryColor={'var(--general-hover)'} + backgroundColor={'var(--general-section-1)'} + foregroundColor={'var(--general-hover)'} > diff --git a/packages/core/src/App/Components/Layout/Header/Components/Preloader/header-items.jsx b/packages/core/src/App/Components/Layout/Header/Components/Preloader/header-items.jsx index a45395c56136..445cb356908b 100644 --- a/packages/core/src/App/Components/Layout/Header/Components/Preloader/header-items.jsx +++ b/packages/core/src/App/Components/Layout/Header/Components/Preloader/header-items.jsx @@ -6,8 +6,8 @@ import { DesktopWrapper, MobileWrapper } from '@deriv/components'; const HeaderItemsLoader = ({ speed }) => ( diff --git a/packages/core/src/App/Components/Layout/Header/Components/Preloader/platform-switcher.jsx b/packages/core/src/App/Components/Layout/Header/Components/Preloader/platform-switcher.jsx index 2a7714692bfe..6e89af4e577e 100644 --- a/packages/core/src/App/Components/Layout/Header/Components/Preloader/platform-switcher.jsx +++ b/packages/core/src/App/Components/Layout/Header/Components/Preloader/platform-switcher.jsx @@ -15,8 +15,8 @@ const PlatformSwitcherLoader = ({ is_mobile, speed }) => { height={logo_size} width={container_width} speed={speed} - primaryColor={'var(--general-section-1)'} - secondaryColor={'var(--general-hover)'} + backgroundColor={'var(--general-section-1)'} + foregroundColor={'var(--general-hover)'} > diff --git a/packages/reports/src/Components/Elements/ContentLoader/positions-card.jsx b/packages/reports/src/Components/Elements/ContentLoader/positions-card.jsx index 3e2708bc34b4..d0fba00e5530 100644 --- a/packages/reports/src/Components/Elements/ContentLoader/positions-card.jsx +++ b/packages/reports/src/Components/Elements/ContentLoader/positions-card.jsx @@ -7,8 +7,8 @@ const PositionsCardLoader = ({ speed }) => ( height={173} width={218} speed={speed} - primaryColor={'var(--general-section-1)'} - secondaryColor={'var(--general-hover)'} + backgroundColor={'var(--general-section-1)'} + foregroundColor={'var(--general-hover)'} > diff --git a/packages/reports/src/Components/Elements/ContentLoader/reports-table-row.jsx b/packages/reports/src/Components/Elements/ContentLoader/reports-table-row.jsx index 328ea93c733f..fbb6606d9395 100644 --- a/packages/reports/src/Components/Elements/ContentLoader/reports-table-row.jsx +++ b/packages/reports/src/Components/Elements/ContentLoader/reports-table-row.jsx @@ -7,8 +7,8 @@ const ReportsTableRowLoader = ({ speed }) => ( height={64} width={992} speed={speed} - primaryColor={'var(--general-hover)'} - secondaryColor={'var(--general-active)'} + backgroundColor={'var(--general-hover)'} + foregroundColor={'var(--general-active)'} > diff --git a/packages/trader/src/App/Components/Elements/ContentLoader/positions-card.jsx b/packages/trader/src/App/Components/Elements/ContentLoader/positions-card.jsx index 3e2708bc34b4..d0fba00e5530 100644 --- a/packages/trader/src/App/Components/Elements/ContentLoader/positions-card.jsx +++ b/packages/trader/src/App/Components/Elements/ContentLoader/positions-card.jsx @@ -7,8 +7,8 @@ const PositionsCardLoader = ({ speed }) => ( height={173} width={218} speed={speed} - primaryColor={'var(--general-section-1)'} - secondaryColor={'var(--general-hover)'} + backgroundColor={'var(--general-section-1)'} + foregroundColor={'var(--general-hover)'} > diff --git a/packages/trader/src/App/Components/Elements/ContentLoader/trade-params.jsx b/packages/trader/src/App/Components/Elements/ContentLoader/trade-params.jsx index 5b1588d8f0ca..5c045391e915 100644 --- a/packages/trader/src/App/Components/Elements/ContentLoader/trade-params.jsx +++ b/packages/trader/src/App/Components/Elements/ContentLoader/trade-params.jsx @@ -10,8 +10,9 @@ const TradeParamsLoader = ({ speed }) => ( height={214} width={344} speed={speed} - primaryColor={'var(--general-section-1)'} - secondaryColor={'var(--general-hover)'} + backgroundColor={'var(--general-section-1)'} + foregroundColor={'var(--general-hover)'} + viewBox='0 0 344 176' > @@ -25,8 +26,8 @@ const TradeParamsLoader = ({ speed }) => ( height={548} width={240} speed={speed} - primaryColor={'var(--general-section-1)'} - secondaryColor={'var(--general-hover)'} + backgroundColor={'var(--general-section-1)'} + foregroundColor={'var(--general-hover)'} > From 415b5f87cfc53c2780a04679a038c2ecda871de5 Mon Sep 17 00:00:00 2001 From: rupato-deriv <97010868+rupato-deriv@users.noreply.github.com> Date: Thu, 19 Jan 2023 13:48:28 +0800 Subject: [PATCH 52/84] fix: yml script (#7398) * fix: yml script * fix: added script to lighthouse --- .github/workflows/generate_app_id.yml | 1 + .github/workflows/lighthouse.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/generate_app_id.yml b/.github/workflows/generate_app_id.yml index 4d6d7ca46eee..fa4681c293c3 100644 --- a/.github/workflows/generate_app_id.yml +++ b/.github/workflows/generate_app_id.yml @@ -14,6 +14,7 @@ jobs: uses: binary-com/vercel-preview-url-action@v1.0.5 with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + preview_url_regexp: \[Visit Preview\]\((.*?.sx)\) - name: Generate Deriv App ID for deployment Preview URL id: generate_app_id uses: binary-com/deriv-app-id-action@v1 diff --git a/.github/workflows/lighthouse.yml b/.github/workflows/lighthouse.yml index 102de54fc792..5b9f2ffbebf6 100644 --- a/.github/workflows/lighthouse.yml +++ b/.github/workflows/lighthouse.yml @@ -29,6 +29,7 @@ jobs: uses: binary-com/vercel-preview-url-action@v1.0.5 with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + preview_url_regexp: \[Visit Preview\]\((.*?.sx)\) - name: Generate Lighthouse report uses: treosh/lighthouse-ci-action@v9 From fe2110011869da10fdd18308c6358ebf22db6677 Mon Sep 17 00:00:00 2001 From: aizad-deriv Date: Thu, 19 Jan 2023 13:54:37 +0800 Subject: [PATCH 53/84] fix: added TODO for rootstore --- packages/reports/src/Containers/progress-slider-stream.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/reports/src/Containers/progress-slider-stream.tsx b/packages/reports/src/Containers/progress-slider-stream.tsx index 3e8c3ba16d10..8088d53c4dd1 100644 --- a/packages/reports/src/Containers/progress-slider-stream.tsx +++ b/packages/reports/src/Containers/progress-slider-stream.tsx @@ -31,6 +31,7 @@ const ProgressSliderStream = ({ contract_info, is_loading, server_time }: TProgr ); }; +// TODO: implement reports store TRootStore in types.ts export default connect(({ common, portfolio }: any) => ({ is_loading: portfolio.is_loading, server_time: common.server_time, From cc8aee7f3f6af632e8ccc96f1938d7ad055e3f05 Mon Sep 17 00:00:00 2001 From: Sandeep Rajput <90243468+sandeep-deriv@users.noreply.github.com> Date: Thu, 19 Jan 2023 15:52:03 +0800 Subject: [PATCH 54/84] sandeep/fix: dbot-slowness issue v2 (#7345) * fix: multiplier is not working fine with the dbot slowness fix * fix: please log in issue caused due to performance optimization * Revert "Revert V20230106_0 (#7334)" This reverts commit 69825d33ad1aa81c393f9eef324dc000bff62937. * fix: multiplier contract purchase * fix: removed multiplier check and new ws creation * chore: clear timeout resolvers on bot close Co-authored-by: balakrishna-binary Co-authored-by: Prince --- packages/bot-skeleton/package.json | 2 + .../bot-skeleton/src/scratch/dbot-store.js | 8 ++ packages/bot-skeleton/src/scratch/dbot.js | 10 +- .../bot-skeleton/src/services/api/api-base.js | 132 ++++++++++++++++++ .../bot-skeleton/src/services/api/appId.js | 16 +++ .../src/services/api/ticks_service.js | 49 ++++--- .../src/services/tradeEngine/trade/Balance.js | 4 +- .../tradeEngine/trade/OpenContract.js | 18 ++- .../services/tradeEngine/trade/Proposal.js | 8 +- .../services/tradeEngine/trade/Purchase.js | 3 +- .../src/services/tradeEngine/trade/Sell.js | 7 +- .../src/services/tradeEngine/trade/index.js | 30 +--- .../services/tradeEngine/utils/cliTools.js | 6 +- .../src/services/tradeEngine/utils/helpers.js | 18 ++- .../services/tradeEngine/utils/interpreter.js | 13 +- .../trade-animation/trade-animation.jsx | 10 ++ packages/bot-web-ui/src/stores/app-store.js | 2 +- .../bot-web-ui/src/stores/run-panel-store.js | 7 +- 18 files changed, 270 insertions(+), 73 deletions(-) create mode 100644 packages/bot-skeleton/src/services/api/api-base.js diff --git a/packages/bot-skeleton/package.json b/packages/bot-skeleton/package.json index 96becac19d3c..b19bf02aea06 100644 --- a/packages/bot-skeleton/package.json +++ b/packages/bot-skeleton/package.json @@ -46,6 +46,8 @@ "immutable": "^3.8.2", "localforage": "^1.9.0", "lz-string": "^1.4.4", + "mobx": "^6.6.1", + "mobx-react": "^7.5.1", "redux": "^4.0.1", "redux-thunk": "^2.2.0", "scratch-blocks": "0.1.0-prerelease.20200917235131", diff --git a/packages/bot-skeleton/src/scratch/dbot-store.js b/packages/bot-skeleton/src/scratch/dbot-store.js index 1d951ec9ebc2..fb7333342df2 100644 --- a/packages/bot-skeleton/src/scratch/dbot-store.js +++ b/packages/bot-skeleton/src/scratch/dbot-store.js @@ -1,3 +1,6 @@ +import { reaction } from 'mobx'; +import { api_base } from '../services/api/api-base'; + class DBotStoreInterface { // TODO here we are suppose to define an interface and implement fields of DBotStore. handleFileChange = () => { @@ -27,6 +30,11 @@ class DBotStore extends DBotStoreInterface { this.handleFileChange = store.handleFileChange; this.startLoading = store.startLoading; this.endLoading = store.endLoading; + + reaction( + () => this.client.loginid, + () => api_base.createNewInstance(this.client.loginid) + ); } static setInstance(store) { diff --git a/packages/bot-skeleton/src/scratch/dbot.js b/packages/bot-skeleton/src/scratch/dbot.js index adee21e1bab2..4df1e4afb380 100644 --- a/packages/bot-skeleton/src/scratch/dbot.js +++ b/packages/bot-skeleton/src/scratch/dbot.js @@ -10,6 +10,7 @@ import { observer as globalObserver } from '../utils/observer'; import ApiHelpers from '../services/api/api-helpers'; import Interpreter from '../services/tradeEngine/utils/interpreter'; import { setColors } from './hooks/colours'; +import { api_base } from '../services/api/api-base'; class DBot { constructor() { @@ -97,7 +98,7 @@ class DBot { window.dispatchEvent(new Event('resize')); window.addEventListener('dragover', DBot.handleDragOver); window.addEventListener('drop', e => DBot.handleDropOver(e, handleFileChange)); - + api_base.init(); // disable overflow el_scratch_div.parentNode.style.overflow = 'hidden'; resolve(); @@ -134,7 +135,7 @@ class DBot { } this.interpreter = Interpreter(); - + api_base.setIsRunning(true); this.interpreter.run(code).catch(error => { globalObserver.emit('Error', error); this.stopBot(); @@ -226,6 +227,7 @@ class DBot { * that trade will be completed first to reflect correct contract status in UI. */ stopBot() { + api_base.setIsRunning(false); if (this.interpreter) { this.interpreter.stop(); } @@ -241,6 +243,10 @@ class DBot { } } + terminateConnection = () => { + api_base.terminate(); + }; + /** * Unselects any selected block before running the bot. */ diff --git a/packages/bot-skeleton/src/services/api/api-base.js b/packages/bot-skeleton/src/services/api/api-base.js new file mode 100644 index 000000000000..fd7c6d96dabd --- /dev/null +++ b/packages/bot-skeleton/src/services/api/api-base.js @@ -0,0 +1,132 @@ +import { observer as globalObserver } from '../../utils/observer'; +import { doUntilDone } from '../tradeEngine/utils/helpers'; +import { generateDerivApiInstance, getLoginId, getToken } from './appId'; + +class APIBase { + api; + token; + account_id; + pip_sizes = {}; + account_info = {}; + is_running = false; + subscriptions = []; + time_interval = null; + has_activeSymbols = false; + + init(force_update = false) { + if (getLoginId()) { + this.toggleRunButton(true); + if (force_update) this.terminate(); + this.api = generateDerivApiInstance(); + this.initEventListeners(); + this.authorizeAndSubscribe(); + if (this.time_interval) clearInterval(this.time_interval); + this.time_interval = null; + this.getTime(); + } + } + + terminate() { + // eslint-disable-next-line no-console + console.log('connection terminated'); + if (this.api) this.api.disconnect(); + } + + initEventListeners() { + if (window) { + window.addEventListener('online', this.reconnectIfNotConnected); + window.addEventListener('focus', this.reconnectIfNotConnected); + } + } + + createNewInstance(account_id) { + if (this.account_id !== account_id) { + this.init(true); + } + } + + reconnectIfNotConnected = () => { + // eslint-disable-next-line no-console + console.log('connection state: ', this.api.connection.readyState); + if (this.api.connection.readyState !== 1) { + // eslint-disable-next-line no-console + console.log('Info: Connection to the server was closed, trying to reconnect.'); + this.init(); + } + }; + + authorizeAndSubscribe() { + const { token, account_id } = getToken(); + if (token) { + this.token = token; + this.account_id = account_id; + this.api + .authorize(this.token) + .then(({ authorize }) => { + if (this.has_activeSymbols) { + this.toggleRunButton(false); + } else { + this.getActiveSymbols(); + } + this.subscribe(); + this.account_info = authorize; + }) + .catch(e => { + globalObserver.emit('Error', e); + }); + } + } + + subscribe() { + doUntilDone(() => this.api.send({ balance: 1, subscribe: 1 })); + doUntilDone(() => this.api.send({ transaction: 1, subscribe: 1 })); + } + + getActiveSymbols = async () => { + doUntilDone(() => this.api.send({ active_symbols: 'brief' })).then(({ active_symbols = [] }) => { + const pip_sizes = {}; + if (active_symbols.length) this.has_activeSymbols = true; + active_symbols.forEach(({ symbol, pip }) => { + pip_sizes[symbol] = +(+pip).toExponential().substring(3); + }); + this.pip_sizes = pip_sizes; + this.toggleRunButton(false); + }); + }; + + toggleRunButton = toggle => { + const run_button = document.querySelector('#db-animation__run-button'); + if (!run_button) return; + run_button.disabled = toggle; + }; + + setIsRunning(toggle = false) { + this.is_running = toggle; + } + + pushSubscription(subscription) { + this.subscriptions.push(subscription); + } + + clearSubscriptions() { + this.subscriptions.forEach(s => s.unsubscribe()); + this.subscriptions = []; + + // Resetting timeout resolvers + const global_timeouts = globalObserver.getState('global_timeouts') ?? []; + + global_timeouts.forEach((_, i) => { + clearTimeout(i); + }); + } + + getTime() { + if (!this.time_interval) { + this.time_interval = setInterval(() => { + this.api.send({ time: 1 }); + }, 30000); + } + } +} + +export const api_base = new APIBase(); diff --git a/packages/bot-skeleton/src/services/api/appId.js b/packages/bot-skeleton/src/services/api/appId.js index ed7417a9d34d..e56a9931fbea 100644 --- a/packages/bot-skeleton/src/services/api/appId.js +++ b/packages/bot-skeleton/src/services/api/appId.js @@ -10,3 +10,19 @@ export const generateDerivApiInstance = () => { }); return deriv_api; }; + +export const getLoginId = () => { + const login_id = localStorage.getItem('active_loginid'); + if (login_id && login_id !== 'null') return login_id; + return null; +}; + +export const getToken = () => { + const active_loginid = getLoginId(); + const client_accounts = JSON.parse(localStorage.getItem('client.accounts')) || undefined; + const active_account = (client_accounts && client_accounts[active_loginid]) || {}; + return { + token: active_account?.token || undefined, + account_id: active_loginid || undefined, + }; +}; diff --git a/packages/bot-skeleton/src/services/api/ticks_service.js b/packages/bot-skeleton/src/services/api/ticks_service.js index 2eaf3e8a50ce..3c6632faca0a 100644 --- a/packages/bot-skeleton/src/services/api/ticks_service.js +++ b/packages/bot-skeleton/src/services/api/ticks_service.js @@ -2,6 +2,7 @@ import { Map } from 'immutable'; import { historyToTicks, getLast } from 'binary-utils'; import { doUntilDone, getUUID } from '../tradeEngine/utils/helpers'; import { observer as globalObserver } from '../../utils/observer'; +import { api_base } from './api-base'; const parseTick = tick => ({ epoch: +tick.epoch, @@ -39,8 +40,7 @@ const updateCandles = (candles, ohlc) => { const getType = isCandle => (isCandle ? 'candles' : 'ticks'); export default class TicksService { - constructor(api) { - this.api = api; + constructor() { this.ticks = new Map(); this.candles = new Map(); this.tickListeners = new Map(); @@ -60,23 +60,13 @@ export default class TicksService { if (!this.active_symbols_promise) { this.active_symbols_promise = new Promise(resolve => { - this.getActiveSymbols().then(active_symbols => { - this.pipSizes = active_symbols - .reduce((s, i) => s.set(i.symbol, +(+i.pip).toExponential().substring(3)), new Map()) - .toObject(); - resolve(this.pipSizes); - }); + this.pipSizes = api_base.pip_sizes; + resolve(this.pipSizes); }); } return this.active_symbols_promise; } - getActiveSymbols = async () => { - await this.api.expectResponse('authorize'); - const active_symbols = await this.api.send({ active_symbols: 'brief' }); - return active_symbols.active_symbols; - }; - request(options) { const { symbol, granularity } = options; @@ -89,7 +79,6 @@ export default class TicksService { if (style === 'candles' && this.candles.hasIn([symbol, Number(granularity)])) { return Promise.resolve(this.candles.getIn([symbol, Number(granularity)])); } - return this.requestStream({ ...options, style }); } @@ -163,7 +152,7 @@ export default class TicksService { ...(tickSubscription || []), ]; - Promise.all(subscription.map(id => doUntilDone(() => this.api.forget(id)))); + Promise.all(subscription.map(id => doUntilDone(() => api_base.api.forget(id)))); this.subscriptions = new Map(); } @@ -195,7 +184,7 @@ export default class TicksService { } observe() { - this.api.onMessage().subscribe(({ data }) => { + const subscription = api_base.api.onMessage().subscribe(({ data }) => { if (data.msg_type === 'tick') { const { tick } = data; const { symbol, id } = tick; @@ -218,6 +207,7 @@ export default class TicksService { } } }); + api_base.pushSubscription(subscription); } requestStream(options) { @@ -260,7 +250,7 @@ export default class TicksService { style, }; return new Promise((resolve, reject) => { - doUntilDone(() => this.api.send(request_object)) + doUntilDone(() => api_base.api.send(request_object), [], api_base) .then(r => { if (style === 'ticks') { const ticks = historyToTicks(r.history); @@ -278,4 +268,27 @@ export default class TicksService { .catch(reject); }); } + + forget = subscription_id => { + if (subscription_id) { + api_base.api.forget(subscription_id); + } + }; + + unsubscribeFromTicksService() { + if (this.ticks_history_promise) { + const { stringified_options } = this.ticks_history_promise; + const { symbol = '' } = JSON.parse(stringified_options); + if (symbol) { + this.forget(this.subscriptions.getIn(['tick', symbol])); + } + } + if (this.candles_promise) { + const { stringified_options } = this.candles_promise; + const { symbol = '' } = JSON.parse(stringified_options); + if (symbol) { + this.forget(this.subscriptions.getIn(['candle', symbol])); + } + } + } } diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/Balance.js b/packages/bot-skeleton/src/services/tradeEngine/trade/Balance.js index 19f3aad85318..03a01578c671 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/Balance.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/Balance.js @@ -1,13 +1,14 @@ import { getFormattedText } from '@deriv/shared'; import { info } from '../utils/broadcast'; import DBotStore from '../../../scratch/dbot-store'; +import { api_base } from '../../api/api-base'; let balance_string = ''; export default Engine => class Balance extends Engine { observeBalance() { - this.api.onMessage().subscribe(({ data }) => { + const subscription = api_base.api.onMessage().subscribe(({ data }) => { if (data.msg_type === 'balance') { const { balance: { balance: b, currency }, @@ -18,6 +19,7 @@ export default Engine => info({ accountID: this.accountInfo.loginid, balance: balance_string }); } }); + api_base.pushSubscription(subscription); } // eslint-disable-next-line class-methods-use-this diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/OpenContract.js b/packages/bot-skeleton/src/services/tradeEngine/trade/OpenContract.js index 52c610a5f0a0..2c65f1637ae6 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/OpenContract.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/OpenContract.js @@ -3,15 +3,16 @@ import { sell, openContractReceived } from './state/actions'; import { contractStatus, contract as broadcastContract } from '../utils/broadcast'; import { doUntilDone } from '../utils/helpers'; import DBotStore from '../../../scratch/dbot-store'; +import { api_base } from '../../api/api-base'; export default Engine => class OpenContract extends Engine { observeOpenContract() { - this.api.onMessage().subscribe(({ data }) => { + const subscription = api_base.api.onMessage().subscribe(({ data }) => { if (data.msg_type === 'proposal_open_contract') { const contract = data.proposal_open_contract; - if (!contract && !this.expectedContractId(contract?.contract_id)) { + if (!contract || !this.expectedContractId(contract?.contract_id)) { return; } @@ -19,7 +20,7 @@ export default Engine => this.data.contract = contract; - broadcastContract({ accountID: this.accountInfo.loginid, ...contract }); + broadcastContract({ accountID: api_base.account_info.loginid, ...contract }); if (this.isSold) { this.contractId = ''; @@ -41,6 +42,7 @@ export default Engine => } } }); + api_base.pushSubscription(subscription); } waitForAfter() { @@ -51,7 +53,13 @@ export default Engine => subscribeToOpenContract(contract_id = this.contractId) { this.contractId = contract_id; - doUntilDone(() => this.api.send({ proposal_open_contract: 1, contract_id, subscribe: 1 })) + const request_object = { + proposal_open_contract: 1, + contract_id, + subscribe: 1, + }; + + doUntilDone(() => api_base.api.send(request_object)) .then(data => { const { populateConfig } = DBotStore.instance; populateConfig(data.proposal_open_contract); @@ -59,7 +67,7 @@ export default Engine => }) .catch(error => { if (error.error.code !== 'AlreadySubscribed') { - doUntilDone(() => this.api.send({ proposal_open_contract: 1, contract_id, subscribe: 1 })).then( + doUntilDone(() => api_base.api.send(request_object)).then( response => (this.openContractId = response.proposal_open_contract.id) ); } diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/Proposal.js b/packages/bot-skeleton/src/services/tradeEngine/trade/Proposal.js index 17e7914b298a..515d40b9421a 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/Proposal.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/Proposal.js @@ -1,6 +1,7 @@ import { localize } from '@deriv/translations'; import { proposalsReady, clearProposals } from './state/actions'; import { tradeOptionToProposal, doUntilDone } from '../utils/helpers'; +import { api_base } from '../../api/api-base'; export default Engine => class Proposal extends Engine { @@ -69,7 +70,7 @@ export default Engine => Promise.all( this.proposal_templates.map(proposal => { - doUntilDone(() => this.api.send(proposal)).catch(error => { + doUntilDone(() => api_base.api.send(proposal)).catch(error => { // We intercept ContractBuyValidationError as user may have specified // e.g. a DIGITUNDER 0 or DIGITOVER 9, while one proposal may be invalid // the other is valid. We will error on Purchase rather than here. @@ -94,7 +95,7 @@ export default Engine => } observeProposals() { - this.api.onMessage().subscribe(response => { + const subscription = api_base.api.onMessage().subscribe(response => { if (response.data.msg_type === 'proposal') { const { passthrough, proposal } = response.data; if ( @@ -108,6 +109,7 @@ export default Engine => } } }); + api_base.pushSubscription(subscription); } unsubscribeProposals() { @@ -128,7 +130,7 @@ export default Engine => return Promise.resolve(); } - return doUntilDone(() => this.api.forget(proposal.id)).then(() => { + return doUntilDone(() => api_base.api.forget(proposal.id)).then(() => { removeForgetProposalById(proposal.id); }); }) diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/Purchase.js b/packages/bot-skeleton/src/services/tradeEngine/trade/Purchase.js index 800c54201f93..cd3730f840eb 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/Purchase.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/Purchase.js @@ -3,6 +3,7 @@ import { BEFORE_PURCHASE } from './state/constants'; import { contractStatus, info, log } from '../utils/broadcast'; import { getUUID, recoverFromError, doUntilDone } from '../utils/helpers'; import { log_types } from '../../../constants/messages'; +import { api_base } from '../../api/api-base'; let delayIndex = 0; let purchase_reference; @@ -41,7 +42,7 @@ export default Engine => buy_price: buy.buy_price, }); }; - const action = () => this.api.send({ buy: id, price: askPrice }); + const action = () => api_base.api.send({ buy: id, price: askPrice }); this.isSold = false; contractStatus({ id: 'contract.purchase_sent', diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/Sell.js b/packages/bot-skeleton/src/services/tradeEngine/trade/Sell.js index 203cb9d6bdee..d2dc6bb7a3dc 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/Sell.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/Sell.js @@ -3,6 +3,7 @@ import { contractStatus, log } from '../utils/broadcast'; import { recoverFromError, doUntilDone } from '../utils/helpers'; import { log_types } from '../../../constants/messages'; import { observer as globalObserver } from '../../../utils/observer'; +import { api_base } from '../../api/api-base'; export default Engine => class Sell extends Engine { @@ -42,9 +43,9 @@ export default Engine => const contract_id = this.contractId; const sellContractAndGetContractInfo = () => { - return doUntilDone(() => this.api.send({ sell: contract_id, price: 0 })) + return doUntilDone(() => api_base.api.send({ sell: contract_id, price: 0 })) .then(sell_response => { - doUntilDone(() => this.api.send({ proposal_open_contract: 1, contract_id })).then( + doUntilDone(() => api_base.api.send({ proposal_open_contract: 1, contract_id })).then( () => sell_response ); }) @@ -70,7 +71,7 @@ export default Engine => // For every other error, check whether the contract is not actually already sold. return doUntilDone(() => - this.api.send({ + api_base.api.send({ proposal_open_contract: 1, contract_id, }) diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/index.js b/packages/bot-skeleton/src/services/tradeEngine/trade/index.js index 145bfcf67219..0a619a075f0f 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/index.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/index.js @@ -15,6 +15,7 @@ import { doUntilDone } from '../utils/helpers'; import { expectInitArg } from '../utils/sanitize'; import { createError } from '../../../utils/error'; import { observer as globalObserver } from '../../../utils/observer'; +import { api_base } from '../../api/api-base'; const watchBefore = store => watchScope({ @@ -64,7 +65,6 @@ const watchScope = ({ store, stopScope, passScope, passFlag }) => { export default class TradeEngine extends Balance(Purchase(Sell(OpenContract(Proposal(Ticks(Total(class {}))))))) { constructor($scope) { super(); - this.api = $scope.api; this.observer = $scope.observer; this.$scope = $scope; this.observe(); @@ -95,7 +95,6 @@ export default class TradeEngine extends Balance(Purchase(Sell(OpenContract(Prop globalObserver.emit('bot.running'); this.tradeOptions = tradeOptions; - this.store.dispatch(start()); this.checkLimits(tradeOptions); this.makeProposals({ ...this.options, ...tradeOptions }); @@ -106,17 +105,13 @@ export default class TradeEngine extends Balance(Purchase(Sell(OpenContract(Prop if (this.token === token) { return Promise.resolve(); } - - doUntilDone(() => this.api.authorize(token)).catch(e => { - this.$scope.observer.emit('Error', e); - }); return new Promise(resolve => { // Try to recover from a situation where API doesn't give us a correct response on // "proposal_open_contract" which would make the bot run forever. When there's a "sell" // event, wait a couple seconds for the API to give us the correct "proposal_open_contract" // response, if there's none after x seconds. Send an explicit request, which _should_ // solve the issue. This is a backup! - this.api.onMessage().subscribe(({ data }) => { + const subscription = api_base.api.onMessage().subscribe(({ data }) => { if (data.msg_type === 'transaction' && data.transaction.action === 'sell') { this.transaction_recovery_timeout = setTimeout(() => { const { contract } = this.data; @@ -124,27 +119,16 @@ export default class TradeEngine extends Balance(Purchase(Sell(OpenContract(Prop const is_open_contract = contract.status === 'open'; if (is_same_contract && is_open_contract) { doUntilDone(() => { - this.api.send({ proposal_open_contract: 1, contract_id: contract.contract_id }); + api_base.api.send({ proposal_open_contract: 1, contract_id: contract.contract_id }); }, ['PriceMoved']); } }, 1500); } - if (data.msg_type === 'authorize') { - this.accountInfo = data; - this.token = token; - - // Only subscribe to balance in browser, not for tests. - if (document) { - doUntilDone(() => this.api.send({ balance: 1, subscribe: 1 })).then(r => { - this.balance = Number(r.balance.balance); - resolve(); - }); - } else { - resolve(); - } - doUntilDone(() => this.api.send({ transaction: 1, subscribe: 1 })); - } + this.accountInfo = api_base.account_info; + this.token = api_base.token; + resolve(); }); + api_base.pushSubscription(subscription); }); } diff --git a/packages/bot-skeleton/src/services/tradeEngine/utils/cliTools.js b/packages/bot-skeleton/src/services/tradeEngine/utils/cliTools.js index bac5c53d459d..63cb063a7dc2 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/utils/cliTools.js +++ b/packages/bot-skeleton/src/services/tradeEngine/utils/cliTools.js @@ -1,11 +1,9 @@ import TicksService from '../../api/ticks_service'; import Observer from '../../../utils/observer'; -import { generateDerivApiInstance } from '../../api/appId'; export const createScope = () => { const observer = new Observer(); - const api = generateDerivApiInstance(); - const ticksService = new TicksService(api); + const ticksService = new TicksService(); const stopped = false; - return { observer, api, ticksService, stopped }; + return { observer, ticksService, stopped }; }; diff --git a/packages/bot-skeleton/src/services/tradeEngine/utils/helpers.js b/packages/bot-skeleton/src/services/tradeEngine/utils/helpers.js index ecb02e769017..8a996f9ec836 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/utils/helpers.js +++ b/packages/bot-skeleton/src/services/tradeEngine/utils/helpers.js @@ -130,13 +130,17 @@ export const shouldThrowError = (error, errors_to_ignore = []) => { return !is_ignorable_error; }; -export const recoverFromError = (promiseFn, recoverFn, errors_to_ignore, delay_index) => { +export const recoverFromError = (promiseFn, recoverFn, errors_to_ignore, delay_index, api_base) => { return new Promise((resolve, reject) => { const promise = promiseFn(); if (promise) { promise.then(resolve).catch(error => { - if (shouldThrowError(error, errors_to_ignore)) { + /** + * if bot is not running there is no point of recovering from error + * `!api_base.is_running` will check the bot status if it is not running it will kick out the control from loop + */ + if (shouldThrowError(error, errors_to_ignore) || (api_base && !api_base.is_running)) { reject(error); return; } @@ -172,7 +176,13 @@ export const recoverFromError = (promiseFn, recoverFn, errors_to_ignore, delay_i }); }; -export const doUntilDone = (promiseFn, errors_to_ignore) => { +/** + * @param {*} promiseFn api call - it could be api call or subscription + * @param {*} errors_to_ignore list of errors to ignore + * @param {*} api_base instance of APIBase class to check if the bot is running or not + * @returns a new promise + */ +export const doUntilDone = (promiseFn, errors_to_ignore, api_base) => { let delay_index = 1; return new Promise((resolve, reject) => { @@ -182,7 +192,7 @@ export const doUntilDone = (promiseFn, errors_to_ignore) => { }; const repeatFn = () => { - recoverFromError(promiseFn, recoverFn, errors_to_ignore, delay_index).then(resolve).catch(reject); + recoverFromError(promiseFn, recoverFn, errors_to_ignore, delay_index, api_base).then(resolve).catch(reject); }; repeatFn(); diff --git a/packages/bot-skeleton/src/services/tradeEngine/utils/interpreter.js b/packages/bot-skeleton/src/services/tradeEngine/utils/interpreter.js index d43cb67f01d0..788d172dbe39 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/utils/interpreter.js +++ b/packages/bot-skeleton/src/services/tradeEngine/utils/interpreter.js @@ -4,6 +4,7 @@ import { createScope } from './cliTools'; import Interface from '../Interface'; import { unrecoverable_errors } from '../../../constants/messages'; import { observer as globalObserver } from '../../../utils/observer'; +import { api_base } from '../../api/api-base'; JSInterpreter.prototype.takeStateSnapshot = function () { const newStateStack = cloneThorough(this.stateStack, undefined, undefined, undefined, true); @@ -180,16 +181,14 @@ const Interpreter = () => { } function terminateSession() { - const { connection } = $scope.api; - if (connection.readyState === 0) { - connection.addEventListener('open', () => connection.close()); - } else if (connection.readyState === 1) { - connection.close(); - } - $scope.stopped = true; $scope.is_error_triggered = false; globalObserver.emit('bot.stop'); + const { ticksService } = $scope; + // Unsubscribe previous ticks_history subscription + ticksService.unsubscribeFromTicksService(); + // Unsubscribe the subscriptions from Proposal, Balance and OpenContract + api_base.clearSubscriptions(); } function run(code) { diff --git a/packages/bot-web-ui/src/components/trade-animation/trade-animation.jsx b/packages/bot-web-ui/src/components/trade-animation/trade-animation.jsx index 738ed174987a..de40ff31ad8c 100644 --- a/packages/bot-web-ui/src/components/trade-animation/trade-animation.jsx +++ b/packages/bot-web-ui/src/components/trade-animation/trade-animation.jsx @@ -85,9 +85,16 @@ const TradeAnimation = ({ info_direction, toggleAnimationInfoModal, cashier_validation, + performSelfExclusionCheck, }) => { const [is_button_disabled, updateIsButtonDisabled] = React.useState(false); const is_unavailable_for_payment_agent = cashier_validation?.includes('WithdrawServiceUnavailableForPA'); + + // perform self-exclusion checks which will be stored under the self-exclusion-store + React.useEffect(() => { + performSelfExclusionCheck(); + }, []); + React.useEffect(() => { if (is_button_disabled) { setTimeout(() => { @@ -95,6 +102,7 @@ const TradeAnimation = ({ }, 1000); } }, [is_button_disabled]); + const status_classes = ['', '', '']; let progress_status = contract_stage - @@ -174,6 +182,7 @@ TradeAnimation.propTypes = { is_stop_button_disabled: PropTypes.bool, onRunButtonClick: PropTypes.func, onStopButtonClick: PropTypes.func, + performSelfExclusionCheck: PropTypes.func, profit: PropTypes.number, should_show_overlay: PropTypes.bool, }; @@ -187,6 +196,7 @@ export default connect(({ summary_card, run_panel, toolbar, ui, client }) => ({ is_stop_button_disabled: run_panel.is_stop_button_disabled, onRunButtonClick: run_panel.onRunButtonClick, onStopButtonClick: run_panel.onStopButtonClick, + performSelfExclusionCheck: run_panel.performSelfExclusionCheck, profit: summary_card.profit, should_show_overlay: run_panel.should_show_overlay, toggleAnimationInfoModal: toolbar.toggleAnimationInfoModal, diff --git a/packages/bot-web-ui/src/stores/app-store.js b/packages/bot-web-ui/src/stores/app-store.js index 2088fa4b7da7..862140f7d1e5 100644 --- a/packages/bot-web-ui/src/stores/app-store.js +++ b/packages/bot-web-ui/src/stores/app-store.js @@ -39,7 +39,7 @@ export default class AppStore { onUnmount() { DBot.terminateBot(); - + DBot.terminateConnection(); if (Blockly.derivWorkspace) { clearInterval(Blockly.derivWorkspace.save_workspace_interval); Blockly.derivWorkspace.dispose(); diff --git a/packages/bot-web-ui/src/stores/run-panel-store.js b/packages/bot-web-ui/src/stores/run-panel-store.js index c0144b8e494a..c35b2390467e 100644 --- a/packages/bot-web-ui/src/stores/run-panel-store.js +++ b/packages/bot-web-ui/src/stores/run-panel-store.js @@ -32,6 +32,7 @@ export default class RunPanelStore { toggleDrawer: action.bound, setActiveTabIndex: action.bound, onCloseDialog: action.bound, + performSelfExclusionCheck: action.bound, showStopMultiplierContractDialog: action.bound, showLoginDialog: action.bound, showRealAccountDialog: action.bound, @@ -130,6 +131,11 @@ export default class RunPanelStore { ); } + async performSelfExclusionCheck() { + const { self_exclusion } = this.root_store; + await self_exclusion.checkRestriction(); + } + async onRunButtonClick() { const { core, summary_card, route_prompt_dialog, self_exclusion } = this.root_store; const { client, ui } = core; @@ -148,7 +154,6 @@ export default class RunPanelStore { */ if (is_ios || isSafari()) this.preloadAudio(); - await self_exclusion.checkRestriction(); if (!self_exclusion.should_bot_run) { self_exclusion.setIsRestricted(true); return; From 341d1ec8fd877e53cfcb4b624c6daf3fdb9c115d Mon Sep 17 00:00:00 2001 From: Farrah Mae Ochoa <82315152+farrah-deriv@users.noreply.github.com> Date: Fri, 20 Jan 2023 09:50:10 +0400 Subject: [PATCH 55/84] Revert "sandeep/fix: dbot-slowness issue v2 (#7345)" (#7407) This reverts commit 0511e7feca6d79ced607270439f4729c1c9b858f. --- packages/bot-skeleton/package.json | 2 - .../bot-skeleton/src/scratch/dbot-store.js | 8 -- packages/bot-skeleton/src/scratch/dbot.js | 10 +- .../bot-skeleton/src/services/api/api-base.js | 132 ------------------ .../bot-skeleton/src/services/api/appId.js | 16 --- .../src/services/api/ticks_service.js | 49 +++---- .../src/services/tradeEngine/trade/Balance.js | 4 +- .../tradeEngine/trade/OpenContract.js | 18 +-- .../services/tradeEngine/trade/Proposal.js | 8 +- .../services/tradeEngine/trade/Purchase.js | 3 +- .../src/services/tradeEngine/trade/Sell.js | 7 +- .../src/services/tradeEngine/trade/index.js | 30 +++- .../services/tradeEngine/utils/cliTools.js | 6 +- .../src/services/tradeEngine/utils/helpers.js | 18 +-- .../services/tradeEngine/utils/interpreter.js | 13 +- .../trade-animation/trade-animation.jsx | 10 -- packages/bot-web-ui/src/stores/app-store.js | 2 +- .../bot-web-ui/src/stores/run-panel-store.js | 7 +- 18 files changed, 73 insertions(+), 270 deletions(-) delete mode 100644 packages/bot-skeleton/src/services/api/api-base.js diff --git a/packages/bot-skeleton/package.json b/packages/bot-skeleton/package.json index b19bf02aea06..96becac19d3c 100644 --- a/packages/bot-skeleton/package.json +++ b/packages/bot-skeleton/package.json @@ -46,8 +46,6 @@ "immutable": "^3.8.2", "localforage": "^1.9.0", "lz-string": "^1.4.4", - "mobx": "^6.6.1", - "mobx-react": "^7.5.1", "redux": "^4.0.1", "redux-thunk": "^2.2.0", "scratch-blocks": "0.1.0-prerelease.20200917235131", diff --git a/packages/bot-skeleton/src/scratch/dbot-store.js b/packages/bot-skeleton/src/scratch/dbot-store.js index fb7333342df2..1d951ec9ebc2 100644 --- a/packages/bot-skeleton/src/scratch/dbot-store.js +++ b/packages/bot-skeleton/src/scratch/dbot-store.js @@ -1,6 +1,3 @@ -import { reaction } from 'mobx'; -import { api_base } from '../services/api/api-base'; - class DBotStoreInterface { // TODO here we are suppose to define an interface and implement fields of DBotStore. handleFileChange = () => { @@ -30,11 +27,6 @@ class DBotStore extends DBotStoreInterface { this.handleFileChange = store.handleFileChange; this.startLoading = store.startLoading; this.endLoading = store.endLoading; - - reaction( - () => this.client.loginid, - () => api_base.createNewInstance(this.client.loginid) - ); } static setInstance(store) { diff --git a/packages/bot-skeleton/src/scratch/dbot.js b/packages/bot-skeleton/src/scratch/dbot.js index 4df1e4afb380..adee21e1bab2 100644 --- a/packages/bot-skeleton/src/scratch/dbot.js +++ b/packages/bot-skeleton/src/scratch/dbot.js @@ -10,7 +10,6 @@ import { observer as globalObserver } from '../utils/observer'; import ApiHelpers from '../services/api/api-helpers'; import Interpreter from '../services/tradeEngine/utils/interpreter'; import { setColors } from './hooks/colours'; -import { api_base } from '../services/api/api-base'; class DBot { constructor() { @@ -98,7 +97,7 @@ class DBot { window.dispatchEvent(new Event('resize')); window.addEventListener('dragover', DBot.handleDragOver); window.addEventListener('drop', e => DBot.handleDropOver(e, handleFileChange)); - api_base.init(); + // disable overflow el_scratch_div.parentNode.style.overflow = 'hidden'; resolve(); @@ -135,7 +134,7 @@ class DBot { } this.interpreter = Interpreter(); - api_base.setIsRunning(true); + this.interpreter.run(code).catch(error => { globalObserver.emit('Error', error); this.stopBot(); @@ -227,7 +226,6 @@ class DBot { * that trade will be completed first to reflect correct contract status in UI. */ stopBot() { - api_base.setIsRunning(false); if (this.interpreter) { this.interpreter.stop(); } @@ -243,10 +241,6 @@ class DBot { } } - terminateConnection = () => { - api_base.terminate(); - }; - /** * Unselects any selected block before running the bot. */ diff --git a/packages/bot-skeleton/src/services/api/api-base.js b/packages/bot-skeleton/src/services/api/api-base.js deleted file mode 100644 index fd7c6d96dabd..000000000000 --- a/packages/bot-skeleton/src/services/api/api-base.js +++ /dev/null @@ -1,132 +0,0 @@ -import { observer as globalObserver } from '../../utils/observer'; -import { doUntilDone } from '../tradeEngine/utils/helpers'; -import { generateDerivApiInstance, getLoginId, getToken } from './appId'; - -class APIBase { - api; - token; - account_id; - pip_sizes = {}; - account_info = {}; - is_running = false; - subscriptions = []; - time_interval = null; - has_activeSymbols = false; - - init(force_update = false) { - if (getLoginId()) { - this.toggleRunButton(true); - if (force_update) this.terminate(); - this.api = generateDerivApiInstance(); - this.initEventListeners(); - this.authorizeAndSubscribe(); - if (this.time_interval) clearInterval(this.time_interval); - this.time_interval = null; - this.getTime(); - } - } - - terminate() { - // eslint-disable-next-line no-console - console.log('connection terminated'); - if (this.api) this.api.disconnect(); - } - - initEventListeners() { - if (window) { - window.addEventListener('online', this.reconnectIfNotConnected); - window.addEventListener('focus', this.reconnectIfNotConnected); - } - } - - createNewInstance(account_id) { - if (this.account_id !== account_id) { - this.init(true); - } - } - - reconnectIfNotConnected = () => { - // eslint-disable-next-line no-console - console.log('connection state: ', this.api.connection.readyState); - if (this.api.connection.readyState !== 1) { - // eslint-disable-next-line no-console - console.log('Info: Connection to the server was closed, trying to reconnect.'); - this.init(); - } - }; - - authorizeAndSubscribe() { - const { token, account_id } = getToken(); - if (token) { - this.token = token; - this.account_id = account_id; - this.api - .authorize(this.token) - .then(({ authorize }) => { - if (this.has_activeSymbols) { - this.toggleRunButton(false); - } else { - this.getActiveSymbols(); - } - this.subscribe(); - this.account_info = authorize; - }) - .catch(e => { - globalObserver.emit('Error', e); - }); - } - } - - subscribe() { - doUntilDone(() => this.api.send({ balance: 1, subscribe: 1 })); - doUntilDone(() => this.api.send({ transaction: 1, subscribe: 1 })); - } - - getActiveSymbols = async () => { - doUntilDone(() => this.api.send({ active_symbols: 'brief' })).then(({ active_symbols = [] }) => { - const pip_sizes = {}; - if (active_symbols.length) this.has_activeSymbols = true; - active_symbols.forEach(({ symbol, pip }) => { - pip_sizes[symbol] = +(+pip).toExponential().substring(3); - }); - this.pip_sizes = pip_sizes; - this.toggleRunButton(false); - }); - }; - - toggleRunButton = toggle => { - const run_button = document.querySelector('#db-animation__run-button'); - if (!run_button) return; - run_button.disabled = toggle; - }; - - setIsRunning(toggle = false) { - this.is_running = toggle; - } - - pushSubscription(subscription) { - this.subscriptions.push(subscription); - } - - clearSubscriptions() { - this.subscriptions.forEach(s => s.unsubscribe()); - this.subscriptions = []; - - // Resetting timeout resolvers - const global_timeouts = globalObserver.getState('global_timeouts') ?? []; - - global_timeouts.forEach((_, i) => { - clearTimeout(i); - }); - } - - getTime() { - if (!this.time_interval) { - this.time_interval = setInterval(() => { - this.api.send({ time: 1 }); - }, 30000); - } - } -} - -export const api_base = new APIBase(); diff --git a/packages/bot-skeleton/src/services/api/appId.js b/packages/bot-skeleton/src/services/api/appId.js index e56a9931fbea..ed7417a9d34d 100644 --- a/packages/bot-skeleton/src/services/api/appId.js +++ b/packages/bot-skeleton/src/services/api/appId.js @@ -10,19 +10,3 @@ export const generateDerivApiInstance = () => { }); return deriv_api; }; - -export const getLoginId = () => { - const login_id = localStorage.getItem('active_loginid'); - if (login_id && login_id !== 'null') return login_id; - return null; -}; - -export const getToken = () => { - const active_loginid = getLoginId(); - const client_accounts = JSON.parse(localStorage.getItem('client.accounts')) || undefined; - const active_account = (client_accounts && client_accounts[active_loginid]) || {}; - return { - token: active_account?.token || undefined, - account_id: active_loginid || undefined, - }; -}; diff --git a/packages/bot-skeleton/src/services/api/ticks_service.js b/packages/bot-skeleton/src/services/api/ticks_service.js index 3c6632faca0a..2eaf3e8a50ce 100644 --- a/packages/bot-skeleton/src/services/api/ticks_service.js +++ b/packages/bot-skeleton/src/services/api/ticks_service.js @@ -2,7 +2,6 @@ import { Map } from 'immutable'; import { historyToTicks, getLast } from 'binary-utils'; import { doUntilDone, getUUID } from '../tradeEngine/utils/helpers'; import { observer as globalObserver } from '../../utils/observer'; -import { api_base } from './api-base'; const parseTick = tick => ({ epoch: +tick.epoch, @@ -40,7 +39,8 @@ const updateCandles = (candles, ohlc) => { const getType = isCandle => (isCandle ? 'candles' : 'ticks'); export default class TicksService { - constructor() { + constructor(api) { + this.api = api; this.ticks = new Map(); this.candles = new Map(); this.tickListeners = new Map(); @@ -60,13 +60,23 @@ export default class TicksService { if (!this.active_symbols_promise) { this.active_symbols_promise = new Promise(resolve => { - this.pipSizes = api_base.pip_sizes; - resolve(this.pipSizes); + this.getActiveSymbols().then(active_symbols => { + this.pipSizes = active_symbols + .reduce((s, i) => s.set(i.symbol, +(+i.pip).toExponential().substring(3)), new Map()) + .toObject(); + resolve(this.pipSizes); + }); }); } return this.active_symbols_promise; } + getActiveSymbols = async () => { + await this.api.expectResponse('authorize'); + const active_symbols = await this.api.send({ active_symbols: 'brief' }); + return active_symbols.active_symbols; + }; + request(options) { const { symbol, granularity } = options; @@ -79,6 +89,7 @@ export default class TicksService { if (style === 'candles' && this.candles.hasIn([symbol, Number(granularity)])) { return Promise.resolve(this.candles.getIn([symbol, Number(granularity)])); } + return this.requestStream({ ...options, style }); } @@ -152,7 +163,7 @@ export default class TicksService { ...(tickSubscription || []), ]; - Promise.all(subscription.map(id => doUntilDone(() => api_base.api.forget(id)))); + Promise.all(subscription.map(id => doUntilDone(() => this.api.forget(id)))); this.subscriptions = new Map(); } @@ -184,7 +195,7 @@ export default class TicksService { } observe() { - const subscription = api_base.api.onMessage().subscribe(({ data }) => { + this.api.onMessage().subscribe(({ data }) => { if (data.msg_type === 'tick') { const { tick } = data; const { symbol, id } = tick; @@ -207,7 +218,6 @@ export default class TicksService { } } }); - api_base.pushSubscription(subscription); } requestStream(options) { @@ -250,7 +260,7 @@ export default class TicksService { style, }; return new Promise((resolve, reject) => { - doUntilDone(() => api_base.api.send(request_object), [], api_base) + doUntilDone(() => this.api.send(request_object)) .then(r => { if (style === 'ticks') { const ticks = historyToTicks(r.history); @@ -268,27 +278,4 @@ export default class TicksService { .catch(reject); }); } - - forget = subscription_id => { - if (subscription_id) { - api_base.api.forget(subscription_id); - } - }; - - unsubscribeFromTicksService() { - if (this.ticks_history_promise) { - const { stringified_options } = this.ticks_history_promise; - const { symbol = '' } = JSON.parse(stringified_options); - if (symbol) { - this.forget(this.subscriptions.getIn(['tick', symbol])); - } - } - if (this.candles_promise) { - const { stringified_options } = this.candles_promise; - const { symbol = '' } = JSON.parse(stringified_options); - if (symbol) { - this.forget(this.subscriptions.getIn(['candle', symbol])); - } - } - } } diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/Balance.js b/packages/bot-skeleton/src/services/tradeEngine/trade/Balance.js index 03a01578c671..19f3aad85318 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/Balance.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/Balance.js @@ -1,14 +1,13 @@ import { getFormattedText } from '@deriv/shared'; import { info } from '../utils/broadcast'; import DBotStore from '../../../scratch/dbot-store'; -import { api_base } from '../../api/api-base'; let balance_string = ''; export default Engine => class Balance extends Engine { observeBalance() { - const subscription = api_base.api.onMessage().subscribe(({ data }) => { + this.api.onMessage().subscribe(({ data }) => { if (data.msg_type === 'balance') { const { balance: { balance: b, currency }, @@ -19,7 +18,6 @@ export default Engine => info({ accountID: this.accountInfo.loginid, balance: balance_string }); } }); - api_base.pushSubscription(subscription); } // eslint-disable-next-line class-methods-use-this diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/OpenContract.js b/packages/bot-skeleton/src/services/tradeEngine/trade/OpenContract.js index 2c65f1637ae6..52c610a5f0a0 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/OpenContract.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/OpenContract.js @@ -3,16 +3,15 @@ import { sell, openContractReceived } from './state/actions'; import { contractStatus, contract as broadcastContract } from '../utils/broadcast'; import { doUntilDone } from '../utils/helpers'; import DBotStore from '../../../scratch/dbot-store'; -import { api_base } from '../../api/api-base'; export default Engine => class OpenContract extends Engine { observeOpenContract() { - const subscription = api_base.api.onMessage().subscribe(({ data }) => { + this.api.onMessage().subscribe(({ data }) => { if (data.msg_type === 'proposal_open_contract') { const contract = data.proposal_open_contract; - if (!contract || !this.expectedContractId(contract?.contract_id)) { + if (!contract && !this.expectedContractId(contract?.contract_id)) { return; } @@ -20,7 +19,7 @@ export default Engine => this.data.contract = contract; - broadcastContract({ accountID: api_base.account_info.loginid, ...contract }); + broadcastContract({ accountID: this.accountInfo.loginid, ...contract }); if (this.isSold) { this.contractId = ''; @@ -42,7 +41,6 @@ export default Engine => } } }); - api_base.pushSubscription(subscription); } waitForAfter() { @@ -53,13 +51,7 @@ export default Engine => subscribeToOpenContract(contract_id = this.contractId) { this.contractId = contract_id; - const request_object = { - proposal_open_contract: 1, - contract_id, - subscribe: 1, - }; - - doUntilDone(() => api_base.api.send(request_object)) + doUntilDone(() => this.api.send({ proposal_open_contract: 1, contract_id, subscribe: 1 })) .then(data => { const { populateConfig } = DBotStore.instance; populateConfig(data.proposal_open_contract); @@ -67,7 +59,7 @@ export default Engine => }) .catch(error => { if (error.error.code !== 'AlreadySubscribed') { - doUntilDone(() => api_base.api.send(request_object)).then( + doUntilDone(() => this.api.send({ proposal_open_contract: 1, contract_id, subscribe: 1 })).then( response => (this.openContractId = response.proposal_open_contract.id) ); } diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/Proposal.js b/packages/bot-skeleton/src/services/tradeEngine/trade/Proposal.js index 515d40b9421a..17e7914b298a 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/Proposal.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/Proposal.js @@ -1,7 +1,6 @@ import { localize } from '@deriv/translations'; import { proposalsReady, clearProposals } from './state/actions'; import { tradeOptionToProposal, doUntilDone } from '../utils/helpers'; -import { api_base } from '../../api/api-base'; export default Engine => class Proposal extends Engine { @@ -70,7 +69,7 @@ export default Engine => Promise.all( this.proposal_templates.map(proposal => { - doUntilDone(() => api_base.api.send(proposal)).catch(error => { + doUntilDone(() => this.api.send(proposal)).catch(error => { // We intercept ContractBuyValidationError as user may have specified // e.g. a DIGITUNDER 0 or DIGITOVER 9, while one proposal may be invalid // the other is valid. We will error on Purchase rather than here. @@ -95,7 +94,7 @@ export default Engine => } observeProposals() { - const subscription = api_base.api.onMessage().subscribe(response => { + this.api.onMessage().subscribe(response => { if (response.data.msg_type === 'proposal') { const { passthrough, proposal } = response.data; if ( @@ -109,7 +108,6 @@ export default Engine => } } }); - api_base.pushSubscription(subscription); } unsubscribeProposals() { @@ -130,7 +128,7 @@ export default Engine => return Promise.resolve(); } - return doUntilDone(() => api_base.api.forget(proposal.id)).then(() => { + return doUntilDone(() => this.api.forget(proposal.id)).then(() => { removeForgetProposalById(proposal.id); }); }) diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/Purchase.js b/packages/bot-skeleton/src/services/tradeEngine/trade/Purchase.js index cd3730f840eb..800c54201f93 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/Purchase.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/Purchase.js @@ -3,7 +3,6 @@ import { BEFORE_PURCHASE } from './state/constants'; import { contractStatus, info, log } from '../utils/broadcast'; import { getUUID, recoverFromError, doUntilDone } from '../utils/helpers'; import { log_types } from '../../../constants/messages'; -import { api_base } from '../../api/api-base'; let delayIndex = 0; let purchase_reference; @@ -42,7 +41,7 @@ export default Engine => buy_price: buy.buy_price, }); }; - const action = () => api_base.api.send({ buy: id, price: askPrice }); + const action = () => this.api.send({ buy: id, price: askPrice }); this.isSold = false; contractStatus({ id: 'contract.purchase_sent', diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/Sell.js b/packages/bot-skeleton/src/services/tradeEngine/trade/Sell.js index d2dc6bb7a3dc..203cb9d6bdee 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/Sell.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/Sell.js @@ -3,7 +3,6 @@ import { contractStatus, log } from '../utils/broadcast'; import { recoverFromError, doUntilDone } from '../utils/helpers'; import { log_types } from '../../../constants/messages'; import { observer as globalObserver } from '../../../utils/observer'; -import { api_base } from '../../api/api-base'; export default Engine => class Sell extends Engine { @@ -43,9 +42,9 @@ export default Engine => const contract_id = this.contractId; const sellContractAndGetContractInfo = () => { - return doUntilDone(() => api_base.api.send({ sell: contract_id, price: 0 })) + return doUntilDone(() => this.api.send({ sell: contract_id, price: 0 })) .then(sell_response => { - doUntilDone(() => api_base.api.send({ proposal_open_contract: 1, contract_id })).then( + doUntilDone(() => this.api.send({ proposal_open_contract: 1, contract_id })).then( () => sell_response ); }) @@ -71,7 +70,7 @@ export default Engine => // For every other error, check whether the contract is not actually already sold. return doUntilDone(() => - api_base.api.send({ + this.api.send({ proposal_open_contract: 1, contract_id, }) diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/index.js b/packages/bot-skeleton/src/services/tradeEngine/trade/index.js index 0a619a075f0f..145bfcf67219 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/index.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/index.js @@ -15,7 +15,6 @@ import { doUntilDone } from '../utils/helpers'; import { expectInitArg } from '../utils/sanitize'; import { createError } from '../../../utils/error'; import { observer as globalObserver } from '../../../utils/observer'; -import { api_base } from '../../api/api-base'; const watchBefore = store => watchScope({ @@ -65,6 +64,7 @@ const watchScope = ({ store, stopScope, passScope, passFlag }) => { export default class TradeEngine extends Balance(Purchase(Sell(OpenContract(Proposal(Ticks(Total(class {}))))))) { constructor($scope) { super(); + this.api = $scope.api; this.observer = $scope.observer; this.$scope = $scope; this.observe(); @@ -95,6 +95,7 @@ export default class TradeEngine extends Balance(Purchase(Sell(OpenContract(Prop globalObserver.emit('bot.running'); this.tradeOptions = tradeOptions; + this.store.dispatch(start()); this.checkLimits(tradeOptions); this.makeProposals({ ...this.options, ...tradeOptions }); @@ -105,13 +106,17 @@ export default class TradeEngine extends Balance(Purchase(Sell(OpenContract(Prop if (this.token === token) { return Promise.resolve(); } + + doUntilDone(() => this.api.authorize(token)).catch(e => { + this.$scope.observer.emit('Error', e); + }); return new Promise(resolve => { // Try to recover from a situation where API doesn't give us a correct response on // "proposal_open_contract" which would make the bot run forever. When there's a "sell" // event, wait a couple seconds for the API to give us the correct "proposal_open_contract" // response, if there's none after x seconds. Send an explicit request, which _should_ // solve the issue. This is a backup! - const subscription = api_base.api.onMessage().subscribe(({ data }) => { + this.api.onMessage().subscribe(({ data }) => { if (data.msg_type === 'transaction' && data.transaction.action === 'sell') { this.transaction_recovery_timeout = setTimeout(() => { const { contract } = this.data; @@ -119,16 +124,27 @@ export default class TradeEngine extends Balance(Purchase(Sell(OpenContract(Prop const is_open_contract = contract.status === 'open'; if (is_same_contract && is_open_contract) { doUntilDone(() => { - api_base.api.send({ proposal_open_contract: 1, contract_id: contract.contract_id }); + this.api.send({ proposal_open_contract: 1, contract_id: contract.contract_id }); }, ['PriceMoved']); } }, 1500); } - this.accountInfo = api_base.account_info; - this.token = api_base.token; - resolve(); + if (data.msg_type === 'authorize') { + this.accountInfo = data; + this.token = token; + + // Only subscribe to balance in browser, not for tests. + if (document) { + doUntilDone(() => this.api.send({ balance: 1, subscribe: 1 })).then(r => { + this.balance = Number(r.balance.balance); + resolve(); + }); + } else { + resolve(); + } + doUntilDone(() => this.api.send({ transaction: 1, subscribe: 1 })); + } }); - api_base.pushSubscription(subscription); }); } diff --git a/packages/bot-skeleton/src/services/tradeEngine/utils/cliTools.js b/packages/bot-skeleton/src/services/tradeEngine/utils/cliTools.js index 63cb063a7dc2..bac5c53d459d 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/utils/cliTools.js +++ b/packages/bot-skeleton/src/services/tradeEngine/utils/cliTools.js @@ -1,9 +1,11 @@ import TicksService from '../../api/ticks_service'; import Observer from '../../../utils/observer'; +import { generateDerivApiInstance } from '../../api/appId'; export const createScope = () => { const observer = new Observer(); - const ticksService = new TicksService(); + const api = generateDerivApiInstance(); + const ticksService = new TicksService(api); const stopped = false; - return { observer, ticksService, stopped }; + return { observer, api, ticksService, stopped }; }; diff --git a/packages/bot-skeleton/src/services/tradeEngine/utils/helpers.js b/packages/bot-skeleton/src/services/tradeEngine/utils/helpers.js index 8a996f9ec836..ecb02e769017 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/utils/helpers.js +++ b/packages/bot-skeleton/src/services/tradeEngine/utils/helpers.js @@ -130,17 +130,13 @@ export const shouldThrowError = (error, errors_to_ignore = []) => { return !is_ignorable_error; }; -export const recoverFromError = (promiseFn, recoverFn, errors_to_ignore, delay_index, api_base) => { +export const recoverFromError = (promiseFn, recoverFn, errors_to_ignore, delay_index) => { return new Promise((resolve, reject) => { const promise = promiseFn(); if (promise) { promise.then(resolve).catch(error => { - /** - * if bot is not running there is no point of recovering from error - * `!api_base.is_running` will check the bot status if it is not running it will kick out the control from loop - */ - if (shouldThrowError(error, errors_to_ignore) || (api_base && !api_base.is_running)) { + if (shouldThrowError(error, errors_to_ignore)) { reject(error); return; } @@ -176,13 +172,7 @@ export const recoverFromError = (promiseFn, recoverFn, errors_to_ignore, delay_i }); }; -/** - * @param {*} promiseFn api call - it could be api call or subscription - * @param {*} errors_to_ignore list of errors to ignore - * @param {*} api_base instance of APIBase class to check if the bot is running or not - * @returns a new promise - */ -export const doUntilDone = (promiseFn, errors_to_ignore, api_base) => { +export const doUntilDone = (promiseFn, errors_to_ignore) => { let delay_index = 1; return new Promise((resolve, reject) => { @@ -192,7 +182,7 @@ export const doUntilDone = (promiseFn, errors_to_ignore, api_base) => { }; const repeatFn = () => { - recoverFromError(promiseFn, recoverFn, errors_to_ignore, delay_index, api_base).then(resolve).catch(reject); + recoverFromError(promiseFn, recoverFn, errors_to_ignore, delay_index).then(resolve).catch(reject); }; repeatFn(); diff --git a/packages/bot-skeleton/src/services/tradeEngine/utils/interpreter.js b/packages/bot-skeleton/src/services/tradeEngine/utils/interpreter.js index 788d172dbe39..d43cb67f01d0 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/utils/interpreter.js +++ b/packages/bot-skeleton/src/services/tradeEngine/utils/interpreter.js @@ -4,7 +4,6 @@ import { createScope } from './cliTools'; import Interface from '../Interface'; import { unrecoverable_errors } from '../../../constants/messages'; import { observer as globalObserver } from '../../../utils/observer'; -import { api_base } from '../../api/api-base'; JSInterpreter.prototype.takeStateSnapshot = function () { const newStateStack = cloneThorough(this.stateStack, undefined, undefined, undefined, true); @@ -181,14 +180,16 @@ const Interpreter = () => { } function terminateSession() { + const { connection } = $scope.api; + if (connection.readyState === 0) { + connection.addEventListener('open', () => connection.close()); + } else if (connection.readyState === 1) { + connection.close(); + } + $scope.stopped = true; $scope.is_error_triggered = false; globalObserver.emit('bot.stop'); - const { ticksService } = $scope; - // Unsubscribe previous ticks_history subscription - ticksService.unsubscribeFromTicksService(); - // Unsubscribe the subscriptions from Proposal, Balance and OpenContract - api_base.clearSubscriptions(); } function run(code) { diff --git a/packages/bot-web-ui/src/components/trade-animation/trade-animation.jsx b/packages/bot-web-ui/src/components/trade-animation/trade-animation.jsx index de40ff31ad8c..738ed174987a 100644 --- a/packages/bot-web-ui/src/components/trade-animation/trade-animation.jsx +++ b/packages/bot-web-ui/src/components/trade-animation/trade-animation.jsx @@ -85,16 +85,9 @@ const TradeAnimation = ({ info_direction, toggleAnimationInfoModal, cashier_validation, - performSelfExclusionCheck, }) => { const [is_button_disabled, updateIsButtonDisabled] = React.useState(false); const is_unavailable_for_payment_agent = cashier_validation?.includes('WithdrawServiceUnavailableForPA'); - - // perform self-exclusion checks which will be stored under the self-exclusion-store - React.useEffect(() => { - performSelfExclusionCheck(); - }, []); - React.useEffect(() => { if (is_button_disabled) { setTimeout(() => { @@ -102,7 +95,6 @@ const TradeAnimation = ({ }, 1000); } }, [is_button_disabled]); - const status_classes = ['', '', '']; let progress_status = contract_stage - @@ -182,7 +174,6 @@ TradeAnimation.propTypes = { is_stop_button_disabled: PropTypes.bool, onRunButtonClick: PropTypes.func, onStopButtonClick: PropTypes.func, - performSelfExclusionCheck: PropTypes.func, profit: PropTypes.number, should_show_overlay: PropTypes.bool, }; @@ -196,7 +187,6 @@ export default connect(({ summary_card, run_panel, toolbar, ui, client }) => ({ is_stop_button_disabled: run_panel.is_stop_button_disabled, onRunButtonClick: run_panel.onRunButtonClick, onStopButtonClick: run_panel.onStopButtonClick, - performSelfExclusionCheck: run_panel.performSelfExclusionCheck, profit: summary_card.profit, should_show_overlay: run_panel.should_show_overlay, toggleAnimationInfoModal: toolbar.toggleAnimationInfoModal, diff --git a/packages/bot-web-ui/src/stores/app-store.js b/packages/bot-web-ui/src/stores/app-store.js index 862140f7d1e5..2088fa4b7da7 100644 --- a/packages/bot-web-ui/src/stores/app-store.js +++ b/packages/bot-web-ui/src/stores/app-store.js @@ -39,7 +39,7 @@ export default class AppStore { onUnmount() { DBot.terminateBot(); - DBot.terminateConnection(); + if (Blockly.derivWorkspace) { clearInterval(Blockly.derivWorkspace.save_workspace_interval); Blockly.derivWorkspace.dispose(); diff --git a/packages/bot-web-ui/src/stores/run-panel-store.js b/packages/bot-web-ui/src/stores/run-panel-store.js index c35b2390467e..c0144b8e494a 100644 --- a/packages/bot-web-ui/src/stores/run-panel-store.js +++ b/packages/bot-web-ui/src/stores/run-panel-store.js @@ -32,7 +32,6 @@ export default class RunPanelStore { toggleDrawer: action.bound, setActiveTabIndex: action.bound, onCloseDialog: action.bound, - performSelfExclusionCheck: action.bound, showStopMultiplierContractDialog: action.bound, showLoginDialog: action.bound, showRealAccountDialog: action.bound, @@ -131,11 +130,6 @@ export default class RunPanelStore { ); } - async performSelfExclusionCheck() { - const { self_exclusion } = this.root_store; - await self_exclusion.checkRestriction(); - } - async onRunButtonClick() { const { core, summary_card, route_prompt_dialog, self_exclusion } = this.root_store; const { client, ui } = core; @@ -154,6 +148,7 @@ export default class RunPanelStore { */ if (is_ios || isSafari()) this.preloadAudio(); + await self_exclusion.checkRestriction(); if (!self_exclusion.should_bot_run) { self_exclusion.setIsRestricted(true); return; From f3af598d9db1737f8884f03f4abec412ed34ba04 Mon Sep 17 00:00:00 2001 From: Muhammad Hamza <120543468+hamza-deriv@users.noreply.github.com> Date: Fri, 20 Jan 2023 15:28:50 +0800 Subject: [PATCH 56/84] Hamza/85369/clear button for notifications (#7348) * chore: removed the unused variables v1.1 * feat: Mobile view Clear Functionality v1.2 * refactor: removed the commented code and added nit pick * chore: css changes from hex to variables and px to rem * fix: console error check 85369 --- .../notifications-dialog.jsx | 59 ++++++++++++++++++- .../core/src/Stores/notification-store.js | 12 ++++ .../app/modules/notifications-dialog.scss | 37 +++++++++++- 3 files changed, 103 insertions(+), 5 deletions(-) diff --git a/packages/core/src/App/Containers/NotificationsDialog/notifications-dialog.jsx b/packages/core/src/App/Containers/NotificationsDialog/notifications-dialog.jsx index 708a8a50499c..611fe2fedbd4 100644 --- a/packages/core/src/App/Containers/NotificationsDialog/notifications-dialog.jsx +++ b/packages/core/src/App/Containers/NotificationsDialog/notifications-dialog.jsx @@ -92,9 +92,34 @@ const NotificationsList = ({ notifications, toggleDialog }) => { ); }; -const NotificationListWrapper = React.forwardRef(({ notifications, toggleDialog }, ref) => { + +const ClearAllFooter = ({ is_empty, clearNotifications }) => { + return ( + +
+
+ +
+ + ); +}; + +const NotificationListWrapper = React.forwardRef(({ notifications, toggleDialog, clearNotifications }, ref) => { const is_empty = !notifications.length; const { is_pre_appstore } = React.useContext(PlatformContext); + return (
+
); }); NotificationListWrapper.displayName = 'NotificationListWrapper'; -const NotificationsDialog = ({ is_visible, notifications, toggleDialog }) => { +const NotificationsDialog = ({ + is_visible, + notifications, + toggleDialog, + removeNotificationMessage, + removeNotificationMessageByKey, + removeNotifications, +}) => { const wrapper_ref = React.useRef(); const handleClickOutside = event => { @@ -144,6 +177,17 @@ const NotificationsDialog = ({ is_visible, notifications, toggleDialog }) => { } }; + const clearNotifications = () => { + return notifications.map(item => { + removeNotificationMessageByKey(item.key); + removeNotificationMessage({ + key: item.key, + should_show_again: false, + }); + removeNotifications(true); + }); + }; + useOnClickOutside(wrapper_ref, handleClickOutside); return ( @@ -160,6 +204,7 @@ const NotificationsDialog = ({ is_visible, notifications, toggleDialog }) => { notifications={notifications} ref={wrapper_ref} toggleDialog={toggleDialog} + clearNotifications={clearNotifications} /> @@ -178,6 +223,10 @@ const NotificationsDialog = ({ is_visible, notifications, toggleDialog }) => { notifications={notifications} ref={wrapper_ref} toggleDialog={toggleDialog} + removeNotificationMessage={removeNotificationMessage} + removeNotifications={removeNotifications} + removeNotificationMessageByKey={removeNotificationMessageByKey} + clearNotifications={clearNotifications} />
@@ -189,6 +238,10 @@ NotificationsDialog.propTypes = { is_visible: PropTypes.bool, notifications: PropTypes.array, toggleDialog: PropTypes.func, + removeNotificationMessage: PropTypes.func, + removeNotificationByKey: PropTypes.func, + removeNotificationMessageByKey: PropTypes.func, + removeNotifications: PropTypes.func, }; export default connect(({ common, notifications }) => ({ @@ -196,4 +249,6 @@ export default connect(({ common, notifications }) => ({ app_routing_history: common.app_routing_history, removeNotificationByKey: notifications.removeNotificationByKey, removeNotificationMessage: notifications.removeNotificationMessage, + removeNotifications: notifications.removeNotifications, + removeNotificationMessageByKey: notifications.removeNotificationMessageByKey, }))(NotificationsDialog); diff --git a/packages/core/src/Stores/notification-store.js b/packages/core/src/Stores/notification-store.js index 43c3ee2d6309..5c5f2e0e2655 100644 --- a/packages/core/src/Stores/notification-store.js +++ b/packages/core/src/Stores/notification-store.js @@ -110,6 +110,7 @@ export default class NotificationStore extends BaseStore { this.setClientNotifications(); this.handleClientNotifications(); this.filterNotificationMessages(); + this.checkNotificationMessages(); } } ); @@ -228,6 +229,17 @@ export default class NotificationStore extends BaseStore { } } + // check for the already added keys in the notification_messages and don't display those notifications + checkNotificationMessages() { + const notifications_list = LocalStore.getObject('notification_messages'); + const refined_list = Object.values(notifications_list)?.[0]; + if (refined_list?.length) { + refined_list.map(refined => { + this.removeNotificationByKey({ key: refined }); + }); + } + } + async handleClientNotifications() { const { account_settings, diff --git a/packages/core/src/sass/app/modules/notifications-dialog.scss b/packages/core/src/sass/app/modules/notifications-dialog.scss index b344c63cff0d..7b7e16ce99c7 100644 --- a/packages/core/src/sass/app/modules/notifications-dialog.scss +++ b/packages/core/src/sass/app/modules/notifications-dialog.scss @@ -70,15 +70,46 @@ display: none; } } + &__footer { + height: 3.7rem; + align-items: end; + display: flex; + justify-content: end; + padding-left: 1.3rem; + background: var(--general-main-2); + box-shadow: 0 4px 8px 2px var(--shadow-menu); + transition: transform 0.3s cubic-bezier(0.25, 0.1, 0.25, 1), opacity 0.25s linear; + border-bottom-right-radius: 0.5rem; + border-bottom-left-radius: 0.5rem; + } + &__separator { + border-bottom: 1px solid var(--general-section-1); + } + &__clear { + border: 1px solid var(--shadow-box); + height: 2.4rem; + width: auto; + bottom: 0.6rem; + right: 1.7rem; + padding: 0.7rem; + + &:hover { + background: var(--button-secondary-hover); + } + } &__content { - padding: 8px 0; + padding: 0.8rem 0; height: calc(100% - 37px); border-radius: $BORDER_RADIUS; &--empty { display: flex; - height: 100%; - max-height: 400px; + } + + &--sticky { + display: flex; + position: sticky; + bottom: 0; } @include mobile { height: calc(100vh - 40px); From 572db5bb9479b6b5fa5b57309a5cd5a311fa7f60 Mon Sep 17 00:00:00 2001 From: Muhammad Hamza <120543468+hamza-deriv@users.noreply.github.com> Date: Fri, 20 Jan 2023 16:02:43 +0800 Subject: [PATCH 57/84] chore: textual change 85884 (#7409) --- .../Verification/ProofOfAddress/proof-of-address-form.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/account/src/Sections/Verification/ProofOfAddress/proof-of-address-form.jsx b/packages/account/src/Sections/Verification/ProofOfAddress/proof-of-address-form.jsx index bc1b892f8f6f..6a1780e4e832 100644 --- a/packages/account/src/Sections/Verification/ProofOfAddress/proof-of-address-form.jsx +++ b/packages/account/src/Sections/Verification/ProofOfAddress/proof-of-address-form.jsx @@ -45,7 +45,7 @@ let file_uploader_ref = null; const UploaderSideNote = () => (
- + From aaca77c0782ebab1a79a3d44bdbe64c39efe4706 Mon Sep 17 00:00:00 2001 From: Sergei Baranovski <120570511+sergei-deriv@users.noreply.github.com> Date: Fri, 20 Jan 2023 05:07:45 -0500 Subject: [PATCH 58/84] fix: Higher/Lower Trade type contracts Rise/Fall is shown (#7346) --- packages/reports/src/Components/market-symbol-icon-row.jsx | 5 +++-- packages/reports/src/Helpers/market-underlying.js | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/reports/src/Components/market-symbol-icon-row.jsx b/packages/reports/src/Components/market-symbol-icon-row.jsx index a6bcb7e47946..b84fdf012957 100644 --- a/packages/reports/src/Components/market-symbol-icon-row.jsx +++ b/packages/reports/src/Components/market-symbol-icon-row.jsx @@ -7,6 +7,7 @@ import { getMarketName, getTradeTypeName } from '../Helpers/market-underlying'; const MarketSymbolIconRow = ({ icon, payload, show_description, should_show_multiplier = true }) => { const should_show_category_icon = typeof payload.shortcode === 'string'; const info_from_shortcode = extractInfoFromShortcode(payload.shortcode); + const is_high_low = isHighLow({ shortcode_info: info_from_shortcode }); if (should_show_category_icon && info_from_shortcode) { return ( @@ -37,13 +38,13 @@ const MarketSymbolIconRow = ({ icon, payload, show_description, should_show_mult classNameTarget='category-type-icon__popover' classNameBubble='category-type-icon__popover-bubble' alignment='top' - message={getTradeTypeName(info_from_shortcode.category)} + message={getTradeTypeName(info_from_shortcode.category, is_high_low)} is_bubble_hover_enabled disable_target_icon > { export const getMarketName = underlying => (underlying ? getMarketNamesMap()[underlying.toUpperCase()] : null); -export const getTradeTypeName = category => (category ? getContractConfig()[category.toUpperCase()].name : null); +export const getTradeTypeName = (category, is_high_low = false) => + category ? getContractConfig(is_high_low)[category.toUpperCase()].name : null; export const getContractDurationType = (longcode, shortcode) => { if (/^MULTUP|MULTDOWN/.test(shortcode)) return ''; From 6ea7c91a7ee458fdddde3c3ba630a2b04e7f0b7d Mon Sep 17 00:00:00 2001 From: Akmal Djumakhodjaev Date: Fri, 20 Jan 2023 18:08:55 +0800 Subject: [PATCH 59/84] Akmal / fix position drawer background (#7178) * fix: position drawer background * fix: sidebar width for empty list --- .../trader/src/sass/app/_common/drawer/positions-drawer.scss | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/trader/src/sass/app/_common/drawer/positions-drawer.scss b/packages/trader/src/sass/app/_common/drawer/positions-drawer.scss index 600357d42851..121c161cba99 100644 --- a/packages/trader/src/sass/app/_common/drawer/positions-drawer.scss +++ b/packages/trader/src/sass/app/_common/drawer/positions-drawer.scss @@ -9,9 +9,7 @@ $header-height: 3.6em; $MARGIN_TOP: #{$POSITIONS_DRAWER_MARGIN * 2}; $MARGIN_BOTTOM: #{$POSITIONS_DRAWER_MARGIN * 2}; - min-width: $POSITIONS_DRAWER_WIDTH; - max-width: 260px; - width: auto; + width: 240px; height: calc(100vh - #{$HEADER_HEIGHT} - #{$FOOTER_HEIGHT} - #{$MARGIN_TOP} - #{$MARGIN_BOTTOM}); margin-top: #{$MARGIN_TOP}; position: fixed; From c28ab14d9f9427a7b4ab8638607e29545347d017 Mon Sep 17 00:00:00 2001 From: Likhith Kolayari <98398322+likhith-deriv@users.noreply.github.com> Date: Fri, 20 Jan 2023 14:10:30 +0400 Subject: [PATCH 60/84] likhith/fix: :bug: resolved flickering issue in platform switcher (#7342) * fix: :bug: resolved f;iclering issue in p[latform switcher * refactor: :recycle: refactored code * feat: reordered code block --- .../Components/Layout/Header/account-info.jsx | 14 ++++--- .../Layout/Header/platform-dropdown.jsx | 15 +++---- .../Layout/Header/platform-switcher.jsx | 27 ++++++++---- .../header/dashboard-platform-header.jsx | 12 +++--- .../Layout/header/default-header.jsx | 34 +++++++++------ packages/core/src/Stores/client-store.js | 42 ++++++++++--------- 6 files changed, 84 insertions(+), 60 deletions(-) diff --git a/packages/core/src/App/Components/Layout/Header/account-info.jsx b/packages/core/src/App/Components/Layout/Header/account-info.jsx index ad02d60a8813..5d3a169e24d3 100644 --- a/packages/core/src/App/Components/Layout/Header/account-info.jsx +++ b/packages/core/src/App/Components/Layout/Header/account-info.jsx @@ -1,12 +1,13 @@ -import classNames from 'classnames'; -import PropTypes from 'prop-types'; -import React from 'react'; -import { CSSTransition } from 'react-transition-group'; import { DesktopWrapper, Icon, MobileWrapper, Popover, Text } from '@deriv/components'; + +import { AccountSwitcher } from 'App/Containers/AccountSwitcher'; +import AccountSwitcherMobile from 'App/Containers/AccountSwitcher/account-switcher-mobile.jsx'; +import { CSSTransition } from 'react-transition-group'; import { Localize } from '@deriv/translations'; +import PropTypes from 'prop-types'; +import React from 'react'; +import classNames from 'classnames'; import { getCurrencyDisplayCode } from '@deriv/shared'; -import AccountSwitcherMobile from 'App/Containers/AccountSwitcher/account-switcher-mobile.jsx'; -import { AccountSwitcher } from 'App/Containers/AccountSwitcher'; const AccountInfoWrapper = ({ is_disabled, disabled_message, children }) => is_disabled && disabled_message ? ( @@ -57,6 +58,7 @@ const AccountInfo = ({ is_disabled, }) => { const currency_lower = currency?.toLowerCase(); + return (
diff --git a/packages/core/src/App/Components/Layout/Header/platform-dropdown.jsx b/packages/core/src/App/Components/Layout/Header/platform-dropdown.jsx index 84b34e051bd7..f252a4b03c36 100644 --- a/packages/core/src/App/Components/Layout/Header/platform-dropdown.jsx +++ b/packages/core/src/App/Components/Layout/Header/platform-dropdown.jsx @@ -1,14 +1,15 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import ReactDOM from 'react-dom'; +import 'Sass/app/_common/components/platform-dropdown.scss'; + import { Div100vhContainer, Icon, useOnClickOutside } from '@deriv/components'; -import { routes, isDesktop, isMobile, getActivePlatform, PlatformContext, getPlatformSettings } from '@deriv/shared'; +import { PlatformContext, getActivePlatform, getPlatformSettings, isDesktop, isMobile, routes } from '@deriv/shared'; import { BinaryLink } from 'App/Components/Routes'; -import 'Sass/app/_common/components/platform-dropdown.scss'; +import PropTypes from 'prop-types'; +import React from 'react'; +import ReactDOM from 'react-dom'; const PlatformBox = ({ platform: { icon, title, description } }) => ( - <> +
(

{title()}

{description()}

- +
); const PlatformDropdownContent = ({ platform, app_routing_history, hide_dropdown_items }) => { diff --git a/packages/core/src/App/Components/Layout/Header/platform-switcher.jsx b/packages/core/src/App/Components/Layout/Header/platform-switcher.jsx index c7cbf2ac27f4..2a9235f3a22f 100644 --- a/packages/core/src/App/Components/Layout/Header/platform-switcher.jsx +++ b/packages/core/src/App/Components/Layout/Header/platform-switcher.jsx @@ -1,15 +1,24 @@ -import classNames from 'classnames'; -import PropTypes from 'prop-types'; -import React from 'react'; -import { withRouter } from 'react-router-dom'; -import { CSSTransition } from 'react-transition-group'; +import 'Sass/app/_common/components/platform-switcher.scss'; + import { Icon, Text } from '@deriv/components'; import { getPlatformInformation, isMobile } from '@deriv/shared'; -import { PlatformSwitcherLoader } from './Components/Preloader/platform-switcher.jsx'; + +import { CSSTransition } from 'react-transition-group'; import { PlatformDropdown } from './platform-dropdown.jsx'; -import 'Sass/app/_common/components/platform-switcher.scss'; +import { PlatformSwitcherLoader } from './Components/Preloader/platform-switcher.jsx'; +import PropTypes from 'prop-types'; +import React from 'react'; +import classNames from 'classnames'; +import { withRouter } from 'react-router-dom'; -const PlatformSwitcher = ({ toggleDrawer, app_routing_history, platform_config }) => { +const PlatformSwitcher = ({ + toggleDrawer, + app_routing_history, + platform_config, + is_landing_company_loaded, + is_logged_in, + is_logging_in, +}) => { const [is_open, setIsOpen] = React.useState(false); const is_close_drawer_fired_ref = React.useRef(false); @@ -28,7 +37,7 @@ const PlatformSwitcher = ({ toggleDrawer, app_routing_history, platform_config } is_close_drawer_fired_ref.current = true; }; - return app_routing_history.length === 0 ? ( + return (is_logged_in || is_logging_in ? !is_landing_company_loaded : app_routing_history.length === 0) ? (
{ return
; diff --git a/packages/core/src/App/Containers/Layout/header/default-header.jsx b/packages/core/src/App/Containers/Layout/header/default-header.jsx index 41b5a964ad5a..fd5c2c9c52c6 100644 --- a/packages/core/src/App/Containers/Layout/header/default-header.jsx +++ b/packages/core/src/App/Containers/Layout/header/default-header.jsx @@ -1,19 +1,20 @@ -import classNames from 'classnames'; +import { AccountActions, MenuLinks, PlatformSwitcher } from 'App/Components/Layout/Header'; +import { DesktopWrapper, Icon, MobileWrapper, Text } from '@deriv/components'; +import { PlatformContext, getDecimalPlaces, getPlatformInformation, isMobile, platforms, routes } from '@deriv/shared'; + +import { AccountsInfoLoader } from 'App/Components/Layout/Header/Components/Preloader'; +import { BinaryLink } from 'App/Components/Routes'; +import { Localize } from '@deriv/translations'; +import NewVersionNotification from 'App/Containers/new-version-notification.jsx'; import PropTypes from 'prop-types'; import React from 'react'; -import { withRouter } from 'react-router-dom'; -import { DesktopWrapper, MobileWrapper, Text, Icon } from '@deriv/components'; -import { routes, isMobile, getDecimalPlaces, getPlatformInformation, platforms, PlatformContext } from '@deriv/shared'; -import { AccountActions, MenuLinks, PlatformSwitcher } from 'App/Components/Layout/Header'; -import platform_config from 'App/Constants/platform-config'; import RealAccountSignup from 'App/Containers/RealAccountSignup'; import SetAccountCurrencyModal from 'App/Containers/SetAccountCurrencyModal'; -import NewVersionNotification from 'App/Containers/new-version-notification.jsx'; -import { connect } from 'Stores/connect'; import ToggleMenuDrawer from 'App/Components/Layout/Header/toggle-menu-drawer.jsx'; -import { AccountsInfoLoader } from 'App/Components/Layout/Header/Components/Preloader'; -import { BinaryLink } from 'App/Components/Routes'; -import { Localize } from '@deriv/translations'; +import classNames from 'classnames'; +import { connect } from 'Stores/connect'; +import platform_config from 'App/Constants/platform-config'; +import { withRouter } from 'react-router-dom'; const DefaultHeader = ({ acc_switcher_disabled_message, @@ -63,6 +64,7 @@ const DefaultHeader = ({ changeCurrentLanguage, is_trading_assessment_for_existing_user_enabled, active_account_landing_company, + is_landing_company_loaded, }) => { const toggle_menu_drawer_ref = React.useRef(null); const addUpdateNotification = () => addNotificationMessage(client_notifications.new_version_available); @@ -103,6 +105,7 @@ const DefaultHeader = ({ }, [removeUpdateNotification]); const onClickDeposit = () => history.push(routes.cashier_deposit); + const filterPlatformsForClients = payload => payload.filter(config => { if (config.link_to === routes.mt5) { @@ -163,6 +166,9 @@ const DefaultHeader = ({ @@ -192,6 +198,9 @@ const DefaultHeader = ({ @@ -284,7 +293,6 @@ DefaultHeader.propTypes = { is_bot_allowed: PropTypes.bool, is_dark_mode: PropTypes.bool, is_eu: PropTypes.bool, - is_loading: PropTypes.bool, is_logged_in: PropTypes.bool, is_logging_in: PropTypes.bool, is_mt5_allowed: PropTypes.bool, @@ -336,7 +344,6 @@ export default connect(({ client, common, ui, menu, modules, notifications }) => is_bot_allowed: client.is_bot_allowed, is_dark_mode: ui.is_dark_mode_on, is_eu: client.is_eu, - is_loading: ui.is_loading, is_logged_in: client.is_logged_in, is_logging_in: client.is_logging_in, is_mt5_allowed: client.is_mt5_allowed, @@ -362,4 +369,5 @@ export default connect(({ client, common, ui, menu, modules, notifications }) => toggleNotifications: notifications.toggleNotificationsModal, is_trading_assessment_for_existing_user_enabled: ui.is_trading_assessment_for_existing_user_enabled, active_account_landing_company: client.landing_company_shortcode, + is_landing_company_loaded: client.is_landing_company_loaded, }))(withRouter(DefaultHeader)); diff --git a/packages/core/src/Stores/client-store.js b/packages/core/src/Stores/client-store.js index e5d612a312d7..8bbf19d8c39f 100644 --- a/packages/core/src/Stores/client-store.js +++ b/packages/core/src/Stores/client-store.js @@ -1,37 +1,39 @@ +import * as SocketCache from '_common/base/socket_cache'; + import { + CFD_PLATFORMS, + LocalStore, + State, + deriv_urls, + filterUrlQuery, getPropertyValue, getUrlBinaryBot, getUrlSmartTrader, isDesktopOs, isEmptyObject, - LocalStore, + isLocal, + isProduction, + isStaging, + isTestLink, redirectToLogin, + routes, setCurrencies, - State, toMoment, - deriv_urls, urlForLanguage, - filterUrlQuery, - CFD_PLATFORMS, - routes, - isTestLink, - isProduction, - isLocal, - isStaging, } from '@deriv/shared'; +import { WS, requestLogout } from 'Services'; +import { action, computed, makeObservable, observable, reaction, runInAction, toJS, when } from 'mobx'; +import { getAccountTitle, getClientAccountType } from './Helpers/client'; import { getLanguage, localize } from '@deriv/translations'; -import Cookies from 'js-cookie'; -import { action, computed, observable, reaction, runInAction, toJS, when, makeObservable } from 'mobx'; -import moment from 'moment'; -import { requestLogout, WS } from 'Services'; -import BinarySocketGeneral from 'Services/socket-general'; -import BinarySocket from '_common/base/socket_base'; -import * as SocketCache from '_common/base/socket_cache'; import { isEuCountry, isMultipliersOnly, isOptionsBlocked } from '_common/utility'; + import BaseStore from './base-store'; -import { getAccountTitle, getClientAccountType } from './Helpers/client'; -import { setDeviceDataCookie } from './Helpers/device'; +import BinarySocket from '_common/base/socket_base'; +import BinarySocketGeneral from 'Services/socket-general'; +import Cookies from 'js-cookie'; import { buildCurrenciesList } from './Modules/Trading/Helpers/currency'; +import moment from 'moment'; +import { setDeviceDataCookie } from './Helpers/device'; const LANGUAGE_KEY = 'i18n_language'; const storage_key = 'client.accounts'; @@ -1607,8 +1609,8 @@ export default class ClientStore extends BaseStore { } responseLandingCompany(response) { - this.is_landing_company_loaded = true; this.landing_companies = response.landing_company; + this.is_landing_company_loaded = true; this.setStandpoint(this.landing_companies); this.setRealityCheck(); } From e059e623c9c826d2ef8e8636bd66a9f06229729e Mon Sep 17 00:00:00 2001 From: Carol Sachdeva <58209918+carol-binary@users.noreply.github.com> Date: Fri, 20 Jan 2023 18:27:27 +0800 Subject: [PATCH 61/84] carol/P2P: Fix recommendation bug (#6712) * fix recommendation * Shayan/52349/react17 migration (#6908) * refactor: react version is upgraded to version 17 * fix: fixed typo * fix: changed declaration file location * fix: temporarily commented our two test cases that are failing * fix: fixed react-content-loader props * fix: fixed some bugs * fix: fixed z-index issue for popover in DBot page * fix: fixed popover position issue in DBot page * chore: an small change on how to turn string to array * fix: merge upstream develop into my branch and resolved conflicts * fix: resolved pr comments * fix: removed rc-drawer and refactored mobile drawer * fix: fixed test cases * fix: resolved pr comments * fix: resolved pr comment * fix: fixed typo * fix: resolved pr comments * fix: fixed slide-in component bug * fix: resolved pr comments * fix: resolved pr comments * fix: removed unnecessary lines * fix: resolved pr comments * Update packages/account/src/Components/personal-details/__tests__/personal-details.spec.js Co-authored-by: Niloofar Sadeghi <93518187+niloo-fs@users.noreply.github.com> * Update packages/account/src/Components/personal-details/__tests__/personal-details.spec.js Co-authored-by: Niloofar Sadeghi <93518187+niloo-fs@users.noreply.github.com> * Update packages/account/src/Components/personal-details/personal-details.jsx Co-authored-by: Niloofar Sadeghi <93518187+niloo-fs@users.noreply.github.com> * fix: fixed mt5 modal not appear on screen when clicking on trade button * fix: fixed Bug #84787 Co-authored-by: Shayan Khaleghparast <100833613+iman-fs@users.noreply.github.com> Co-authored-by: Niloofar Sadeghi <93518187+niloo-fs@users.noreply.github.com> * fix: add optional chaining in getMinDuration function (#7344) * fix: :bug: resolved issue with trade. odal (#7291) * Revert "fix: :bug: resolved issue with trade. odal (#7291)" (#7364) This reverts commit b6f7e4c91b463c0e5c9431e101d4e3734671e632. * Farzin/85054/Call `resetWithrawForm` on `CryptoWithdrawForm` component `onunmount` (#7331) * fix(cashier): :bug: call `resetWithrawForm` on `CryptoWithdrawForm` component `onunmount` * test(cashier): :white_check_mark: fix failing test Co-authored-by: Farzin Mirzaie * fix: subtask Co-authored-by: Shayan Khaleghparast <100833613+shayan-deriv@users.noreply.github.com> Co-authored-by: Shayan Khaleghparast <100833613+iman-fs@users.noreply.github.com> Co-authored-by: Niloofar Sadeghi <93518187+niloo-fs@users.noreply.github.com> Co-authored-by: kate-deriv <121025168+kate-deriv@users.noreply.github.com> Co-authored-by: Likhith Kolayari <98398322+likhith-deriv@users.noreply.github.com> Co-authored-by: Farrah Mae Ochoa Co-authored-by: Matin shafiei Co-authored-by: Farzin Mirzaie <72082844+farzin-deriv@users.noreply.github.com> Co-authored-by: Farzin Mirzaie --- .../components/order-details/order-details.jsx | 15 ++++++--------- .../orders/order-table/order-table-row.jsx | 3 +++ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/p2p/src/components/order-details/order-details.jsx b/packages/p2p/src/components/order-details/order-details.jsx index d71fa224f678..1f0f729f825f 100644 --- a/packages/p2p/src/components/order-details/order-details.jsx +++ b/packages/p2p/src/components/order-details/order-details.jsx @@ -32,10 +32,8 @@ const OrderDetails = observer(() => { const { account_currency, advert_details, - advertiser_details, amount_display, chat_channel_url: order_channel_url, - client_details, completion_time, contact_info, has_timer_expired, @@ -46,10 +44,12 @@ const OrderDetails = observer(() => { is_completed_order, is_pending_order, is_reviewable, + is_user_recommended_previously, labels, local_currency, other_user_details, payment_info, + previous_recommendation, purchase_time, rate, review_details, @@ -119,18 +119,13 @@ const OrderDetails = observer(() => { ); const rate_amount = removeTrailingZeros(formatMoney(local_currency, rate, true, 6)); - const is_recommended_by_user = - general_store.client?.loginid === client_details?.loginid - ? advertiser_details?.is_recommended - : client_details?.is_recommended; - return ( {is_active_order && ( order_store.setIsRecommended(null)} onClickDone={() => { order_store.setOrderRating(id); @@ -144,6 +139,7 @@ const OrderDetails = observer(() => { order_store.setIsRatingModalOpen(false); }} onClickStar={order_store.handleRating} + previous_recommendation={previous_recommendation} rating_value={order_store.rating_value} /> )} @@ -326,7 +322,7 @@ const OrderDetails = observer(() => { order_store.setIsRecommended(null)} onClickDone={() => { order_store.setOrderRating(id); @@ -340,6 +336,7 @@ const OrderDetails = observer(() => { order_store.setIsRatingModalOpen(false); }} onClickStar={order_store.handleRating} + previous_recommendation={previous_recommendation} rating_value={order_store.rating_value} /> diff --git a/packages/p2p/src/components/orders/order-table/order-table-row.jsx b/packages/p2p/src/components/orders/order-table/order-table-row.jsx index 375c95f490c3..8a0a57784baf 100644 --- a/packages/p2p/src/components/orders/order-table/order-table-row.jsx +++ b/packages/p2p/src/components/orders/order-table/order-table-row.jsx @@ -115,6 +115,9 @@ const OrderRow = ({ row: order }) => { order_store.setRatingValue(0); general_store.props.removeNotificationMessage({ key: `order-${id}` }); general_store.props.removeNotificationByKey({ key: `order-${id}` }); + order_store.setIsLoading(true); + order_store.setOrders([]); + order_store.loadMoreOrders({ startIndex: 0 }); }} onClickNotRecommended={() => order_store.setIsRecommended(0)} onClickRecommended={() => order_store.setIsRecommended(1)} From ec3e2018944cc62261c66f8f91619e92466288cd Mon Sep 17 00:00:00 2001 From: ameerul-deriv <103412909+ameerul-deriv@users.noreply.github.com> Date: Fri, 20 Jan 2023 18:28:03 +0800 Subject: [PATCH 62/84] fix: replaced old text with new one for modal title (#7337) --- .../payment-methods-list/delete-payment-method-error-modal.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/p2p/src/components/my-profile/payment-methods/payment-methods-list/delete-payment-method-error-modal.jsx b/packages/p2p/src/components/my-profile/payment-methods/payment-methods-list/delete-payment-method-error-modal.jsx index c4e95533c50d..5996c20a6e0b 100644 --- a/packages/p2p/src/components/my-profile/payment-methods/payment-methods-list/delete-payment-method-error-modal.jsx +++ b/packages/p2p/src/components/my-profile/payment-methods/payment-methods-list/delete-payment-method-error-modal.jsx @@ -12,7 +12,7 @@ const DeletePaymentMethodErrorModal = () => { is_open={my_profile_store.is_delete_payment_method_error_modal_open} small has_close_icon={false} - title={localize("Something's not right")} + title={localize('That payment method cannot be deleted')} onMount={() => general_store.setIsModalOpen(true)} onUnmount={() => general_store.setIsModalOpen(false)} > From 5b22d4b06769a70a52f4ddc3c135135bc4b03d7d Mon Sep 17 00:00:00 2001 From: kate-deriv <121025168+kate-deriv@users.noreply.github.com> Date: Fri, 20 Jan 2023 13:30:52 +0300 Subject: [PATCH 63/84] Kate/ 84149/ getting error after changing language from account setting page (#7336) * fix: remove extra call function from onclick in languagesettings component * fix: Trigger codecov --- .../Sections/Profile/LanguageSettings/language-settings.jsx | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/account/src/Sections/Profile/LanguageSettings/language-settings.jsx b/packages/account/src/Sections/Profile/LanguageSettings/language-settings.jsx index be4c4bdf7114..61560d02b3df 100644 --- a/packages/account/src/Sections/Profile/LanguageSettings/language-settings.jsx +++ b/packages/account/src/Sections/Profile/LanguageSettings/language-settings.jsx @@ -37,7 +37,7 @@ const LanguageLink = ({ lang }) => ( ); -const LanguageSettings = ({ changeCurrentLanguage, current_language, toggleSettingsModal, changeLanguage }) => { +const LanguageSettings = ({ changeCurrentLanguage, current_language, changeLanguage }) => { const { i18n } = useTranslation(); return ( @@ -58,7 +58,6 @@ const LanguageSettings = ({ changeCurrentLanguage, current_language, toggleSetti onClick={async () => { await changeLanguage(key, changeCurrentLanguage); await i18n.changeLanguage?.(key); - toggleSettingsModal(); }} className={classNames('settings-language__language-link', { 'settings-language__language-link--active': isCurrentLanguage(key, current_language), @@ -82,9 +81,8 @@ NonClickableLink.propTypes = { lang: PropTypes.string, }; -export default connect(({ common, ui }) => ({ +export default connect(({ common }) => ({ changeCurrentLanguage: common.changeCurrentLanguage, current_language: common.current_language, - toggleSettingsModal: ui.toggleSettingsModal, changeLanguage: common.changeLanguage, }))(LanguageSettings); From 2d8572997c39a9ab6c62373d747d6e07e626aaa8 Mon Sep 17 00:00:00 2001 From: ameerul-deriv <103412909+ameerul-deriv@users.noreply.github.com> Date: Fri, 20 Jan 2023 18:33:54 +0800 Subject: [PATCH 64/84] Ameerul /Task 84193 Deriv P2P - Encourage/Initiate Users to Create Ads when there are no ads on the Buy/Sell screen (#7257) * chore: added new component to show no ads * chore: fixed styling for mobile, added routing to create ad page * chore: changed message for desktop * chore: added missing fullstop * chore: removed (hit the button) text * chore: removed setTimeout * chore: added emoji and fixed route to correct create ad page * chore: added check if user is on different currency * chore: updated text * fix: fixed encourage message * chore: added missing at in message * fix: changed the emoji * chore: fixed user is barred * chore: wrapped NoAds with observer * chore: fixed message for no ads * chore: changed title --- .../components/buy-sell/buy-sell-table.jsx | 6 +- .../src/components/buy-sell/no-ads/index.js | 3 + .../src/components/buy-sell/no-ads/no-ads.jsx | 59 +++++++++++++++++++ .../components/buy-sell/no-ads/no-ads.scss | 24 ++++++++ .../src/components/my-ads/create-ad-form.jsx | 5 +- packages/p2p/src/components/my-ads/my-ads.jsx | 5 +- packages/p2p/src/stores/buy-sell-store.js | 7 +++ 7 files changed, 103 insertions(+), 6 deletions(-) create mode 100644 packages/p2p/src/components/buy-sell/no-ads/index.js create mode 100644 packages/p2p/src/components/buy-sell/no-ads/no-ads.jsx create mode 100644 packages/p2p/src/components/buy-sell/no-ads/no-ads.scss diff --git a/packages/p2p/src/components/buy-sell/buy-sell-table.jsx b/packages/p2p/src/components/buy-sell/buy-sell-table.jsx index 50c928fdc2d7..2b8da108c4be 100644 --- a/packages/p2p/src/components/buy-sell/buy-sell-table.jsx +++ b/packages/p2p/src/components/buy-sell/buy-sell-table.jsx @@ -4,12 +4,12 @@ import { InfiniteDataList, Loading, Modal, RadioGroup, Table, Text } from '@deri import { isDesktop } from '@deriv/shared'; import { reaction } from 'mobx'; import { observer } from 'mobx-react-lite'; -import { localize, Localize } from 'Components/i18next'; -import Empty from 'Components/empty/empty.jsx'; +import { Localize } from 'Components/i18next'; import { TableError } from 'Components/table/table-error.jsx'; import { useStores } from 'Stores'; import BuySellRow from './buy-sell-row.jsx'; import CancelAddPaymentMethodModal from '../my-profile/payment-methods/add-payment-method/cancel-add-payment-method-modal.jsx'; +import NoAds from './no-ads/no-ads.jsx'; const BuySellRowRendererComponent = row_props => { const { buy_sell_store } = useStores(); @@ -124,7 +124,7 @@ const BuySellTable = ({ onScroll }) => { ); } - return ; + return ; }; BuySellTable.displayName = 'BuySellTable'; diff --git a/packages/p2p/src/components/buy-sell/no-ads/index.js b/packages/p2p/src/components/buy-sell/no-ads/index.js new file mode 100644 index 000000000000..fe997122f8c3 --- /dev/null +++ b/packages/p2p/src/components/buy-sell/no-ads/index.js @@ -0,0 +1,3 @@ +import NoAds from './no-ads.jsx'; + +export default NoAds; diff --git a/packages/p2p/src/components/buy-sell/no-ads/no-ads.jsx b/packages/p2p/src/components/buy-sell/no-ads/no-ads.jsx new file mode 100644 index 000000000000..233b500c5a32 --- /dev/null +++ b/packages/p2p/src/components/buy-sell/no-ads/no-ads.jsx @@ -0,0 +1,59 @@ +import React from 'react'; +import { observer } from 'mobx-react-lite'; +import { Button, Icon, Text } from '@deriv/components'; +import { Localize } from 'Components/i18next'; +import { useStores } from 'Stores'; +import './no-ads.scss'; + +const NoAds = () => { + const { buy_sell_store, general_store, my_ads_store } = useStores(); + + const is_default_currency = buy_sell_store.local_currencies.filter( + currency => + currency.text.toLowerCase() === buy_sell_store.selected_local_currency.toLowerCase() && currency.is_default + ).length; + + return ( +
+ + {is_default_currency ? ( + + + + + + + + + + ) : ( + + + + )} +
+ ); +}; + +export default observer(NoAds); diff --git a/packages/p2p/src/components/buy-sell/no-ads/no-ads.scss b/packages/p2p/src/components/buy-sell/no-ads/no-ads.scss new file mode 100644 index 000000000000..02471c611152 --- /dev/null +++ b/packages/p2p/src/components/buy-sell/no-ads/no-ads.scss @@ -0,0 +1,24 @@ +.no-ads { + display: flex; + flex-direction: column; + align-items: center; + margin-top: 2.4rem; + + @include mobile { + margin-top: calc(17.2rem + 2.6rem); + } + + &__button { + margin-top: 2.4rem; + } + + &__message { + @include mobile { + width: 32rem; + } + } + + &__title { + margin: 2.4rem 0 0.5rem; + } +} diff --git a/packages/p2p/src/components/my-ads/create-ad-form.jsx b/packages/p2p/src/components/my-ads/create-ad-form.jsx index 326327599d0f..de83c2069e6a 100644 --- a/packages/p2p/src/components/my-ads/create-ad-form.jsx +++ b/packages/p2p/src/components/my-ads/create-ad-form.jsx @@ -31,7 +31,7 @@ const CreateAdFormWrapper = ({ children }) => { }; const CreateAdForm = () => { - const { floating_rate_store, general_store, my_ads_store, my_profile_store } = useStores(); + const { buy_sell_store, floating_rate_store, general_store, my_ads_store, my_profile_store } = useStores(); const { currency, local_currency_config } = general_store.client; const should_not_show_auto_archive_message_again = React.useRef(false); @@ -72,6 +72,7 @@ const CreateAdForm = () => { disposeApiErrorReaction(); my_ads_store.setApiErrorMessage(''); floating_rate_store.setApiErrorMessage(''); + buy_sell_store.setCreateSellAdFromNoAds(false); }; // eslint-disable-next-line react-hooks/exhaustive-deps @@ -101,7 +102,7 @@ const CreateAdForm = () => { offer_amount: '', payment_info: my_ads_store.payment_info, rate_type: floating_rate_store.rate_type === ad_type.FLOAT ? '-0.01' : '', - type: buy_sell.BUY, + type: buy_sell_store.create_sell_ad_from_no_ads ? buy_sell.SELL : buy_sell.BUY, }} onSubmit={my_ads_store.handleSubmit} validate={my_ads_store.validateCreateAdForm} diff --git a/packages/p2p/src/components/my-ads/my-ads.jsx b/packages/p2p/src/components/my-ads/my-ads.jsx index 1aba44af449f..c75ce3a1b6c3 100644 --- a/packages/p2p/src/components/my-ads/my-ads.jsx +++ b/packages/p2p/src/components/my-ads/my-ads.jsx @@ -22,9 +22,12 @@ const MyAds = () => { React.useEffect(() => { my_ads_store.setIsLoading(true); - my_ads_store.setShowAdForm(false); my_ads_store.setShowEditAdForm(false); my_ads_store.getAccountStatus(); + + return () => { + my_ads_store.setShowAdForm(false); + }; // eslint-disable-next-line react-hooks/exhaustive-deps }, []); diff --git a/packages/p2p/src/stores/buy-sell-store.js b/packages/p2p/src/stores/buy-sell-store.js index 33d04a19ca48..13139ade32b2 100644 --- a/packages/p2p/src/stores/buy-sell-store.js +++ b/packages/p2p/src/stores/buy-sell-store.js @@ -13,6 +13,7 @@ import { api_error_codes } from '../constants/api-error-codes'; export default class BuySellStore extends BaseStore { api_error_message = ''; + create_sell_ad_from_no_ads = false; error_message = ''; form_error_code = ''; has_more_items_to_load = false; @@ -59,6 +60,7 @@ export default class BuySellStore extends BaseStore { makeObservable(this, { api_error_message: observable, + create_sell_ad_from_no_ads: observable, error_message: observable, form_error_code: observable, has_more_items_to_load: observable, @@ -114,6 +116,7 @@ export default class BuySellStore extends BaseStore { onConfirmClick: action.bound, onLocalCurrencySelect: action.bound, setApiErrorMessage: action.bound, + setCreateSellAdFromNoAds: action.bound, setErrorMessage: action.bound, setFormErrorCode: action.bound, setFormProps: action.bound, @@ -460,6 +463,10 @@ export default class BuySellStore extends BaseStore { this.api_error_message = api_error_message; } + setCreateSellAdFromNoAds(create_sell_ad_from_no_ads) { + this.create_sell_ad_from_no_ads = create_sell_ad_from_no_ads; + } + setErrorMessage(error_message) { this.error_message = error_message; } From 9c156b7ce5fd26d1b5b8fa4348c02ff0f3d1cebb Mon Sep 17 00:00:00 2001 From: ameerul-deriv <103412909+ameerul-deriv@users.noreply.github.com> Date: Fri, 20 Jan 2023 18:35:36 +0800 Subject: [PATCH 65/84] chore: changed css styling for currency dropdown (#7221) --- packages/p2p/src/components/buy-sell/currency-dropdown.scss | 6 ++++++ packages/p2p/src/stores/buy-sell-store.js | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/p2p/src/components/buy-sell/currency-dropdown.scss b/packages/p2p/src/components/buy-sell/currency-dropdown.scss index a19a51d266ec..6e8e5c32d87e 100644 --- a/packages/p2p/src/components/buy-sell/currency-dropdown.scss +++ b/packages/p2p/src/components/buy-sell/currency-dropdown.scss @@ -16,6 +16,12 @@ display: flex; justify-content: space-between; width: 100%; + + &-symbol { + @include desktop { + padding-right: 1rem; + } + } } &--visible { diff --git a/packages/p2p/src/stores/buy-sell-store.js b/packages/p2p/src/stores/buy-sell-store.js index 13139ade32b2..157ae298d782 100644 --- a/packages/p2p/src/stores/buy-sell-store.js +++ b/packages/p2p/src/stores/buy-sell-store.js @@ -529,7 +529,7 @@ export default class BuySellStore extends BaseStore { currency_list.push({ component: (
-
{symbol}
+
{symbol}
{display_name} From de08f20c9ff05f748306dc83caaf3151425e5498 Mon Sep 17 00:00:00 2001 From: Rostik Kayko <119863957+rostislav-deriv@users.noreply.github.com> Date: Fri, 20 Jan 2023 13:38:21 +0300 Subject: [PATCH 66/84] Rostislav / 82947 / Task remove Changelly and Xanpool from Fiat Onramp (#7263) * refactor: remove changelly and xanpool related code; change changelly tests to banxa; remove icons * refactor: applied suggestions * test: fix tests * fix: tests mock fix * fix: more tests fixed * fix: a few extra changes --- .../cashier-onboarding-providers.js | 6 +- .../cashier/src/config/on-ramp-providers.js | 85 +------------------ .../__tests__/on-ramp-provider-card.spec.tsx | 39 ++++++--- .../__tests__/on-ramp-provider-popup.spec.tsx | 36 ++++++-- .../stores/__tests__/on-ramp-store.spec.js | 38 ++++----- packages/cashier/src/stores/on-ramp-store.js | 6 +- .../cashier/ic-cashier-changelly-dark.svg | 1 - .../cashier/ic-cashier-changelly-light.svg | 1 - .../cashier/ic-cashier-changelly-row-dark.svg | 1 - .../ic-cashier-changelly-row-light.svg | 1 - .../icon/cashier/ic-cashier-changelly.svg | 1 - .../icon/cashier/ic-cashier-xanpool-dark.svg | 1 - .../icon/cashier/ic-cashier-xanpool-light.svg | 1 - .../cashier/ic-cashier-xanpool-small-dark.svg | 1 - .../ic-cashier-xanpool-small-light.svg | 1 - .../components/src/components/icon/icons.js | 9 -- packages/components/stories/icon/icons.js | 9 -- 17 files changed, 75 insertions(+), 162 deletions(-) delete mode 100644 packages/components/src/components/icon/cashier/ic-cashier-changelly-dark.svg delete mode 100644 packages/components/src/components/icon/cashier/ic-cashier-changelly-light.svg delete mode 100644 packages/components/src/components/icon/cashier/ic-cashier-changelly-row-dark.svg delete mode 100644 packages/components/src/components/icon/cashier/ic-cashier-changelly-row-light.svg delete mode 100644 packages/components/src/components/icon/cashier/ic-cashier-changelly.svg delete mode 100644 packages/components/src/components/icon/cashier/ic-cashier-xanpool-dark.svg delete mode 100644 packages/components/src/components/icon/cashier/ic-cashier-xanpool-light.svg delete mode 100644 packages/components/src/components/icon/cashier/ic-cashier-xanpool-small-dark.svg delete mode 100644 packages/components/src/components/icon/cashier/ic-cashier-xanpool-small-light.svg diff --git a/packages/cashier/src/components/cashier-onboarding/cashier-onboarding-providers.js b/packages/cashier/src/components/cashier-onboarding/cashier-onboarding-providers.js index f1bdc155f1c1..c774a0da445c 100644 --- a/packages/cashier/src/components/cashier-onboarding/cashier-onboarding-providers.js +++ b/packages/cashier/src/components/cashier-onboarding/cashier-onboarding-providers.js @@ -24,11 +24,7 @@ const crypto_contents = [ const onramp_contents = [ { - icons: [ - { light: 'IcCashierChangellyRowLight', dark: 'IcCashierChangellyRowDark' }, - { light: 'IcCashierXanpoolSmallLight', dark: 'IcCashierXanpoolSmallDark' }, - { light: 'IcCashierBanxaLight', dark: 'IcCashierBanxaDark' }, - ], + icons: [{ light: 'IcCashierBanxaLight', dark: 'IcCashierBanxaDark' }], }, ]; diff --git a/packages/cashier/src/config/on-ramp-providers.js b/packages/cashier/src/config/on-ramp-providers.js index 3c33356f327a..e57cc449371f 100644 --- a/packages/cashier/src/config/on-ramp-providers.js +++ b/packages/cashier/src/config/on-ramp-providers.js @@ -53,87 +53,4 @@ const createBanxaProvider = store => ({ should_show_deposit_address: false, }); -const createChangellyProvider = store => ({ - icon: { dark: 'IcCashierChangellyDark', light: 'IcCashierChangellyLight' }, - name: 'Changelly', - getDescription: () => - localize( - 'Your simple access to crypto. Fast and secure way to exchange and purchase cryptocurrencies. 24/7 live chat support.' - ), - getAllowedResidencies: () => ['*'], - getPaymentIcons: () => [ - { dark: 'IcCashierVisaDark', light: 'IcCashierVisaLight' }, - { dark: 'IcCashierMastercardDark', light: 'IcCashierMastercardLight' }, - ], - getScriptDependencies: () => [], - getDefaultFromCurrency: () => 'usd', - getFromCurrencies: () => ['usd', 'eur', 'gbp'], - getToCurrencies: () => ['bch', 'btc', 'etc', 'eth', 'ltc', 'ust'], - getWidgetHtml() { - return new Promise(resolve => { - const url = new URL('https://widget.changelly.com/?v=3&theme=default'); - url.searchParams.append('fromDefault', this.getDefaultFromCurrency()); - const currency = store.root_store.client.currency.toLowerCase(); - if (this.getToCurrencies().includes(currency)) { - const to_currency = currency === 'ust' ? 'usdt' : currency; - url.searchParams.append('to', to_currency); - url.searchParams.append('toDefault', to_currency); - } - - url.searchParams.append('amount', 1); - url.searchParams.append('merchant_id', 'iiq3jdt2p44yrfbx'); - window.open(url); - resolve(); - }); - }, - onMountWidgetContainer: () => {}, - should_show_deposit_address: true, -}); - -const createXanPoolProvider = store => ({ - icon: { dark: 'IcCashierXanpoolDark', light: 'IcCashierXanpoolLight' }, - name: 'XanPool', - getDescription: () => - localize( - 'Buy cryptocurrencies in an instant. Enjoy easy, quick, and secure exchanges using your local payment methods.' - ), - getAllowedResidencies: () => ['*'], - getPaymentIcons: () => [ - { dark: 'IcCashierFpsDark', light: 'IcCashierFpsLight' }, - { dark: 'IcCashierAliPayDark', light: 'IcCashierAliPayLight' }, - { dark: 'IcCashierGoPayDark', light: 'IcCashierGoPayLight' }, - { dark: 'IcCashierMandiriPay', light: 'IcCashierMandiriPay' }, - { dark: 'IcCashierInstaPayLight', light: 'IcCashierInstaPayDark' }, - { dark: 'IcCashierCebuanaLhuillierDark', light: 'IcCashierCebuanaLhuillierLight' }, - { dark: 'IcCashierPayNowDark', light: 'IcCashierPayNowLight' }, - { dark: 'IcCashierUpiDark', light: 'IcCashierUpiLight' }, - { dark: 'IcCashierPromptPayDark', light: 'IcCashierPromptPayLight' }, - { dark: 'IcCashierViettlePay', light: 'IcCashierViettlePay' }, - ], - getScriptDependencies: () => [], - getToCurrencies: () => ['btc', 'eth', 'ust', 'zil', 'nem'], - getWidgetHtml() { - return new Promise(resolve => { - const { currency } = store.root_store.client; - - let url = 'https://checkout.xanpool.com/'; - - url += `?apiKey=db4ec638dff9a68abda1ef6b7638c220`; - url += `&redirectUrl=${window.location.href}`; - url += `&wallet=${store.deposit_address}`; - url += `&cryptoCurrency=${currency === 'UST' ? 'USDT' : currency}`; - url += `&transactionType=buy`; - - window.open(url); - resolve(); - }); - }, - onMountWidgetContainer: () => {}, - should_show_deposit_address: false, -}); - -export default { - createBanxaProvider, - createChangellyProvider, - createXanPoolProvider, -}; +export default { createBanxaProvider }; diff --git a/packages/cashier/src/pages/on-ramp/on-ramp-provider-card/__tests__/on-ramp-provider-card.spec.tsx b/packages/cashier/src/pages/on-ramp/on-ramp-provider-card/__tests__/on-ramp-provider-card.spec.tsx index 05e3acc5d7c6..8ba0e28f85f9 100644 --- a/packages/cashier/src/pages/on-ramp/on-ramp-provider-card/__tests__/on-ramp-provider-card.spec.tsx +++ b/packages/cashier/src/pages/on-ramp/on-ramp-provider-card/__tests__/on-ramp-provider-card.spec.tsx @@ -5,11 +5,28 @@ import { StoreProvider } from '@deriv/stores'; import { TRootStore } from 'Types'; describe('', () => { - const provider = { - name: 'Changelly', - icon: { - dark: 'IcCashierChangellyDark', - light: 'IcCashierChangellyLight', + const props = { + is_dark_mode_on: false, + is_mobile: false, + provider: { + name: 'Banxa', + icon: { + dark: 'IcCashierBanxaDark', + light: 'IcCashierBanxaLight', + }, + getDescription: jest.fn( + () => + 'A fast and secure fiat-to-crypto payment service. Deposit cryptocurrencies from anywhere in the world using your credit/debit cards and bank transfers.' + ), + getPaymentIcons: jest.fn(() => [{ dark: 'IcCashierFlexepinDark', light: 'IcCashierFlexepinLight' }]), + getAllowedResidencies: jest.fn(() => []), + getScriptDependencies: jest.fn(() => []), + getDefaultFromCurrency: jest.fn(() => ''), + getFromCurrencies: jest.fn(() => ''), + getToCurrencies: jest.fn(() => ''), + getWidgetHtml: jest.fn(() => Promise.resolve()), + onMountWidgetContainer: jest.fn(), + should_show_deposit_address: false, }, getDescription: jest.fn( () => @@ -33,14 +50,14 @@ describe('', () => { }, }; - render(, { + render(, { wrapper: ({ children }) => {children}, }); - expect(screen.getByText('Changelly')).toBeInTheDocument(); + expect(screen.getByText('Banxa')).toBeInTheDocument(); expect( screen.getByText( - 'Your simple access to crypto. Fast and secure way to exchange and purchase cryptocurrencies. 24/7 live chat support.' + 'A fast and secure fiat-to-crypto payment service. Deposit cryptocurrencies from anywhere in the world using your credit/debit cards and bank transfers.' ) ).toBeInTheDocument(); expect(screen.getByRole('button', { name: 'Select' })).toBeInTheDocument(); @@ -61,7 +78,7 @@ describe('', () => { }, }; - render(, { + render(, { wrapper: ({ children }) => {children}, }); @@ -84,13 +101,13 @@ describe('', () => { }, }; - render(, { + render(, { wrapper: ({ children }) => {children}, }); const btn = screen.getByRole('button', { name: 'Select' }); fireEvent.click(btn); - expect(mockRootStore.modules!.cashier!.onramp.setSelectedProvider).toHaveBeenCalledTimes(1); + expect(mockRootStore.modules!.cashier!.onramp!.setSelectedProvider).toHaveBeenCalledTimes(1); }); }); diff --git a/packages/cashier/src/pages/on-ramp/on-ramp-provider-popup/__tests__/on-ramp-provider-popup.spec.tsx b/packages/cashier/src/pages/on-ramp/on-ramp-provider-popup/__tests__/on-ramp-provider-popup.spec.tsx index 00dd2fed05a3..574e2ab832d7 100644 --- a/packages/cashier/src/pages/on-ramp/on-ramp-provider-popup/__tests__/on-ramp-provider-popup.spec.tsx +++ b/packages/cashier/src/pages/on-ramp/on-ramp-provider-popup/__tests__/on-ramp-provider-popup.spec.tsx @@ -10,6 +10,24 @@ jest.mock('@deriv/components', () => ({ })); describe('', () => { + const props = { + api_error: '', + deposit_address: 'tb1qhux20f7h42ya9nqdntl6r9p7p264a2ct8t3n6p', + is_deposit_address_loading: false, + is_requesting_widget_html: false, + selected_provider: { + name: 'Banxa', + should_show_deposit_address: true, + onMountWidgetContainer: jest.fn(), + }, + should_show_dialog: false, + should_show_widget: false, + widget_error: '', + widget_html: 'Widget HTML', + onClickDisclaimerContinue: jest.fn(), + onClickGoToDepositPage: jest.fn(), + setIsOnRampModalOpen: jest.fn(), + }; it('should not render component', () => { const mockRootStore: DeepPartial = { ui: { @@ -55,7 +73,7 @@ describe('', () => { is_deposit_address_loading: true, is_requesting_widget_html: true, selected_provider: { - name: 'Changelly', + name: 'Banxa', should_show_deposit_address: true, onMountWidgetContainer: jest.fn(), }, @@ -91,7 +109,7 @@ describe('', () => { is_deposit_address_loading: false, is_requesting_widget_html: false, selected_provider: { - name: 'Changelly', + name: 'Banxa', should_show_deposit_address: true, onMountWidgetContainer: jest.fn(), }, @@ -127,7 +145,7 @@ describe('', () => { is_deposit_address_loading: false, is_requesting_widget_html: false, selected_provider: { - name: 'Changelly', + name: 'Banxa', should_show_deposit_address: true, onMountWidgetContainer: jest.fn(), }, @@ -163,7 +181,7 @@ describe('', () => { is_deposit_address_loading: false, is_requesting_widget_html: false, selected_provider: { - name: 'Changelly', + name: 'Banxa', should_show_deposit_address: true, onMountWidgetContainer: jest.fn(), }, @@ -205,7 +223,7 @@ describe('', () => { is_deposit_address_loading: false, is_requesting_widget_html: false, selected_provider: { - name: 'Changelly', + name: 'Banxa', should_show_deposit_address: true, onMountWidgetContainer: jest.fn(), }, @@ -249,7 +267,7 @@ describe('', () => { is_deposit_address_loading: false, is_requesting_widget_html: false, selected_provider: { - name: 'Changelly', + name: 'Banxa', should_show_deposit_address: true, onMountWidgetContainer: jest.fn(), }, @@ -280,7 +298,7 @@ describe('', () => { expect(screen.getByText('Disclaimer')).toBeInTheDocument(); expect( screen.getByText( - "By clicking 'Continue' you will be redirected to Changelly, a third-party payment service provider. Please note that Deriv is not responsible for the content or services provided by Changelly. If you encounter any issues related to Changelly services, you must contact Changelly directly." + "By clicking 'Continue' you will be redirected to Banxa, a third-party payment service provider. Please note that Deriv is not responsible for the content or services provided by Banxa. If you encounter any issues related to Banxa services, you must contact Banxa directly." ) ).toBeInTheDocument(); expect(screen.getByRole('button', { name: 'Cancel' })).toBeInTheDocument(); @@ -300,7 +318,7 @@ describe('', () => { is_deposit_address_loading: false, is_requesting_widget_html: false, selected_provider: { - name: 'Changelly', + name: 'Banxa', should_show_deposit_address: true, onMountWidgetContainer: jest.fn(), }, @@ -337,7 +355,7 @@ describe('', () => { is_deposit_address_loading: false, is_requesting_widget_html: false, selected_provider: { - name: 'Changelly', + name: 'Banxa', should_show_deposit_address: true, onMountWidgetContainer: jest.fn(), }, diff --git a/packages/cashier/src/stores/__tests__/on-ramp-store.spec.js b/packages/cashier/src/stores/__tests__/on-ramp-store.spec.js index 89233e428f64..de12d24ade63 100644 --- a/packages/cashier/src/stores/__tests__/on-ramp-store.spec.js +++ b/packages/cashier/src/stores/__tests__/on-ramp-store.spec.js @@ -4,7 +4,7 @@ import { configure } from 'mobx'; configure({ safeDescriptors: false }); -let changelly_provider, onramp_store, onramp_providers, root_store, WS; +let banxa_provider, onramp_store, onramp_providers, root_store, WS; beforeEach(() => { root_store = { @@ -21,12 +21,8 @@ beforeEach(() => { }, }; onramp_store = new OnRampStore({ WS, root_store }); - onramp_providers = [ - OnrampProviders.createChangellyProvider(onramp_store), - OnrampProviders.createXanPoolProvider(onramp_store), - OnrampProviders.createBanxaProvider(onramp_store), - ]; - changelly_provider = OnrampProviders.createChangellyProvider(onramp_store); + onramp_providers = [OnrampProviders.createBanxaProvider(onramp_store)]; + banxa_provider = OnrampProviders.createBanxaProvider(onramp_store); }); jest.mock('@deriv/shared', () => ({ @@ -66,7 +62,7 @@ describe('OnRampStore', () => { it('should return three providers for BTC cryptocurrency', () => { onramp_store.setOnrampProviders(onramp_providers); - expect(onramp_store.filtered_onramp_providers.length).toBe(3); + expect(onramp_store.filtered_onramp_providers.length).toBe(1); }); it('should return proper onramp popup modal title if should_show_widget = true', () => { @@ -76,14 +72,14 @@ describe('OnRampStore', () => { }); it('should return proper onramp popup modal title if should_show_widget = false and there is selected provider with should_show_dialog = true', () => { - onramp_store.setSelectedProvider(changelly_provider); + onramp_store.setSelectedProvider(banxa_provider); onramp_store.setApiError('API Error'); expect(onramp_store.onramp_popup_modal_title).toBe('Our server cannot retrieve an address.'); }); it('should return empty string to render header + close icon if should_show_widget = false and there is selected provider with should_show_dialog = false', () => { - onramp_store.setSelectedProvider(changelly_provider); + onramp_store.setSelectedProvider(banxa_provider); onramp_store.setApiError(''); expect(onramp_store.onramp_popup_modal_title).toBe(' '); @@ -96,8 +92,8 @@ describe('OnRampStore', () => { it('should have returned from onMountOnramp method if there is no selected_provider', () => { const spyOnMountOnramp = jest.spyOn(onramp_store, 'onMountOnramp'); onramp_store.onMountOnramp(); - changelly_provider.getScriptDependencies = jest.fn().mockReturnValueOnce(['dependecy']); - onramp_store.setSelectedProvider(changelly_provider); + banxa_provider.getScriptDependencies = jest.fn().mockReturnValueOnce(['dependecy']); + onramp_store.setSelectedProvider(banxa_provider); onramp_store.setSelectedProvider(); expect(spyOnMountOnramp).toHaveReturned(); @@ -106,16 +102,16 @@ describe('OnRampStore', () => { it('should have returned from onMountOnramp method if there is an empty array without dependencies', async () => { const spyOnMountOnramp = jest.spyOn(onramp_store, 'onMountOnramp'); onramp_store.onMountOnramp(); - changelly_provider.getScriptDependencies = jest.fn().mockReturnValueOnce([]); - onramp_store.setSelectedProvider(changelly_provider); + banxa_provider.getScriptDependencies = jest.fn().mockReturnValueOnce([]); + onramp_store.setSelectedProvider(banxa_provider); expect(spyOnMountOnramp).toHaveReturned(); }); it('should set widget html if it is defined when disposeGetWidgetHtmlReaction reaction is running', async () => { const spySetWidgetHtml = jest.spyOn(onramp_store, 'setWidgetHtml'); - onramp_store.setSelectedProvider(changelly_provider); - changelly_provider.getWidgetHtml = jest.fn().mockResolvedValueOnce('widget'); + onramp_store.setSelectedProvider(banxa_provider); + banxa_provider.getWidgetHtml = jest.fn().mockResolvedValueOnce('widget'); onramp_store.onMountOnramp(); onramp_store.setShouldShowWidget(true); @@ -124,8 +120,8 @@ describe('OnRampStore', () => { // it('should set should_show_widget into false if html widget is not defined when disposeGetWidgetHtmlReaction reaction is running', async () => { // const spySetShouldShowWidget = jest.spyOn(onramp_store, 'setShouldShowWidget'); - // onramp_store.setSelectedProvider(changelly_provider); - // changelly_provider.getWidgetHtml = jest.fn().mockResolvedValueOnce(''); + // onramp_store.setSelectedProvider(banxa_provider); + // banxa_provider.getWidgetHtml = jest.fn().mockResolvedValueOnce(''); // onramp_store.onMountOnramp(); // onramp_store.setShouldShowWidget(true); @@ -136,8 +132,8 @@ describe('OnRampStore', () => { // it('should set widget error if there is an error when requesting widget when disposeGetWidgetHtmlReaction reaction is running', async () => { // const spySetWidgetError = jest.spyOn(onramp_store, 'setWidgetError'); - // onramp_store.setSelectedProvider(changelly_provider); - // changelly_provider.getWidgetHtml = jest.fn().mockRejectedValueOnce('Request error'); + // onramp_store.setSelectedProvider(banxa_provider); + // banxa_provider.getWidgetHtml = jest.fn().mockRejectedValueOnce('Request error'); // onramp_store.onMountOnramp(); // onramp_store.setShouldShowWidget(true); @@ -149,7 +145,7 @@ describe('OnRampStore', () => { it('should not call setIsRequestingWidgetHtml method if is_requesting_widget_html already equal to true when disposeGetWidgetHtmlReaction reaction is running', () => { const spySetIsRequestingWidgetHtml = jest.spyOn(onramp_store, 'setIsRequestingWidgetHtml'); onramp_store.is_requesting_widget_html = true; - onramp_store.setSelectedProvider(changelly_provider); + onramp_store.setSelectedProvider(banxa_provider); onramp_store.onMountOnramp(); onramp_store.setShouldShowWidget(true); diff --git a/packages/cashier/src/stores/on-ramp-store.js b/packages/cashier/src/stores/on-ramp-store.js index c9aac0d6b36d..7fb7bf3b312d 100644 --- a/packages/cashier/src/stores/on-ramp-store.js +++ b/packages/cashier/src/stores/on-ramp-store.js @@ -56,11 +56,7 @@ export default class OnRampStore extends BaseStore { this.WS = WS; this.onClientInit(async () => { - this.setOnrampProviders([ - OnrampProviders.createChangellyProvider(this), - OnrampProviders.createXanPoolProvider(this), - OnrampProviders.createBanxaProvider(this), - ]); + this.setOnrampProviders([OnrampProviders.createBanxaProvider(this)]); }); } diff --git a/packages/components/src/components/icon/cashier/ic-cashier-changelly-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-changelly-dark.svg deleted file mode 100644 index ad7c52fdfd95..000000000000 --- a/packages/components/src/components/icon/cashier/ic-cashier-changelly-dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-changelly-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-changelly-light.svg deleted file mode 100644 index b4bd5bc17a18..000000000000 --- a/packages/components/src/components/icon/cashier/ic-cashier-changelly-light.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-changelly-row-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-changelly-row-dark.svg deleted file mode 100644 index 08f9825a33ac..000000000000 --- a/packages/components/src/components/icon/cashier/ic-cashier-changelly-row-dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-changelly-row-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-changelly-row-light.svg deleted file mode 100644 index ecd5a8786560..000000000000 --- a/packages/components/src/components/icon/cashier/ic-cashier-changelly-row-light.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-changelly.svg b/packages/components/src/components/icon/cashier/ic-cashier-changelly.svg deleted file mode 100644 index a252cd55ef56..000000000000 --- a/packages/components/src/components/icon/cashier/ic-cashier-changelly.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-xanpool-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-xanpool-dark.svg deleted file mode 100644 index 27890b07716f..000000000000 --- a/packages/components/src/components/icon/cashier/ic-cashier-xanpool-dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-xanpool-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-xanpool-light.svg deleted file mode 100644 index 07c52e5b0f95..000000000000 --- a/packages/components/src/components/icon/cashier/ic-cashier-xanpool-light.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-xanpool-small-dark.svg b/packages/components/src/components/icon/cashier/ic-cashier-xanpool-small-dark.svg deleted file mode 100644 index 4d3bbe8ac01a..000000000000 --- a/packages/components/src/components/icon/cashier/ic-cashier-xanpool-small-dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/components/src/components/icon/cashier/ic-cashier-xanpool-small-light.svg b/packages/components/src/components/icon/cashier/ic-cashier-xanpool-small-light.svg deleted file mode 100644 index 6fedc3226674..000000000000 --- a/packages/components/src/components/icon/cashier/ic-cashier-xanpool-small-light.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/components/src/components/icon/icons.js b/packages/components/src/components/icon/icons.js index 7d68536c883c..1dc60bc21bcf 100644 --- a/packages/components/src/components/icon/icons.js +++ b/packages/components/src/components/icon/icons.js @@ -98,11 +98,6 @@ import './cashier/ic-cashier-card-dark.svg'; import './cashier/ic-cashier-card-light.svg'; import './cashier/ic-cashier-cebuana-lhuillier-dark.svg'; import './cashier/ic-cashier-cebuana-lhuillier-light.svg'; -import './cashier/ic-cashier-changelly-dark.svg'; -import './cashier/ic-cashier-changelly-light.svg'; -import './cashier/ic-cashier-changelly-row-dark.svg'; -import './cashier/ic-cashier-changelly-row-light.svg'; -import './cashier/ic-cashier-changelly.svg'; import './cashier/ic-cashier-cimb-niaga.svg'; import './cashier/ic-cashier-cimbniaga-dark.svg'; import './cashier/ic-cashier-cimbniaga-light.svg'; @@ -236,10 +231,6 @@ import './cashier/ic-cashier-withdrawal-lock.svg'; import './cashier/ic-cashier-withdrawal.svg'; import './cashier/ic-cashier-wyre-dark.svg'; import './cashier/ic-cashier-wyre-light.svg'; -import './cashier/ic-cashier-xanpool-dark.svg'; -import './cashier/ic-cashier-xanpool-light.svg'; -import './cashier/ic-cashier-xanpool-small-dark.svg'; -import './cashier/ic-cashier-xanpool-small-light.svg'; import './cashier/ic-cashier-zenithbank-dark.svg'; import './cashier/ic-cashier-zenithbank-light.svg'; import './cashier/ic-cashier.svg'; diff --git a/packages/components/stories/icon/icons.js b/packages/components/stories/icon/icons.js index 72f344c58870..5532c462805a 100644 --- a/packages/components/stories/icon/icons.js +++ b/packages/components/stories/icon/icons.js @@ -105,11 +105,6 @@ export const icons = 'IcCashierCardLight', 'IcCashierCebuanaLhuillierDark', 'IcCashierCebuanaLhuillierLight', - 'IcCashierChangellyDark', - 'IcCashierChangellyLight', - 'IcCashierChangellyRowDark', - 'IcCashierChangellyRowLight', - 'IcCashierChangelly', 'IcCashierCimbNiaga', 'IcCashierCimbniagaDark', 'IcCashierCimbniagaLight', @@ -243,10 +238,6 @@ export const icons = 'IcCashierWithdrawal', 'IcCashierWyreDark', 'IcCashierWyreLight', - 'IcCashierXanpoolDark', - 'IcCashierXanpoolLight', - 'IcCashierXanpoolSmallDark', - 'IcCashierXanpoolSmallLight', 'IcCashierZenithbankDark', 'IcCashierZenithbankLight', 'IcCashier', From e1ea25507d8df6f02c4c8815f1f59c9122ebf72f Mon Sep 17 00:00:00 2001 From: Sandeep Rajput <90243468+sandeep-deriv@users.noreply.github.com> Date: Fri, 20 Jan 2023 18:48:38 +0800 Subject: [PATCH 67/84] Sandeep/85441/dbot performance fix 2 clone (#7408) * fix: multiplier is not working fine with the dbot slowness fix * fix: please log in issue caused due to performance optimization * Revert "Revert V20230106_0 (#7334)" This reverts commit 69825d33ad1aa81c393f9eef324dc000bff62937. * fix: multiplier contract purchase * fix: removed multiplier check and new ws creation * chore: clear timeout resolvers on bot close Co-authored-by: balakrishna-binary Co-authored-by: Prince --- packages/bot-skeleton/package.json | 2 + .../bot-skeleton/src/scratch/dbot-store.js | 8 ++ packages/bot-skeleton/src/scratch/dbot.js | 10 +- .../bot-skeleton/src/services/api/api-base.js | 132 ++++++++++++++++++ .../bot-skeleton/src/services/api/appId.js | 16 +++ .../src/services/api/ticks_service.js | 49 ++++--- .../src/services/tradeEngine/trade/Balance.js | 4 +- .../tradeEngine/trade/OpenContract.js | 18 ++- .../services/tradeEngine/trade/Proposal.js | 8 +- .../services/tradeEngine/trade/Purchase.js | 3 +- .../src/services/tradeEngine/trade/Sell.js | 7 +- .../src/services/tradeEngine/trade/index.js | 30 +--- .../services/tradeEngine/utils/cliTools.js | 6 +- .../src/services/tradeEngine/utils/helpers.js | 18 ++- .../services/tradeEngine/utils/interpreter.js | 13 +- .../trade-animation/trade-animation.jsx | 10 ++ packages/bot-web-ui/src/stores/app-store.js | 2 +- .../bot-web-ui/src/stores/run-panel-store.js | 7 +- 18 files changed, 270 insertions(+), 73 deletions(-) create mode 100644 packages/bot-skeleton/src/services/api/api-base.js diff --git a/packages/bot-skeleton/package.json b/packages/bot-skeleton/package.json index 96becac19d3c..b19bf02aea06 100644 --- a/packages/bot-skeleton/package.json +++ b/packages/bot-skeleton/package.json @@ -46,6 +46,8 @@ "immutable": "^3.8.2", "localforage": "^1.9.0", "lz-string": "^1.4.4", + "mobx": "^6.6.1", + "mobx-react": "^7.5.1", "redux": "^4.0.1", "redux-thunk": "^2.2.0", "scratch-blocks": "0.1.0-prerelease.20200917235131", diff --git a/packages/bot-skeleton/src/scratch/dbot-store.js b/packages/bot-skeleton/src/scratch/dbot-store.js index 1d951ec9ebc2..fb7333342df2 100644 --- a/packages/bot-skeleton/src/scratch/dbot-store.js +++ b/packages/bot-skeleton/src/scratch/dbot-store.js @@ -1,3 +1,6 @@ +import { reaction } from 'mobx'; +import { api_base } from '../services/api/api-base'; + class DBotStoreInterface { // TODO here we are suppose to define an interface and implement fields of DBotStore. handleFileChange = () => { @@ -27,6 +30,11 @@ class DBotStore extends DBotStoreInterface { this.handleFileChange = store.handleFileChange; this.startLoading = store.startLoading; this.endLoading = store.endLoading; + + reaction( + () => this.client.loginid, + () => api_base.createNewInstance(this.client.loginid) + ); } static setInstance(store) { diff --git a/packages/bot-skeleton/src/scratch/dbot.js b/packages/bot-skeleton/src/scratch/dbot.js index adee21e1bab2..4df1e4afb380 100644 --- a/packages/bot-skeleton/src/scratch/dbot.js +++ b/packages/bot-skeleton/src/scratch/dbot.js @@ -10,6 +10,7 @@ import { observer as globalObserver } from '../utils/observer'; import ApiHelpers from '../services/api/api-helpers'; import Interpreter from '../services/tradeEngine/utils/interpreter'; import { setColors } from './hooks/colours'; +import { api_base } from '../services/api/api-base'; class DBot { constructor() { @@ -97,7 +98,7 @@ class DBot { window.dispatchEvent(new Event('resize')); window.addEventListener('dragover', DBot.handleDragOver); window.addEventListener('drop', e => DBot.handleDropOver(e, handleFileChange)); - + api_base.init(); // disable overflow el_scratch_div.parentNode.style.overflow = 'hidden'; resolve(); @@ -134,7 +135,7 @@ class DBot { } this.interpreter = Interpreter(); - + api_base.setIsRunning(true); this.interpreter.run(code).catch(error => { globalObserver.emit('Error', error); this.stopBot(); @@ -226,6 +227,7 @@ class DBot { * that trade will be completed first to reflect correct contract status in UI. */ stopBot() { + api_base.setIsRunning(false); if (this.interpreter) { this.interpreter.stop(); } @@ -241,6 +243,10 @@ class DBot { } } + terminateConnection = () => { + api_base.terminate(); + }; + /** * Unselects any selected block before running the bot. */ diff --git a/packages/bot-skeleton/src/services/api/api-base.js b/packages/bot-skeleton/src/services/api/api-base.js new file mode 100644 index 000000000000..fd7c6d96dabd --- /dev/null +++ b/packages/bot-skeleton/src/services/api/api-base.js @@ -0,0 +1,132 @@ +import { observer as globalObserver } from '../../utils/observer'; +import { doUntilDone } from '../tradeEngine/utils/helpers'; +import { generateDerivApiInstance, getLoginId, getToken } from './appId'; + +class APIBase { + api; + token; + account_id; + pip_sizes = {}; + account_info = {}; + is_running = false; + subscriptions = []; + time_interval = null; + has_activeSymbols = false; + + init(force_update = false) { + if (getLoginId()) { + this.toggleRunButton(true); + if (force_update) this.terminate(); + this.api = generateDerivApiInstance(); + this.initEventListeners(); + this.authorizeAndSubscribe(); + if (this.time_interval) clearInterval(this.time_interval); + this.time_interval = null; + this.getTime(); + } + } + + terminate() { + // eslint-disable-next-line no-console + console.log('connection terminated'); + if (this.api) this.api.disconnect(); + } + + initEventListeners() { + if (window) { + window.addEventListener('online', this.reconnectIfNotConnected); + window.addEventListener('focus', this.reconnectIfNotConnected); + } + } + + createNewInstance(account_id) { + if (this.account_id !== account_id) { + this.init(true); + } + } + + reconnectIfNotConnected = () => { + // eslint-disable-next-line no-console + console.log('connection state: ', this.api.connection.readyState); + if (this.api.connection.readyState !== 1) { + // eslint-disable-next-line no-console + console.log('Info: Connection to the server was closed, trying to reconnect.'); + this.init(); + } + }; + + authorizeAndSubscribe() { + const { token, account_id } = getToken(); + if (token) { + this.token = token; + this.account_id = account_id; + this.api + .authorize(this.token) + .then(({ authorize }) => { + if (this.has_activeSymbols) { + this.toggleRunButton(false); + } else { + this.getActiveSymbols(); + } + this.subscribe(); + this.account_info = authorize; + }) + .catch(e => { + globalObserver.emit('Error', e); + }); + } + } + + subscribe() { + doUntilDone(() => this.api.send({ balance: 1, subscribe: 1 })); + doUntilDone(() => this.api.send({ transaction: 1, subscribe: 1 })); + } + + getActiveSymbols = async () => { + doUntilDone(() => this.api.send({ active_symbols: 'brief' })).then(({ active_symbols = [] }) => { + const pip_sizes = {}; + if (active_symbols.length) this.has_activeSymbols = true; + active_symbols.forEach(({ symbol, pip }) => { + pip_sizes[symbol] = +(+pip).toExponential().substring(3); + }); + this.pip_sizes = pip_sizes; + this.toggleRunButton(false); + }); + }; + + toggleRunButton = toggle => { + const run_button = document.querySelector('#db-animation__run-button'); + if (!run_button) return; + run_button.disabled = toggle; + }; + + setIsRunning(toggle = false) { + this.is_running = toggle; + } + + pushSubscription(subscription) { + this.subscriptions.push(subscription); + } + + clearSubscriptions() { + this.subscriptions.forEach(s => s.unsubscribe()); + this.subscriptions = []; + + // Resetting timeout resolvers + const global_timeouts = globalObserver.getState('global_timeouts') ?? []; + + global_timeouts.forEach((_, i) => { + clearTimeout(i); + }); + } + + getTime() { + if (!this.time_interval) { + this.time_interval = setInterval(() => { + this.api.send({ time: 1 }); + }, 30000); + } + } +} + +export const api_base = new APIBase(); diff --git a/packages/bot-skeleton/src/services/api/appId.js b/packages/bot-skeleton/src/services/api/appId.js index ed7417a9d34d..e56a9931fbea 100644 --- a/packages/bot-skeleton/src/services/api/appId.js +++ b/packages/bot-skeleton/src/services/api/appId.js @@ -10,3 +10,19 @@ export const generateDerivApiInstance = () => { }); return deriv_api; }; + +export const getLoginId = () => { + const login_id = localStorage.getItem('active_loginid'); + if (login_id && login_id !== 'null') return login_id; + return null; +}; + +export const getToken = () => { + const active_loginid = getLoginId(); + const client_accounts = JSON.parse(localStorage.getItem('client.accounts')) || undefined; + const active_account = (client_accounts && client_accounts[active_loginid]) || {}; + return { + token: active_account?.token || undefined, + account_id: active_loginid || undefined, + }; +}; diff --git a/packages/bot-skeleton/src/services/api/ticks_service.js b/packages/bot-skeleton/src/services/api/ticks_service.js index 2eaf3e8a50ce..3c6632faca0a 100644 --- a/packages/bot-skeleton/src/services/api/ticks_service.js +++ b/packages/bot-skeleton/src/services/api/ticks_service.js @@ -2,6 +2,7 @@ import { Map } from 'immutable'; import { historyToTicks, getLast } from 'binary-utils'; import { doUntilDone, getUUID } from '../tradeEngine/utils/helpers'; import { observer as globalObserver } from '../../utils/observer'; +import { api_base } from './api-base'; const parseTick = tick => ({ epoch: +tick.epoch, @@ -39,8 +40,7 @@ const updateCandles = (candles, ohlc) => { const getType = isCandle => (isCandle ? 'candles' : 'ticks'); export default class TicksService { - constructor(api) { - this.api = api; + constructor() { this.ticks = new Map(); this.candles = new Map(); this.tickListeners = new Map(); @@ -60,23 +60,13 @@ export default class TicksService { if (!this.active_symbols_promise) { this.active_symbols_promise = new Promise(resolve => { - this.getActiveSymbols().then(active_symbols => { - this.pipSizes = active_symbols - .reduce((s, i) => s.set(i.symbol, +(+i.pip).toExponential().substring(3)), new Map()) - .toObject(); - resolve(this.pipSizes); - }); + this.pipSizes = api_base.pip_sizes; + resolve(this.pipSizes); }); } return this.active_symbols_promise; } - getActiveSymbols = async () => { - await this.api.expectResponse('authorize'); - const active_symbols = await this.api.send({ active_symbols: 'brief' }); - return active_symbols.active_symbols; - }; - request(options) { const { symbol, granularity } = options; @@ -89,7 +79,6 @@ export default class TicksService { if (style === 'candles' && this.candles.hasIn([symbol, Number(granularity)])) { return Promise.resolve(this.candles.getIn([symbol, Number(granularity)])); } - return this.requestStream({ ...options, style }); } @@ -163,7 +152,7 @@ export default class TicksService { ...(tickSubscription || []), ]; - Promise.all(subscription.map(id => doUntilDone(() => this.api.forget(id)))); + Promise.all(subscription.map(id => doUntilDone(() => api_base.api.forget(id)))); this.subscriptions = new Map(); } @@ -195,7 +184,7 @@ export default class TicksService { } observe() { - this.api.onMessage().subscribe(({ data }) => { + const subscription = api_base.api.onMessage().subscribe(({ data }) => { if (data.msg_type === 'tick') { const { tick } = data; const { symbol, id } = tick; @@ -218,6 +207,7 @@ export default class TicksService { } } }); + api_base.pushSubscription(subscription); } requestStream(options) { @@ -260,7 +250,7 @@ export default class TicksService { style, }; return new Promise((resolve, reject) => { - doUntilDone(() => this.api.send(request_object)) + doUntilDone(() => api_base.api.send(request_object), [], api_base) .then(r => { if (style === 'ticks') { const ticks = historyToTicks(r.history); @@ -278,4 +268,27 @@ export default class TicksService { .catch(reject); }); } + + forget = subscription_id => { + if (subscription_id) { + api_base.api.forget(subscription_id); + } + }; + + unsubscribeFromTicksService() { + if (this.ticks_history_promise) { + const { stringified_options } = this.ticks_history_promise; + const { symbol = '' } = JSON.parse(stringified_options); + if (symbol) { + this.forget(this.subscriptions.getIn(['tick', symbol])); + } + } + if (this.candles_promise) { + const { stringified_options } = this.candles_promise; + const { symbol = '' } = JSON.parse(stringified_options); + if (symbol) { + this.forget(this.subscriptions.getIn(['candle', symbol])); + } + } + } } diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/Balance.js b/packages/bot-skeleton/src/services/tradeEngine/trade/Balance.js index 19f3aad85318..03a01578c671 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/Balance.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/Balance.js @@ -1,13 +1,14 @@ import { getFormattedText } from '@deriv/shared'; import { info } from '../utils/broadcast'; import DBotStore from '../../../scratch/dbot-store'; +import { api_base } from '../../api/api-base'; let balance_string = ''; export default Engine => class Balance extends Engine { observeBalance() { - this.api.onMessage().subscribe(({ data }) => { + const subscription = api_base.api.onMessage().subscribe(({ data }) => { if (data.msg_type === 'balance') { const { balance: { balance: b, currency }, @@ -18,6 +19,7 @@ export default Engine => info({ accountID: this.accountInfo.loginid, balance: balance_string }); } }); + api_base.pushSubscription(subscription); } // eslint-disable-next-line class-methods-use-this diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/OpenContract.js b/packages/bot-skeleton/src/services/tradeEngine/trade/OpenContract.js index 52c610a5f0a0..2c65f1637ae6 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/OpenContract.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/OpenContract.js @@ -3,15 +3,16 @@ import { sell, openContractReceived } from './state/actions'; import { contractStatus, contract as broadcastContract } from '../utils/broadcast'; import { doUntilDone } from '../utils/helpers'; import DBotStore from '../../../scratch/dbot-store'; +import { api_base } from '../../api/api-base'; export default Engine => class OpenContract extends Engine { observeOpenContract() { - this.api.onMessage().subscribe(({ data }) => { + const subscription = api_base.api.onMessage().subscribe(({ data }) => { if (data.msg_type === 'proposal_open_contract') { const contract = data.proposal_open_contract; - if (!contract && !this.expectedContractId(contract?.contract_id)) { + if (!contract || !this.expectedContractId(contract?.contract_id)) { return; } @@ -19,7 +20,7 @@ export default Engine => this.data.contract = contract; - broadcastContract({ accountID: this.accountInfo.loginid, ...contract }); + broadcastContract({ accountID: api_base.account_info.loginid, ...contract }); if (this.isSold) { this.contractId = ''; @@ -41,6 +42,7 @@ export default Engine => } } }); + api_base.pushSubscription(subscription); } waitForAfter() { @@ -51,7 +53,13 @@ export default Engine => subscribeToOpenContract(contract_id = this.contractId) { this.contractId = contract_id; - doUntilDone(() => this.api.send({ proposal_open_contract: 1, contract_id, subscribe: 1 })) + const request_object = { + proposal_open_contract: 1, + contract_id, + subscribe: 1, + }; + + doUntilDone(() => api_base.api.send(request_object)) .then(data => { const { populateConfig } = DBotStore.instance; populateConfig(data.proposal_open_contract); @@ -59,7 +67,7 @@ export default Engine => }) .catch(error => { if (error.error.code !== 'AlreadySubscribed') { - doUntilDone(() => this.api.send({ proposal_open_contract: 1, contract_id, subscribe: 1 })).then( + doUntilDone(() => api_base.api.send(request_object)).then( response => (this.openContractId = response.proposal_open_contract.id) ); } diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/Proposal.js b/packages/bot-skeleton/src/services/tradeEngine/trade/Proposal.js index 17e7914b298a..515d40b9421a 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/Proposal.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/Proposal.js @@ -1,6 +1,7 @@ import { localize } from '@deriv/translations'; import { proposalsReady, clearProposals } from './state/actions'; import { tradeOptionToProposal, doUntilDone } from '../utils/helpers'; +import { api_base } from '../../api/api-base'; export default Engine => class Proposal extends Engine { @@ -69,7 +70,7 @@ export default Engine => Promise.all( this.proposal_templates.map(proposal => { - doUntilDone(() => this.api.send(proposal)).catch(error => { + doUntilDone(() => api_base.api.send(proposal)).catch(error => { // We intercept ContractBuyValidationError as user may have specified // e.g. a DIGITUNDER 0 or DIGITOVER 9, while one proposal may be invalid // the other is valid. We will error on Purchase rather than here. @@ -94,7 +95,7 @@ export default Engine => } observeProposals() { - this.api.onMessage().subscribe(response => { + const subscription = api_base.api.onMessage().subscribe(response => { if (response.data.msg_type === 'proposal') { const { passthrough, proposal } = response.data; if ( @@ -108,6 +109,7 @@ export default Engine => } } }); + api_base.pushSubscription(subscription); } unsubscribeProposals() { @@ -128,7 +130,7 @@ export default Engine => return Promise.resolve(); } - return doUntilDone(() => this.api.forget(proposal.id)).then(() => { + return doUntilDone(() => api_base.api.forget(proposal.id)).then(() => { removeForgetProposalById(proposal.id); }); }) diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/Purchase.js b/packages/bot-skeleton/src/services/tradeEngine/trade/Purchase.js index 800c54201f93..cd3730f840eb 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/Purchase.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/Purchase.js @@ -3,6 +3,7 @@ import { BEFORE_PURCHASE } from './state/constants'; import { contractStatus, info, log } from '../utils/broadcast'; import { getUUID, recoverFromError, doUntilDone } from '../utils/helpers'; import { log_types } from '../../../constants/messages'; +import { api_base } from '../../api/api-base'; let delayIndex = 0; let purchase_reference; @@ -41,7 +42,7 @@ export default Engine => buy_price: buy.buy_price, }); }; - const action = () => this.api.send({ buy: id, price: askPrice }); + const action = () => api_base.api.send({ buy: id, price: askPrice }); this.isSold = false; contractStatus({ id: 'contract.purchase_sent', diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/Sell.js b/packages/bot-skeleton/src/services/tradeEngine/trade/Sell.js index 203cb9d6bdee..d2dc6bb7a3dc 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/Sell.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/Sell.js @@ -3,6 +3,7 @@ import { contractStatus, log } from '../utils/broadcast'; import { recoverFromError, doUntilDone } from '../utils/helpers'; import { log_types } from '../../../constants/messages'; import { observer as globalObserver } from '../../../utils/observer'; +import { api_base } from '../../api/api-base'; export default Engine => class Sell extends Engine { @@ -42,9 +43,9 @@ export default Engine => const contract_id = this.contractId; const sellContractAndGetContractInfo = () => { - return doUntilDone(() => this.api.send({ sell: contract_id, price: 0 })) + return doUntilDone(() => api_base.api.send({ sell: contract_id, price: 0 })) .then(sell_response => { - doUntilDone(() => this.api.send({ proposal_open_contract: 1, contract_id })).then( + doUntilDone(() => api_base.api.send({ proposal_open_contract: 1, contract_id })).then( () => sell_response ); }) @@ -70,7 +71,7 @@ export default Engine => // For every other error, check whether the contract is not actually already sold. return doUntilDone(() => - this.api.send({ + api_base.api.send({ proposal_open_contract: 1, contract_id, }) diff --git a/packages/bot-skeleton/src/services/tradeEngine/trade/index.js b/packages/bot-skeleton/src/services/tradeEngine/trade/index.js index 145bfcf67219..0a619a075f0f 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/trade/index.js +++ b/packages/bot-skeleton/src/services/tradeEngine/trade/index.js @@ -15,6 +15,7 @@ import { doUntilDone } from '../utils/helpers'; import { expectInitArg } from '../utils/sanitize'; import { createError } from '../../../utils/error'; import { observer as globalObserver } from '../../../utils/observer'; +import { api_base } from '../../api/api-base'; const watchBefore = store => watchScope({ @@ -64,7 +65,6 @@ const watchScope = ({ store, stopScope, passScope, passFlag }) => { export default class TradeEngine extends Balance(Purchase(Sell(OpenContract(Proposal(Ticks(Total(class {}))))))) { constructor($scope) { super(); - this.api = $scope.api; this.observer = $scope.observer; this.$scope = $scope; this.observe(); @@ -95,7 +95,6 @@ export default class TradeEngine extends Balance(Purchase(Sell(OpenContract(Prop globalObserver.emit('bot.running'); this.tradeOptions = tradeOptions; - this.store.dispatch(start()); this.checkLimits(tradeOptions); this.makeProposals({ ...this.options, ...tradeOptions }); @@ -106,17 +105,13 @@ export default class TradeEngine extends Balance(Purchase(Sell(OpenContract(Prop if (this.token === token) { return Promise.resolve(); } - - doUntilDone(() => this.api.authorize(token)).catch(e => { - this.$scope.observer.emit('Error', e); - }); return new Promise(resolve => { // Try to recover from a situation where API doesn't give us a correct response on // "proposal_open_contract" which would make the bot run forever. When there's a "sell" // event, wait a couple seconds for the API to give us the correct "proposal_open_contract" // response, if there's none after x seconds. Send an explicit request, which _should_ // solve the issue. This is a backup! - this.api.onMessage().subscribe(({ data }) => { + const subscription = api_base.api.onMessage().subscribe(({ data }) => { if (data.msg_type === 'transaction' && data.transaction.action === 'sell') { this.transaction_recovery_timeout = setTimeout(() => { const { contract } = this.data; @@ -124,27 +119,16 @@ export default class TradeEngine extends Balance(Purchase(Sell(OpenContract(Prop const is_open_contract = contract.status === 'open'; if (is_same_contract && is_open_contract) { doUntilDone(() => { - this.api.send({ proposal_open_contract: 1, contract_id: contract.contract_id }); + api_base.api.send({ proposal_open_contract: 1, contract_id: contract.contract_id }); }, ['PriceMoved']); } }, 1500); } - if (data.msg_type === 'authorize') { - this.accountInfo = data; - this.token = token; - - // Only subscribe to balance in browser, not for tests. - if (document) { - doUntilDone(() => this.api.send({ balance: 1, subscribe: 1 })).then(r => { - this.balance = Number(r.balance.balance); - resolve(); - }); - } else { - resolve(); - } - doUntilDone(() => this.api.send({ transaction: 1, subscribe: 1 })); - } + this.accountInfo = api_base.account_info; + this.token = api_base.token; + resolve(); }); + api_base.pushSubscription(subscription); }); } diff --git a/packages/bot-skeleton/src/services/tradeEngine/utils/cliTools.js b/packages/bot-skeleton/src/services/tradeEngine/utils/cliTools.js index bac5c53d459d..63cb063a7dc2 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/utils/cliTools.js +++ b/packages/bot-skeleton/src/services/tradeEngine/utils/cliTools.js @@ -1,11 +1,9 @@ import TicksService from '../../api/ticks_service'; import Observer from '../../../utils/observer'; -import { generateDerivApiInstance } from '../../api/appId'; export const createScope = () => { const observer = new Observer(); - const api = generateDerivApiInstance(); - const ticksService = new TicksService(api); + const ticksService = new TicksService(); const stopped = false; - return { observer, api, ticksService, stopped }; + return { observer, ticksService, stopped }; }; diff --git a/packages/bot-skeleton/src/services/tradeEngine/utils/helpers.js b/packages/bot-skeleton/src/services/tradeEngine/utils/helpers.js index ecb02e769017..8a996f9ec836 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/utils/helpers.js +++ b/packages/bot-skeleton/src/services/tradeEngine/utils/helpers.js @@ -130,13 +130,17 @@ export const shouldThrowError = (error, errors_to_ignore = []) => { return !is_ignorable_error; }; -export const recoverFromError = (promiseFn, recoverFn, errors_to_ignore, delay_index) => { +export const recoverFromError = (promiseFn, recoverFn, errors_to_ignore, delay_index, api_base) => { return new Promise((resolve, reject) => { const promise = promiseFn(); if (promise) { promise.then(resolve).catch(error => { - if (shouldThrowError(error, errors_to_ignore)) { + /** + * if bot is not running there is no point of recovering from error + * `!api_base.is_running` will check the bot status if it is not running it will kick out the control from loop + */ + if (shouldThrowError(error, errors_to_ignore) || (api_base && !api_base.is_running)) { reject(error); return; } @@ -172,7 +176,13 @@ export const recoverFromError = (promiseFn, recoverFn, errors_to_ignore, delay_i }); }; -export const doUntilDone = (promiseFn, errors_to_ignore) => { +/** + * @param {*} promiseFn api call - it could be api call or subscription + * @param {*} errors_to_ignore list of errors to ignore + * @param {*} api_base instance of APIBase class to check if the bot is running or not + * @returns a new promise + */ +export const doUntilDone = (promiseFn, errors_to_ignore, api_base) => { let delay_index = 1; return new Promise((resolve, reject) => { @@ -182,7 +192,7 @@ export const doUntilDone = (promiseFn, errors_to_ignore) => { }; const repeatFn = () => { - recoverFromError(promiseFn, recoverFn, errors_to_ignore, delay_index).then(resolve).catch(reject); + recoverFromError(promiseFn, recoverFn, errors_to_ignore, delay_index, api_base).then(resolve).catch(reject); }; repeatFn(); diff --git a/packages/bot-skeleton/src/services/tradeEngine/utils/interpreter.js b/packages/bot-skeleton/src/services/tradeEngine/utils/interpreter.js index d43cb67f01d0..788d172dbe39 100644 --- a/packages/bot-skeleton/src/services/tradeEngine/utils/interpreter.js +++ b/packages/bot-skeleton/src/services/tradeEngine/utils/interpreter.js @@ -4,6 +4,7 @@ import { createScope } from './cliTools'; import Interface from '../Interface'; import { unrecoverable_errors } from '../../../constants/messages'; import { observer as globalObserver } from '../../../utils/observer'; +import { api_base } from '../../api/api-base'; JSInterpreter.prototype.takeStateSnapshot = function () { const newStateStack = cloneThorough(this.stateStack, undefined, undefined, undefined, true); @@ -180,16 +181,14 @@ const Interpreter = () => { } function terminateSession() { - const { connection } = $scope.api; - if (connection.readyState === 0) { - connection.addEventListener('open', () => connection.close()); - } else if (connection.readyState === 1) { - connection.close(); - } - $scope.stopped = true; $scope.is_error_triggered = false; globalObserver.emit('bot.stop'); + const { ticksService } = $scope; + // Unsubscribe previous ticks_history subscription + ticksService.unsubscribeFromTicksService(); + // Unsubscribe the subscriptions from Proposal, Balance and OpenContract + api_base.clearSubscriptions(); } function run(code) { diff --git a/packages/bot-web-ui/src/components/trade-animation/trade-animation.jsx b/packages/bot-web-ui/src/components/trade-animation/trade-animation.jsx index 738ed174987a..de40ff31ad8c 100644 --- a/packages/bot-web-ui/src/components/trade-animation/trade-animation.jsx +++ b/packages/bot-web-ui/src/components/trade-animation/trade-animation.jsx @@ -85,9 +85,16 @@ const TradeAnimation = ({ info_direction, toggleAnimationInfoModal, cashier_validation, + performSelfExclusionCheck, }) => { const [is_button_disabled, updateIsButtonDisabled] = React.useState(false); const is_unavailable_for_payment_agent = cashier_validation?.includes('WithdrawServiceUnavailableForPA'); + + // perform self-exclusion checks which will be stored under the self-exclusion-store + React.useEffect(() => { + performSelfExclusionCheck(); + }, []); + React.useEffect(() => { if (is_button_disabled) { setTimeout(() => { @@ -95,6 +102,7 @@ const TradeAnimation = ({ }, 1000); } }, [is_button_disabled]); + const status_classes = ['', '', '']; let progress_status = contract_stage - @@ -174,6 +182,7 @@ TradeAnimation.propTypes = { is_stop_button_disabled: PropTypes.bool, onRunButtonClick: PropTypes.func, onStopButtonClick: PropTypes.func, + performSelfExclusionCheck: PropTypes.func, profit: PropTypes.number, should_show_overlay: PropTypes.bool, }; @@ -187,6 +196,7 @@ export default connect(({ summary_card, run_panel, toolbar, ui, client }) => ({ is_stop_button_disabled: run_panel.is_stop_button_disabled, onRunButtonClick: run_panel.onRunButtonClick, onStopButtonClick: run_panel.onStopButtonClick, + performSelfExclusionCheck: run_panel.performSelfExclusionCheck, profit: summary_card.profit, should_show_overlay: run_panel.should_show_overlay, toggleAnimationInfoModal: toolbar.toggleAnimationInfoModal, diff --git a/packages/bot-web-ui/src/stores/app-store.js b/packages/bot-web-ui/src/stores/app-store.js index 2088fa4b7da7..862140f7d1e5 100644 --- a/packages/bot-web-ui/src/stores/app-store.js +++ b/packages/bot-web-ui/src/stores/app-store.js @@ -39,7 +39,7 @@ export default class AppStore { onUnmount() { DBot.terminateBot(); - + DBot.terminateConnection(); if (Blockly.derivWorkspace) { clearInterval(Blockly.derivWorkspace.save_workspace_interval); Blockly.derivWorkspace.dispose(); diff --git a/packages/bot-web-ui/src/stores/run-panel-store.js b/packages/bot-web-ui/src/stores/run-panel-store.js index c0144b8e494a..c35b2390467e 100644 --- a/packages/bot-web-ui/src/stores/run-panel-store.js +++ b/packages/bot-web-ui/src/stores/run-panel-store.js @@ -32,6 +32,7 @@ export default class RunPanelStore { toggleDrawer: action.bound, setActiveTabIndex: action.bound, onCloseDialog: action.bound, + performSelfExclusionCheck: action.bound, showStopMultiplierContractDialog: action.bound, showLoginDialog: action.bound, showRealAccountDialog: action.bound, @@ -130,6 +131,11 @@ export default class RunPanelStore { ); } + async performSelfExclusionCheck() { + const { self_exclusion } = this.root_store; + await self_exclusion.checkRestriction(); + } + async onRunButtonClick() { const { core, summary_card, route_prompt_dialog, self_exclusion } = this.root_store; const { client, ui } = core; @@ -148,7 +154,6 @@ export default class RunPanelStore { */ if (is_ios || isSafari()) this.preloadAudio(); - await self_exclusion.checkRestriction(); if (!self_exclusion.should_bot_run) { self_exclusion.setIsRestricted(true); return; From d0a1b6ee47488045a718afde678557c569f97426 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 20 Jan 2023 15:40:34 +0400 Subject: [PATCH 68/84] =?UTF-8?q?translations:=20=F0=9F=93=9A=20sync=20tra?= =?UTF-8?q?nslations=20with=20crowdin=20(#7411)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: DerivFE <80095553+DerivFE@users.noreply.github.com> Co-authored-by: Farrah Mae Ochoa <82315152+farrah-deriv@users.noreply.github.com> --- packages/translations/crowdin/messages.json | 2 +- .../translations/src/translations/ach.json | 11 +++- .../translations/src/translations/ar.json | 11 +++- .../translations/src/translations/es.json | 19 +++++-- .../translations/src/translations/fr.json | 11 +++- .../translations/src/translations/id.json | 11 +++- .../translations/src/translations/it.json | 11 +++- .../translations/src/translations/ko.json | 11 +++- .../translations/src/translations/pl.json | 11 +++- .../translations/src/translations/pt.json | 11 +++- .../translations/src/translations/ru.json | 23 ++++++--- .../translations/src/translations/th.json | 51 +++++++++++-------- .../translations/src/translations/tr.json | 11 +++- .../translations/src/translations/vi.json | 11 +++- .../translations/src/translations/zh_cn.json | 11 +++- .../translations/src/translations/zh_tw.json | 11 +++- 16 files changed, 181 insertions(+), 46 deletions(-) diff --git a/packages/translations/crowdin/messages.json b/packages/translations/crowdin/messages.json index f48477cfe63d..8c29e7b3bba4 100644 --- a/packages/translations/crowdin/messages.json +++ b/packages/translations/crowdin/messages.json @@ -1 +1 @@ -{"0":"","1014140":"You may also call <0>+447723580049 to place your complaint.","3125515":"Your Deriv MT5 password is for logging in to your Deriv MT5 accounts on the desktop, web, and mobile apps.","3215342":"Last 30 days","7100308":"Hour must be between 0 and 23.","11539750":"set {{ variable }} to Relative Strength Index Array {{ dummy }}","11872052":"Yes, I'll come back later","14365404":"Request failed for: {{ message_type }}, retrying in {{ delay }}s","15377251":"Profit amount: {{profit}}","17843034":"Check proof of identity document verification status","19424289":"Username","19552684":"USD Basket","21035405":"Please tell us why you’re leaving. (Select up to {{ allowed_reasons }} reasons.)","24900606":"Gold Basket","25854018":"This block displays messages in the developer’s console with an input that can be either a string of text, a number, boolean, or an array of data.","26566655":"Summary","26596220":"Finance","27582767":"{{amount}} {{currency}}","27830635":"Deriv (V) Ltd","28581045":"Add a real MT5 account","30801950":"Your account will be opened with {{legal_entity_name}}, regulated by the Malta Gaming Authority, and will be subject to the laws of Malta.","33433576":"Please use an e-wallet to withdraw your funds.","35089987":"Upload the front and back of your driving licence.","39720204":"AUD Index","41737927":"Thank you","44877997":"Residence permit","45453595":"Binary Coin","45941470":"Where would you like to start?","46523711":"Your proof of identity is verified","49963458":"Choose an option","50200731":"FX majors (standard/micro lots), FX minors, basket indices, commodities, and cryptocurrencies","54185751":"Less than $100,000","55340304":"Keep your current contract?","55916349":"All","58254854":"Scopes","59169515":"If you select \"Asian Rise\", you will win the payout if the last tick is higher than the average of the ticks.","59341501":"Unrecognized file format","59662816":"Stated limits are subject to change without prior notice.","62748351":"List Length","63869411":"This block tests a given number according to the selection","64402604":"Check transfer information","65185694":"Fiat onramp","65982042":"Total","66519591":"Investor password","66557535":"Cancel your trade at any time within a specified time frame.","68885999":"Repeats the previous trade when an error is encountered.","69005593":"The example below restarts trading after 30 or more seconds after 1 minute candle was started.","71016232":"OMG/USD","71445658":"Open","71563326":"A fast and secure fiat-to-crypto payment service. Deposit cryptocurrencies from anywhere in the world using your credit/debit cards and bank transfers.","71853457":"$100,001 - $500,000","72500774":"Please fill in Tax residence.","73086872":"You have self-excluded from trading","73326375":"The low is the lowest point ever reached by the market during the contract period.","74963864":"Under","76916358":"You have reached the withdrawal limit.<0/>Please upload your proof of identity and address to lift the limit to continue your withdrawal.","80881349":"Get an Options account","81450871":"We couldn’t find that page","82839270":"Upload the page of your passport that contains your photo.","83202647":"Collapse Block","85343079":"Financial assessment","85359122":"40 or more","85389154":"Steps required to continue verification on your mobile","89062902":"Trade on MT5","90266322":"2. Start a chat with your newly created Telegram bot and make sure to send it some messages before proceeding to the next step. (e.g. Hello Bot!)","91993812":"The Martingale Strategy is a classic trading technique that has been used for more than a hundred years, popularised by the French mathematician Paul Pierre Levy in the 18th century.","96381225":"ID verification failed","98473502":"We’re not obliged to conduct an appropriateness test, nor provide you with any risk warnings.","98972777":"random item","100239694":"Upload front of card from your computer","102226908":"Field cannot be empty","108916570":"Duration: {{duration}} days","109073671":"Please use an e-wallet that you have used for deposits previously. Ensure the e-wallet supports withdrawal. See the list of e-wallets that support withdrawals <0>here.","111215238":"Move away from direct light","111718006":"End date","111931529":"Max. total stake over 7 days","113378532":"ETH/USD","113884303":"German Index","115032488":"Buy price and P/L","116005488":"Indicators","117318539":"Password should have lower and uppercase English letters with numbers.","119261701":"Prediction:","119446122":"Contract type is not selected","120340777":"Complete your personal details","123454801":"{{withdraw_amount}} {{currency_symbol}}","124625402":"of","124723298":"Upload a proof of address to verify your address","125443840":"6. Restart last trade on error","127307725":"A politically exposed person (PEP) is someone appointed with a prominent public position. Close associates and family members of a PEP are also considered to be PEPs.","130567238":"THEN","132596476":"In providing our services to you, we are required to ask you for some information to assess if a given product or service is appropriate for you and whether you have the experience and knowledge to understand the risks involved.<0/><0/>","132689841":"Trade on web terminal","133523018":"Please go to the Deposit page to get an address.","133536621":"and","138055021":"Synthetic indices","139454343":"Confirm my limits","141265840":"Funds transfer information","141626595":"Make sure your device has a working camera","142050447":"set {{ variable }} to create text with","142390699":"Connected to your mobile","143970826":"Payment problems?","145146541":"Our accounts and services are unavailable for the Jersey postal code","145736466":"Take a selfie","150486954":"Token name","151344063":"The exit spot is the market price when the contract is closed.","151646545":"Unable to read file {{name}}","152415091":"Math","152524253":"Trade the world’s markets with our popular user-friendly platform.","157593038":"random integer from {{ start_number }} to {{ end_number }}","160746023":"Tether as an Omni token (USDT) is a version of Tether that is hosted on the Omni layer on the Bitcoin blockchain.","160863687":"Camera not detected","164112826":"This block allows you to load blocks from a URL if you have them stored on a remote server, and they will be loaded only when your bot runs.","164564432":"Deposits are temporarily unavailable due to system maintenance. You can make your deposits when the maintenance is complete.","165294347":"Please set your country of residence in your account settings to access the cashier.","165312615":"Continue on phone","165682516":"If you don’t mind sharing, which other trading platforms do you use?","170185684":"Ignore","170244199":"I’m closing my account for other reasons.","171307423":"Recovery","171579918":"Go to Self-exclusion","171638706":"Variables","173991459":"We’re sending your request to the blockchain.","176319758":"Max. total stake over 30 days","176654019":"$100,000 - $250,000","177099483":"Your address verification is pending, and we’ve placed some restrictions on your account. The restrictions will be lifted once your address is verified.","178413314":"First name should be between 2 and 50 characters.","179083332":"Date","181881956":"Contract Type: {{ contract_type }}","184024288":"lower case","189705706":"This block uses the variable \"i\" to control the iterations. With each iteration, the value of \"i\" is determined by the items in a given list.","189759358":"Creates a list by repeating a given item","191372501":"Accumulation of Income/Savings","192436105":"No need for symbols, digits, or uppercase letters","192573933":"Verification complete","195972178":"Get character","196998347":"We hold customer funds in bank accounts separate from our operational accounts which would not, in the event of insolvency, form part of the company's assets. This meets the <0>Gambling Commission's requirements for the segregation of customer funds at the level: <1>medium protection.","197190401":"Expiry date","201091938":"30 days","203179929":"<0>You can open this account once your submitted documents have been verified.","203271702":"Try again","204797764":"Transfer to client","204863103":"Exit time","206010672":"Delete {{ delete_count }} Blocks","207824122":"Please withdraw your funds from the following Deriv account(s):","209533725":"You’ve transferred {{amount}} {{currency}}","210385770":"If you have an active account, please log in to continue. Otherwise, please sign up.","211224838":"Investment","211461880":"Common names and surnames are easy to guess","211847965":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable withdrawals.","216650710":"You are using a demo account","217403651":"St. Vincent & Grenadines","217504255":"Financial assessment submitted successfully","218441288":"Identity card number","220014242":"Upload a selfie from your computer","220186645":"Text Is empty","220232017":"demo CFDs","222468543":"The amount that you may add to your stake if you’re losing a trade.","223120514":"In this example, each point of the SMA line is an arithmetic average of close prices for the last 50 days.","223607908":"Last digit stats for latest 1000 ticks for {{underlying_name}}","224650827":"IOT/USD","224929714":"Virtual events based bets in the UK and the Isle of Man are offered by {{legal_entity_name}}, Millennium House, Level 1, Victoria Road, Douglas IM2 4RW, Isle of Man, licensed and regulated in Great Britain by the Gambling Commission under <0>account no. 39172 and by the Gambling Supervision Commission in the Isle of Man (<1>view licence).","225887649":"This block is mandatory. It's added to your strategy by default when you create new strategy. You can not add more than one copy of this block to the canvas.","227591929":"To timestamp {{ input_datetime }} {{ dummy }}","227903202":"We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts.","228079844":"Click here to upload","228521812":"Tests whether a string of text is empty. Returns a boolean value (true or false).","229355215":"Trade on {{platform_name_dbot}}","233500222":"- High: the highest price","235583807":"SMA is a frequently used indicator in technical analysis. It calculates the average market price over a specified period, and is usually used to identify market trend direction: up or down. For example, if the SMA is moving upwards, it means the market trend is up. ","236642001":"Journal","238496287":"Leverage trading is high-risk, so it's a good idea to use risk management features such as stop loss. Stop loss allows you to","240247367":"Profit table","243614144":"This is only available for existing clients.","245005091":"lower","245187862":"The DRC will make a <0>decision on the complaint (please note that the DRC mentions no timeframe for announcing its decision).","245812353":"if {{ condition }} return {{ value }}","247418415":"Gaming trading can become a real addiction, as can any other activity pushed to its limits. To avoid the danger of such an addiction, we provide a reality-check that gives you a summary of your trades and accounts on a regular basis.","248565468":"Check your {{ identifier_title }} account email and click the link in the email to proceed.","248909149":"Send a secure link to your phone","249908265":"Are you a citizen of {{- residence}}?","251134918":"Account Information","251322536":"Deriv EZ accounts","251445658":"Dark theme","251882697":"Thank you! Your response has been recorded into our system.<0/><0/>Please click ‘OK’ to continue.","254912581":"This block is similar to EMA, except that it gives you the entire EMA line based on the input list and the given period.","256031314":"Cash Business","256602726":"If you close your account:","258310842":"Workspace","258448370":"MT5","258912192":"Trading assessment","260069181":"An error occured while trying to load the URL","260086036":"Place blocks here to perform tasks once when your bot starts running.","260361841":"Tax Identification Number can't be longer than 25 characters.","264976398":"3. 'Error' displays a message in red to highlight something that needs to be resolved immediately.","265644304":"Trade types","267992618":"The platforms lack key features or functionality.","268940240":"Your balance ({{format_balance}} {{currency}}) is less than the current minimum withdrawal allowed ({{format_min_withdraw_amount}} {{currency}}). Please top up your account to continue with your withdrawal.","269322978":"Deposit with your local currency via peer-to-peer exchange with fellow traders in your country.","269607721":"Upload","270339490":"If you select \"Over\", you will win the payout if the last digit of the last tick is greater than your prediction.","270610771":"In this example, the open price of a candle is assigned to the variable \"candle_open_price\".","270712176":"descending","270780527":"You've reached the limit for uploading your documents.","272042258":"When you set your limits, they will be aggregated across all your account types in {{platform_name_trader}}, {{platform_name_dbot}}, {{platform_name_smarttrader}} and {{platform_name_bbot}} on Deriv. For example, the losses made on all four platforms will add up and be counted towards the loss limit you set.","272179372":"This block is commonly used to adjust the parameters of your next trade and to implement stop loss/take profit logic.","273350342":"Copy and paste the token into the app.","273728315":"Should not be 0 or empty","274268819":"Volatility 100 Index","275116637":"Deriv X","277469417":"Exclude time cannot be for more than five years.","278684544":"get sub-list from # from end","282319001":"Check your image","282564053":"Next, we'll need your proof of address.","283830551":"Your address doesn’t match your profile","283986166":"Self-exclusion on the website only applies to your {{brand_website_name}} account and does not include other companies or websites.","284527272":"antimode","284772879":"Contract","287934290":"Are you sure you want to cancel this transaction?","289898640":"TERMS OF USE","291817757":"Go to our Deriv community and learn about APIs, API tokens, ways to use Deriv APIs, and more.","292491635":"If you select “Stop loss” and specify an amount to limit your loss, your position will be closed automatically when your loss is more than or equals to this amount. Your loss may be more than the amount you entered depending on the market price at closing.","292526130":"Tick and candle analysis","292589175":"This will display the SMA for the specified period, using a candle list.","292887559":"Transfer to {{selected_value}} is not allowed, Please choose another account from dropdown","294305803":"Manage account settings","294335229":"Sell at market price","300762428":"Swiss Index","303959005":"Sell Price:","304309961":"We're reviewing your withdrawal request. You may still cancel this transaction if you wish. Once we start processing, you won't be able to cancel.","310234308":"Close all your positions.","312142140":"Save new limits?","312300092":"Trims the spaces within a given string or text.","313298169":"Our cashier is temporarily down due to system maintenance. You can access the Cashier in a few minutes when the maintenance is complete.","313741895":"This block returns “True” if the last candle is black. It can be placed anywhere on the canvas except within the Trade parameters root block.","315306603":"You have an account that do not have currency assigned. Please choose a currency to trade with this account.","316694303":"Is candle black?","317601768":"Themes","318865860":"close","318984807":"This block repeats the instructions contained within for a specific number of times.","323179846":"The time interval for each candle can be set from one minute to one day.","323209316":"Select a Deriv Bot Strategy","325662004":"Expand Block","325763347":"result","326770937":"Withdraw {{currency}} ({{currency_symbol}}) to your wallet","327534692":"Duration value is not allowed. To run the bot, please enter {{min}}.","328539132":"Repeats inside instructions specified number of times","329404045":"<0>Switch to your real account<1> to create a {{platform}} {{account_title}} account.","333456603":"Withdrawal limits","334680754":"Switch to your real account to create a Deriv MT5 account","334942497":"Buy time","335040248":"About us","337023006":"Start time cannot be in the past.","339449279":"Remaining time","339610914":"Spread Up/Spread Down","339879944":"GBP/USD","340807218":"Description not found.","342181776":"Cancel transaction","343873723":"This block displays a message. You can specify the color of the message and choose from 6 different sound options.","344418897":"These trading limits and self-exclusion help you control the amount of money and time you spend on {{brand_website_name}} and exercise <0>responsible trading.","345320063":"Invalid timestamp","346994074":"Selecting this will onboard you through Deriv (SVG) LLC (company no. 273 LLC 2020)","347029309":"Forex: standard/micro","347039138":"Iterate (2)","348951052":"Your cashier is currently locked","349047911":"Over","349110642":"<0>{{payment_agent}}<1>'s contact details","351744408":"Tests if a given text string is empty","352363702":"You may see links to websites with a fake Deriv login page where you’ll get scammed for your money.","353731490":"Job done","354945172":"Submit document","357477280":"No face found","359053005":"Please enter a token name.","359649435":"Given candle list is not valid","359809970":"This block gives you the selected candle value from a list of candles within the selected time interval. You can choose from open price, close price, high price, low price, and open time.","360224937":"Logic","362772494":"This should not exceed {{max}} characters.","363576009":"- High price: the highest price","363738790":"Browser","363990763":"Sell price:","368160866":"in list","371151609":"Last used","371710104":"This scope will allow third-party apps to buy and sell contracts for you, renew your expired purchases, and top up your demo accounts.","372291654":"Exclude time must be after today.","372645383":"True if the market direction matches the selection","373021397":"random","373306660":"{{label}} is required.","373495360":"This block returns the entire SMA line, containing a list of all values for a given period.","374164629":"Trade on Deriv MT5, the all-in-one FX and CFD trading platform.","374537470":"No results for \"{{text}}\"","375714803":"Deal Cancellation Error","379523479":"To avoid loss of funds, do not share tokens with the Admin scope with unauthorised parties.","379730150":"US Tech Index","380606668":"tick","380694312":"Maximum consecutive trades","382781785":"Your contract is closed automatically when your profit is more than or equals to this amount.","384303768":"This block returns \"True\" if the last candle is black. It can be placed anywhere on the canvas except within the Trade parameters root block.","386278304":"Install the {{platform_name_trader}} web app","386502387":"Bot is not running","389923099":"Zoom in","390647540":"Real account","390890891":"Last quarter","391915203":"Hedging","392582370":"Fall Equals","396418990":"Offline","396961806":"We do not support Polygon (Matic), to deposit please use only Ethereum ({{token}}).","398816980":"Launch {{platform_name_trader}} in seconds the next time you want to trade.","401339495":"Verify address","402343402":"Due to an issue on our server, some of your {{platform}} accounts are unavailable at the moment. Please bear with us and thank you for your patience.","403456289":"The formula for SMA is:","404743411":"Total deposits","406359555":"Contract details","406497323":"Sell your active contract if needed (optional)","411482865":"Add {{deriv_account}} account","412433839":"I agree to the <0>terms and conditions.","413594348":"Only letters, numbers, space, hyphen, period, and forward slash are allowed.","417714706":"If your margin level drops below our stop out level, your positions may be closed automatically to protect you from further losses.","417864079":"You’ll not be able to change currency once you have made a deposit.","418265501":"Demo Derived","420072489":"CFD trading frequency","422055502":"From","424897068":"Do you understand that you could potentially lose 100% of the money you use to trade?","426031496":"Stop","427134581":"Try using another file type.","427617266":"Bitcoin","428709688":"Your preferred time interval between each report:","430975601":"Town/City is not in a proper format.","432508385":"Take Profit: {{ currency }} {{ take_profit }}","432519573":"Document uploaded","433348384":"Real accounts are not available to politically exposed persons (PEPs).","433616983":"2. Investigation phase","434548438":"Highlight function definition","434896834":"Custom functions","436364528":"Your account will be opened with {{legal_entity_name}}, and will be subject to the laws of Saint Vincent and the Grenadines.","437138731":"Create a new {{platform}} password","437453244":"Choose your preferred cryptocurrency","437485293":"File type not supported","437904704":"Maximum open positions","438067535":"Over $500,000","442520703":"$250,001 - $500,000","443559872":"Financial SVG","444484637":"Logic negation","445419365":"1 - 2 years","450983288":"Your deposit is unsuccessful due to an error on the blockchain. Please contact your crypto wallet service provider for more info.","451852761":"Continue on your phone","452054360":"Similar to RSI, this block gives you a list of values for each entry in the input list.","453175851":"Your MT5 Financial STP account will be opened through {{legal_entity_name}}. All trading in this account is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA). None of your other accounts, including your Deriv account, is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA).","453409608":"Your profit is the percentage change in market price times your stake and the multiplier of your choice.","454593402":"2. Please upload one of the following:","456746157":"Grant access to your camera from your browser settings","457020083":"It’ll take longer to verify you if we can’t read it","457494524":"1. From the block library, enter a name for the new variable and click Create.","459817765":"Pending","460975214":"Complete your Appropriateness Test","461795838":"Please contact us via live chat to unlock it.","462079779":"Resale not offered","462461595":"Explore Trader's hub","463361726":"Select an item","465993338":"Oscar's Grind","466369320":"Your gross profit is the percentage change in market price times your stake and the multiplier chosen here.","467839232":"I trade forex CFDs and other complex financial instruments regularly on other platforms.","473154195":"Settings","473863031":"Pending proof of address review","474306498":"We’re sorry to see you leave. Your account is now closed.","475492878":"Try Synthetic Indices","476023405":"Didn't receive the email?","477557241":"Remote blocks to load must be a collection.","478280278":"This block displays a dialog box that uses a customised message to prompt for an input. The input can be either a string of text or a number and can be assigned to a variable. When the dialog box is displayed, your strategy is paused and will only resume after you enter a response and click \"OK\".","479420576":"Tertiary","481276888":"Goes Outside","483279638":"Assessment Completed<0/><0/>","483591040":"Delete all {{ delete_count }} blocks?","485379166":"View transactions","487239607":"Converts a given True or False to the opposite value","488150742":"Resend email","489768502":"Change investor password","491603904":"Unsupported browser","492198410":"Make sure everything is clear","496680295":"Choose country","497518317":"Function that returns a value","498562439":"or","499522484":"1. for \"string\": 1325.68 USD","500855527":"Chief Executives, Senior Officials and Legislators","500920471":"This block performs arithmetic operations between two numbers.","501401157":"You are only allowed to make deposits","501537611":"*Maximum number of open positions","502041595":"This block gives you a specific candle from within the selected time interval.","503137339":"Payout limit","505793554":"last letter","508390614":"Demo Financial STP","510815408":"Letters, numbers, spaces, hyphens only","514031715":"list {{ input_list }} is empty","514776243":"Your {{account_type}} password has been changed.","514948272":"Copy link","518955798":"7. Run Once at Start","520136698":"Boom 500 Index","521872670":"item","522283618":"Digital options trading experience","522703281":"divisible by","523123321":"- 10 to the power of a given number","527329988":"This is a top-100 common password","529056539":"Options","529597350":"If you had any open positions, we have closed them and refunded you.","530953413":"Authorised applications","531114081":"3. Contract Type","531675669":"Euro","535041346":"Max. total stake per day","538228086":"Close-Low","541650045":"Manage {{platform}} password","541700024":"First, enter your driving licence number and the expiry date.","542038694":"Only letters, numbers, space, underscore, and hyphen are allowed for {{label}}.","542305026":"You must also submit a proof of identity.","543413346":"You have no open positions for this asset. To view other open positions, click Go to Reports","543915570":"Forex, stocks, stock indices, cryptocurrencies, synthetic indices","545476424":"Total withdrawals","546534357":"If you select “Deal cancellation”, you’ll be able to cancel your trade within a chosen time frame should the market move against your favour. We’ll charge a small fee for this, but we’ll return your stake amount without profit or loss. If the stop-out amount is reached before the deal cancellation expires, your position will be cancelled automatically and we’ll return your stake amount without profit or loss. While “Deal cancellation” is active:","549479175":"Deriv Multipliers","551569133":"Learn more about trading limits","554410233":"This is a top-10 common password","555351771":"After defining trade parameters and trade options, you may want to instruct your bot to purchase contracts when specific conditions are met. To do that you can use conditional blocks and indicators blocks to help your bot to make decisions.","556264438":"Time interval","559224320":"Our classic “drag-and-drop” tool for creating trading bots, featuring pop-up trading charts, for advanced users.","561982839":"Change your currency","562599414":"This block returns the purchase price for the selected trade type. This block can be used only in the \"Purchase conditions\" root block.","563034502":"We shall try to resolve your complaint within 15 business days. We will inform you of the outcome together with an explanation of our position and propose any remedial measures we intend to take.","563166122":"We shall acknowledge receiving your complaint, review it carefully, and keep you updated on the handling process. We might request further information or clarifications to facilitate the resolution of the complaint.","563652273":"Go to block","565410797":"The below image illustrates how Simple Moving Average Array block works:","566274201":"1. Market","567019968":"A variable is among the most important and powerful components in creating a bot. It is a way to store information, either as text or numbers. The information stored as a variable can be used and changed according to the given instructions. Variables can be given any name, but usually they are given useful, symbolic names so that it is easier to call them during the execution of instructions.","567163880":"Create a {{platform}} password","567755787":"Tax Identification Number is required.","569057236":"In which country was your document issued?","571921777":"Funds protection level","572576218":"Languages","573173477":"Is candle {{ input_candle }} black?","577215477":"count with {{ variable }} from {{ start_number }} to {{ end_number }} by {{ step_size }}","577779861":"Withdrawal","577883523":"4. Awards and orders","578640761":"Call Spread","579529868":"Show all details — including the bottom 2 lines","580431127":"Restart buy/sell on error (disable for better performance): {{ checkbox }}","580665362":"Stays In/Goes Out","580774080":"insert at","581168980":"Legal","582945649":"2 minutes","584028307":"Allow equals","587577425":"Secure my account","587856857":"Want to know more about APIs?","592087722":"Employment status is required.","593459109":"Try a different currency","595080994":"Example: CR123456789","595136687":"Save Strategy","597089493":"Here is where you can decide to sell your contract before it expires. Only one copy of this block is allowed.","597481571":"DISCLAIMER","597707115":"Tell us about your trading experience.","599469202":"{{secondPast}}s ago","602278674":"Verify identity","606240547":"- Natural log","606877840":"Back to today","607807243":"Get candle","609519227":"This is the email address associated with your Deriv account.","609650241":"Infinite loop detected","610537973":"Any information you provide is confidential and will be used for verification purposes only.","611020126":"View address on Blockchain","611786123":"FX-majors (standard/micro lots), FX-minors, Commodities, Cryptocurrencies, Stocks, and Stock Indices","613877038":"Chart","617345387":"If you select \"Reset-Up”, you win the payout if the exit spot is strictly higher than either the entry spot or the spot at reset time.","618520466":"Example of a cut-off document","619268911":"<0>a.The Financial Commission will investigate the validity of the complaint within 5 business days.","619407328":"Are you sure you want to unlink from {{identifier_title}}?","623192233":"Please complete the <0>Appropriateness Test to access your cashier.","623542160":"Exponential Moving Average Array (EMAA)","626175020":"Standard Deviation Up Multiplier {{ input_number }}","626809456":"Resubmit","627292452":"<0>Your Proof of Identity or Proof of Address did not meet our requirements. Please check your email for further instructions.","627814558":"This block returns a value when a condition is true. Use this block within either of the function blocks above.","628193133":"Account ID","629145209":"In case if the \"AND\" operation is selected, the block returns \"True\" only if both given values are \"True\"","632398049":"This block assigns a null value to an item or statement.","634219491":"You have not provided your tax identification number. This information is necessary for legal and regulatory requirements. Please go to <0>Personal details in your account settings, and fill in your latest tax identification number.","636219628":"<0>c.If no settlement opportunity can be found, the complaint will proceed to the determination phase to be handled by the DRC.","639382772":"Please upload supported file type.","640596349":"You have yet to receive any notifications","640730141":"Refresh this page to restart the identity verification process","641420532":"We've sent you an email","642210189":"Please check your email for the verification link to complete the process.","642393128":"Enter amount","642546661":"Upload back of license from your computer","642995056":"Email","643014039":"The trade length of your purchased contract.","644150241":"The number of contracts you have won since you last cleared your stats.","645016681":"Trading frequency in other financial instruments","645902266":"EUR/NZD","647192851":"Contract will be sold at the prevailing market price when the request is received by our servers. This price may differ from the indicated price.","647745382":"Input List {{ input_list }}","649317411":"On the basis of the information provided in relation to your knowledge and experience, we consider that the investments available via this website are not appropriate for you.<0/><1/>","649923867":"Adds a sign to a number to create a barrier offset. (deprecated)","651284052":"Low Tick","651684094":"Notify","652041791":"To create a Deriv X real account, create a Deriv real account first.","652298946":"Date of birth","654264404":"Up to 1:30","654507872":"True-False","654924603":"Martingale","655937299":"We’ll update your limits. Click <0>Accept to acknowledge that you are fully responsible for your actions, and we are not liable for any addiction or loss.","657325150":"This block is used to define trade options within the Trade parameters root block. Some options are only applicable for certain trade types. Parameters such as duration and stake are common among most trade types. Prediction is used for trade types such as Digits, while barrier offsets are for trade types that involve barriers such as Touch/No Touch, Ends In/Out, etc.","657444253":"Sorry, account opening is unavailable in your region.","659482342":"Please remember that it is your responsibility to keep your answers accurate and up to date. You can update your personal details at any time in your account settings.","660481941":"To access your mobile apps and other third-party apps, you'll first need to generate an API token.","660991534":"Finish","661759508":"On the basis of the information provided in relation to your knowledge and experience, we consider that the investments available via this website are not appropriate for you.<0/><0/>","662578726":"Available","662609119":"Download the MT5 app","665089217":"Please submit your <0>proof of identity to authenticate your account and access your Cashier.","665777772":"XLM/USD","665872465":"In the example below, the opening price is selected, which is then assigned to a variable called \"op\".","666724936":"Please enter a valid ID number.","668344562":"Synthetics, FX majors (standard/micro lots), FX minors, basket indices, commodities, and cryptocurrencies","672008428":"ZEC/USD","673915530":"Jurisdiction and choice of law","674973192":"Use this password to log in to your Deriv MT5 accounts on the desktop, web, and mobile apps.","676159329":"Could not switch to default account.","677918431":"Market: {{ input_market }} > {{ input_submarket }} > {{ input_symbol }}","678517581":"Units","680334348":"This block was required to correctly convert your old strategy.","680478881":"Total withdrawal limit","681926004":"Example of a blurry document","682056402":"Standard Deviation Down Multiplier {{ input_number }}","684282133":"Trading instruments","685391401":"If you're having trouble signing in, let us know via <0>chat","687212287":"Amount is a required field.","689137215":"Purchase price","691956534":"<0>You have added a {{currency}} account.<0> Make a deposit now to start trading.","693396140":"Deal cancellation (expired)","696870196":"- Open time: the opening time stamp","697630556":"This market is presently closed.","698748892":"Let’s try that again","699159918":"1. Filing complaints","700259824":"Account currency","701034660":"We are still processing your withdrawal request.<0 />Please wait for the transaction to be completed before deactivating your account.","701462190":"Entry spot","701647434":"Search for string","705299518":"Next, upload the page of your passport that contains your photo.","706727320":"Binary options trading frequency","706755289":"This block performs trigonometric functions.","707662672":"{{unblock_date}} at {{unblock_time}}","708055868":"Driving licence number","710123510":"repeat {{ while_or_until }} {{ boolean }}","711999057":"Successful","712101776":"Take a photo of your passport photo page","712635681":"This block gives you the selected candle value from a list of candles. You can choose from open price, close price, high price, low price, and open time.","713054648":"Sending","714080194":"Submit proof","714746816":"MetaTrader 5 Windows app","715841616":"Please enter a valid phone number (e.g. +15417541234).","716428965":"(Closed)","718504300":"Postal/ZIP code","720293140":"Log out","720519019":"Reset my password","721011817":"- Raise the first number to the power of the second number","723045653":"You'll log in to your Deriv account with this email address.","723961296":"Manage password","724203548":"You can send your complaint to the <0>European Commission's Online Dispute Resolution (ODR) platform. This is not applicable to UK clients.","728042840":"To continue trading with us, please confirm where you live.","728824018":"Spanish Index","729651741":"Choose a photo","730473724":"This block performs the \"AND\" or the \"OR\" logic operation with the given values.","731382582":"BNB/USD","734390964":"Insufficient balance","734881840":"false","742676532":"Trade CFDs on forex, derived indices, cryptocurrencies, and commodities with high leverage.","744110277":"Bollinger Bands Array (BBA)","745656178":"Use this block to sell your contract at the market price.","745674059":"Returns the specific character from a given string of text according to the selected option. ","746112978":"Your computer may take a few seconds to update","750886728":"Switch to your real account to submit your documents","751692023":"We <0>do not guarantee a refund if you make a wrong transfer.","752024971":"Reached maximum number of digits","752633544":"You will need to submit proof of identity and address once you reach certain thresholds","752992217":"This block gives you the selected constant values.","753088835":"Default","753184969":"In providing our services to you, we are required to obtain information from you in order to assess whether a given product or service is appropriate for you (that is, whether you possess the experience and knowledge to understand the risks involved).<0/><1/>","753727511":"Type","755867072":"{{platform_name_mt5}} is not available in {{country}}","756152377":"SMA places equal weight to the entire distribution of values.","758003269":"make list from text","759783233":"For more information and assistance to counselling and support services, please visit <0>begambleaware.org.","760528514":"Please note that changing the value of \"i\" won't change the value of the original item in the list","761576760":"Fund your account to start trading.","762185380":"<0>Multiply returns by <0>risking only what you put in.","762871622":"{{remaining_time}}s","763019867":"Your Gaming account is scheduled to be closed","764366329":"Trading limits","764540515":"Stopping the bot is risky","766317539":"Language","770171141":"Go to {{hostname}}","772632060":"Do not send any other currency to the following address. Otherwise, you'll lose funds.","773091074":"Stake:","773309981":"Oil/USD","773336410":"Tether is a blockchain-enabled platform designed to facilitate the use of fiat currencies in a digital manner.","775679302":"{{pending_withdrawals}} pending withdrawal(s)","776085955":"Strategies","781924436":"Call Spread/Put Spread","783974693":"Avoid recent years","784311461":"Exponential Moving Average (EMA)","784583814":"Linked to your computer","785969488":"Jump 75 Index","787116142":"The multiplier amount used to increase your stake if you’re losing a trade. Value must be higher than 2.","787727156":"Barrier","788005234":"NA","793526589":"To file a complaint about our service, send an email to <0>complaints@deriv.com and state your complaint in detail. Please submit any relevant screenshots of your trading or system for our better understanding.","793531921":"Our company is one of the oldest and most reputable online trading companies in the world. We are committed to treat our clients fairly and provide them with excellent service.<0/><1/>Please provide us with feedback on how we can improve our services to you. Rest assured that you will be heard, valued, and treated fairly at all times.","794682658":"Copy the link to your phone","795859446":"Password saved","797007873":"Follow these steps to recover camera access:","797500286":"negative","800228448":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}} and {{legal_entity_name_fx}}.","800521289":"Your personal details are incomplete","801430087":"A link can contain the word \"Deriv\" and still be fake.","802436811":"View transaction details","802438383":"New proof of address is needed","802556390":"seconds","802989607":"Drag your XML file here","803500173":"Initial stake","807499069":"Financial commission complaints procedure","808323704":"You can also use \"Compare\" and \"Logic operation\" blocks to make test variables.","811876954":"You may transfer between your Deriv fiat, cryptocurrency, {{platform_name_mt5}}, and {{platform_name_dxtrade}} accounts.","816580787":"Welcome back! Your messages have been restored.","816738009":"<0/><1/>You may also raise your unresolved dispute to the <2>Office of the Arbiter for Financial Services.","818447476":"Switch account?","820877027":"Please verify your proof of identity","823186089":"A block that can contain text.","824797920":"Is list empty?","826511719":"USD/SEK","827688195":"Disable Block","828219890":"then","828602451":"Returns the list of tick values in string format","830164967":"Last name","830993327":"No current transactions available","832217983":"40 transactions or more in the past 12 months","832398317":"Sell Error","832588873":"Order execution","832721563":"If you select \"Low Tick\", you win the payout if the selected tick is the lowest among the next five ticks.","834966953":"1551661986 seconds since Jan 01 1970 (UTC) translates to 03/04/2019 @ 1:13am (UTC).","835058671":"Total buy price","835350845":"Add another word or two. Uncommon words are better.","836097457":"I am interested in trading but have very little experience.","837066896":"Your document is being reviewed, please check back in 1-3 days.","839618971":"ADDRESS","839805709":"To smoothly verify you, we need a better photo","841434703":"Disable stack","841543189":"View transaction on Blockchain","843333337":"You can only make deposits. Please complete the <0>financial assessment to unlock withdrawals.","845213721":"Logout","845304111":"Slow EMA Period {{ input_number }}","847888634":"Please withdraw all your funds.","850582774":"Please update your personal info","851054273":"If you select \"Higher\", you win the payout if the exit spot is strictly higher than the barrier.","851264055":"Creates a list with a given item repeated for a specific number of times.","851508288":"This block constrains a given number within a set range.","852583045":"Tick List String","854399751":"Digit code must only contain numbers.","854630522":"Choose a cryptocurrency account","857363137":"Volatility 300 (1s) Index","857445204":"Deriv currently supports withdrawals of Tether eUSDT to Ethereum wallet. To ensure a successful transaction, enter a wallet address compatible with the tokens you wish to withdraw. <0>Learn more","857986403":"do something","860319618":"Tourism","862283602":"Phone number*","863328851":"Proof of identity","864610268":"First, enter your {{label}} and the expiry date.","864957760":"Math Number Positive","865424952":"High-to-Low","865642450":"2. Logged in from a different browser","866496238":"Make sure your license details are clear to read, with no blur or glare","868826608":"Excluded from {{brand_website_name}} until","869823595":"Function","869993298":"Minimum withdrawal","872549975":"You have {{number}} transfers remaining for today.","872661442":"Are you sure you want to update email <0>{{prev_email}} to <1>{{changed_email}}?","872817404":"Entry Spot Time","873166343":"1. 'Log' displays a regular message.","874461655":"Scan the QR code with your phone","874484887":"Take profit must be a positive number.","875532284":"Restart process on a different device","876086855":"Complete the financial assessment form","876292912":"Exit","879014472":"Reached maximum number of decimals","888274063":"Town/City","890299833":"Go to Reports","891097078":"USD Index","891337947":"Select country","892341141":"Your trading statistics since: {{date_time}}","893117915":"Variable","893963781":"Close-to-Low","893975500":"You do not have any recent bots","894191608":"<0>c.We must award the settlement within 28 days of when the decision is reached.","898457777":"You have added a Deriv Financial account.","902045490":"3 minutes","903429103":"In candles list read {{ candle_property }} # from end {{ input_number }}","904696726":"API token","905134118":"Payout:","905227556":"Strong passwords contain at least 8 characters, combine uppercase and lowercase letters and numbers.","905564365":"MT5 CFDs","906049814":"We’ll review your documents and notify you of its status within 5 minutes.","907680782":"Proof of ownership verification failed","910888293":"Too many attempts","915735109":"Back to {{platform_name}}","918447723":"Real","920125517":"Add demo account","921901739":"- your account details of the bank linked to your account","924046954":"Upload a document showing your name and bank account number or account details.","926813068":"Fixed/Variable","929608744":"You are unable to make withdrawals","930346117":"Capitalization doesn't help very much","930546422":"Touch","933126306":"Enter some text here","933193610":"Only letters, periods, hyphens, apostrophes, and spaces, please.","934835052":"Potential profit","934932936":"PERSONAL","936766426":"You are limited to one fiat account. You won’t be able to change your account currency if you have already made your first deposit.","937237342":"Strategy name cannot be empty","937682366":"Upload both of these documents to prove your identity.","937831119":"Last name*","937992258":"Table","938500877":"{{ text }}. <0>You can view the summary of this transaction in your email.","938988777":"High barrier","940950724":"This trade type is currently not supported on {{website_name}}. Please go to <0>Binary.com for details.","943535887":"Please close your positions in the following Deriv MT5 account(s):","944499219":"Max. open positions","945532698":"Contract sold","946204249":"Read","946841802":"A white (or green) candle indicates that the open price is lower than the close price. This represents an upward movement of the market price.","946944859":"Hit the button below and we'll send you an email with a link. Click that link to verify your withdrawal request.","947046137":"Your withdrawal will be processed within 24 hours","947363256":"Create list","947549448":"Total assets in your Deriv, {{platform_name_mt5}} and {{platform_name_dxtrade}} real accounts.","947758334":"City is required","947914894":"Top up  <0>","948156236":"Create {{type}} password","948545552":"150+","949859957":"Submit","952927527":"Regulated by the Malta Financial Services Authority (MFSA) (licence no. IS/70156)","955352264":"Trade on {{platform_name_dxtrade}}","956448295":"Cut-off image detected","957182756":"Trigonometric functions","958430760":"In/Out","959031082":"set {{ variable }} to MACD Array {{ dropdown }} {{ dummy }}","960201789":"3. Sell conditions","961692401":"Bot","966457287":"set {{ variable }} to Exponential Moving Average {{ dummy }}","968576099":"Up/Down","969987233":"Win up to maximum payout if exit spot is between lower and upper barrier, in proportion to the difference between exit spot and lower barrier.","970915884":"AN","974888153":"High-Low","975668699":"I confirm and accept {{company}} 's <0>Terms and Conditions","975950139":"Country of Residence","977929335":"Go to my account settings","981138557":"Redirect","981965437":"Scan the QR code below with your 2FA app. We recommend <0>Authy or <1>Google Authenticator.","982146443":"WhatsApp","982402892":"First line of address","982829181":"Barriers","987224688":"How many trades have you placed with other financial instruments in the past 12 months?","987900242":"Total assets in your Deriv, {{platform_name_mt5}} and {{platform_name_dxtrade}} demo accounts.","988361781":"You have no trading activity yet.","988934465":"When prompted, you must enable camera access to continue","992294492":"Your postal code is invalid","993827052":"Choosing this jurisdiction will give you a Financial STP account. Your trades will go directly to the market and have tighter spreads.","995563717":"not {{ boolean }}","999008199":"text","1001160515":"Sell","1001749987":"You’ll get a warning, named margin call, if your account balance drops down close to the stop out level.","1003876411":"Should start with letter or number and may contain a hyphen, period and slash.","1004127734":"Send email","1006458411":"Errors","1006664890":"Silent","1009032439":"All time","1010198306":"This block creates a list with strings and numbers.","1010337648":"We were unable to verify your proof of ownership.","1012102263":"You will not be able to log in to your account until this date (up to 6 weeks from today).","1015201500":"Define your trade options such as duration and stake.","1016220824":"You need to switch to a real money account to use this feature.<0/>You can do this by selecting a real account from the <1>Account Switcher.","1018803177":"standard deviation","1019265663":"You have no transactions yet.","1019508841":"Barrier 1","1022934784":"1 minute","1023237947":"1. In the example below, the instructions are repeated as long as the value of x is less than or equal to 10. Once the value of x exceeds 10, the loop is terminated.","1023643811":"This block purchases contract of a specified type.","1023795011":"Even/Odd","1024205076":"Logic operation","1025887996":"Negative Balance Protection","1026046972":"Please enter a payout amount that's lower than {{max_payout}}.","1027098103":"Leverage gives you the ability to trade a larger position using your existing capital. Leverage varies across different symbols.","1028211549":"All fields are required","1028758659":"Citizenship*","1029164365":"We presume that you possess the experience, knowledge, and expertise to make your own investment decisions and properly assess the risk involved.","1030021206":"change {{ variable }} by {{ number }}","1031602624":"We've sent a secure link to %{number}","1031731167":"Pound Sterling","1032173180":"Deriv","1032907147":"AUD/NZD","1035506236":"Choose a new password","1036116144":"Speculate on the price movement of an asset without actually owning it.","1036353276":"Please create another Deriv or {{platform_name_mt5}} account.","1036867749":"The desired duration, stake, prediction, and/or barrier(s) for the contract is defined here.","1038575777":"Change password","1039755542":"Use a few words, avoid common phrases","1040677897":"To continue trading, you must also submit a proof of address.","1041001318":"This block performs the following operations on a given list: sum, minimum, maximum, average, median, mode, antimode, standard deviation, random item.","1041620447":"If you are unable to scan the QR code, you can manually enter this code instead:","1042659819":"You have an account that needs action","1043790274":"There was an error","1044230481":"This is an Ethereum ({{token}}) only address, please do not use {{prohibited_token}}.","1044540155":"100+","1044599642":"<0> has been credited into your {{platform}} {{title}} account.","1045704971":"Jump 150 Index","1045782294":"Click the <0>Change password button to change your Deriv password.","1047389068":"Food Services","1048947317":"Sorry, this app is unavailable in {{clients_country}}.","1049384824":"Rise","1050128247":"I confirm that I have verified the payment agent’s transfer information.","1050844889":"Reports","1052137359":"Family name*","1052779010":"You are on your demo account","1053153674":"Jump 50 Index","1053159279":"Level of education","1055313820":"No document detected","1056381071":"Return to trade","1056821534":"Are you sure?","1057216772":"text {{ input_text }} is empty","1057749183":"Two-factor authentication (2FA)","1057765448":"Stop out level","1057904606":"The concept of the D’Alembert Strategy is said to be similar to the Martingale Strategy where you will increase your contract size after a loss. With the D’Alembert Strategy, you will also decrease your contract size after a successful trade.","1060231263":"When are you required to pay an initial margin?","1061308507":"Purchase {{ contract_type }}","1061561084":"Switch to your real account to create a Deriv MT5 {{account_title}} {{type_title}} account.","1062536855":"Equals","1065353420":"110+","1065498209":"Iterate (1)","1069347258":"The verification link you used is invalid or expired. Please request for a new one.","1069576070":"Purchase lock","1070624871":"Check proof of address document verification status","1076006913":"Profit/loss on the last {{item_count}} contracts","1077515534":"Date to","1078221772":"Leverage prevents you from opening large positions.","1080068516":"Action","1080990424":"Confirm","1082158368":"*Maximum account cash balance","1082406746":"Please enter a stake amount that's at least {{min_stake}}.","1083781009":"Tax identification number*","1083826534":"Enable Block","1086118495":"Traders Hub","1088138125":"Tick {{current_tick}} - ","1089085289":"Mobile number","1096078516":"We’ll review your documents and notify you of its status within 3 days.","1096175323":"You’ll need a Deriv account","1098147569":"Purchase commodities or shares of a company.","1098622295":"\"i\" starts with the value of 1, and it will be increased by 2 at every iteration. The loop will repeat until \"i\" reaches the value of 12, and then the loop is terminated.","1100870148":"To learn more about account limits and how they apply, please go to the <0>Help Centre.","1101560682":"stack","1101712085":"Buy Price","1102420931":"Next, upload the front and back of your driving licence.","1102995654":"Calculates Exponential Moving Average (EMA) list from a list of values with a period","1103309514":"Target","1103452171":"Cookies help us to give you a better experience and personalised content on our site.","1104912023":"Pending verification","1107474660":"Submit proof of address","1107555942":"To","1109217274":"Success!","1110102997":"Statement","1112582372":"Interval duration","1113119682":"This block gives you the selected candle value from a list of candles.","1113292761":"Less than 8MB","1113433728":"Resubmit your proof of identity and address","1117863275":"Security and safety","1118294625":"You have chosen to exclude yourself from trading on our website until {{exclusion_end}}. If you are unable to place a trade or deposit after your self-exclusion period, please contact us via live chat.","1119887091":"Verification","1119986999":"Your proof of address was submitted successfully","1120985361":"Terms & conditions updated","1122910860":"Please complete your <0>financial assessment.","1123927492":"You have not selected your account currency","1125090693":"Must be a number","1126075317":"Add your Deriv MT5 <0>{{account_type_name}} STP account under Deriv (FX) Ltd regulated by Labuan Financial Services Authority (Licence no. MB/18/0024).","1126934455":"Length of token name must be between 2 and 32 characters.","1127149819":"Make sure§","1128139358":"How many CFD trades have you placed in the past 12 months?","1128404172":"Undo","1129124569":"If you select \"Under\", you will win the payout if the last digit of the last tick is less than your prediction.","1129842439":"Please enter a take profit amount.","1130744117":"We shall try to resolve your complaint within 10 business days. We will inform you of the outcome together with an explanation of our position and propose any remedial measures we intend to take.","1130791706":"N","1133651559":"Live chat","1134879544":"Example of a document with glare","1139483178":"Enable stack","1143730031":"Direction is {{ direction_type }}","1144028300":"Relative Strength Index Array (RSIA)","1145927365":"Run the blocks inside after a given number of seconds","1146064568":"Go to Deposit page","1147269948":"Barrier cannot be zero.","1147625645":"Please proceed to withdraw all your funds from your account before <0>30 November 2021.","1151964318":"both sides","1152294962":"Upload the front of your driving licence.","1154021400":"list","1154239195":"Title and name","1155011317":"This block converts the date and time to the number of seconds since the Unix Epoch (1970-01-01 00:00:00).","1158678321":"<0>b.The Head of the Dispute Resolution Committee (DRC) will contact both you and us within 5 business days to obtain all necessary information and see if there is a chance to settle the complaint during the investigation phase.","1160761178":"No payout if exit spot is below or equal to the lower barrier.","1161924555":"Please select an option","1163836811":"Real Estate","1164773983":"Take profit and/or stop loss are not available while deal cancellation is active.","1166128807":"Choose one of your accounts or add a new cryptocurrency account","1166377304":"Increment value","1168029733":"Win payout if exit spot is also equal to entry spot.","1169201692":"Create {{platform}} password","1170228717":"Stay on {{platform_name_trader}}","1174542625":"- Find the chat ID property in the response, and copy the value of the id property","1174748431":"Payment channel","1175183064":"Vanuatu","1176926166":"Experience with trading other financial instruments","1177396776":"If you select \"Asian Fall\", you will win the payout if the last tick is lower than the average of the ticks.","1177723589":"There are no transactions to display","1178582280":"The number of contracts you have lost since you last cleared your stats.","1178800778":"Take a photo of the back of your license","1178942276":"Please try again in a minute.","1179704370":"Please enter a take profit amount that's higher than the current potential profit.","1180619731":"Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts, up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts, and up to {{ allowed_dxtrade }} transfers between your Deriv and {{platform_name_dxtrade}} accounts.","1181396316":"This block gives you a random number from within a set range","1181770592":"Profit/loss from selling","1183007646":"- Contract type: the name of the contract type such as Rise, Fall, Touch, No Touch, etс.","1188316409":"To receive your funds, contact the payment agent with the details below","1188980408":"5 minutes","1189368976":"Please complete your personal details before you verify your identity.","1189886490":"Please create another Deriv, {{platform_name_mt5}}, or {{platform_name_dxtrade}} account.","1191429031":"Please click on the link in the email to change your <0>{{platform_name_dxtrade}} password.","1191644656":"Predict the market direction and select either “Up” or “Down” to open a position. We will charge a commission when you open a position.","1192708099":"Duration unit","1195393249":"Notify {{ notification_type }} with sound: {{ notification_sound }} {{ input_message }}","1196006480":"Profit threshold","1197326289":"You are no longer able to trade digital options on any of our platforms. Also, you can’t make deposits into your Options account.","1198368641":"Relative Strength Index (RSI)","1199281499":"Last Digits List","1201533528":"Contracts won","1201773643":"numeric","1203297580":"This block sends a message to a Telegram channel.","1204223111":"In this example, the open prices from a list of candles are assigned to a variable called \"candle_list\".","1206227936":"How to mask your card?","1206821331":"Armed Forces","1208729868":"Ticks","1208903663":"Invalid token","1211912982":"Bot is starting","1214893428":"Account creation is currently unavailable for mobile. Please log in with your computer to create a new account.","1216408337":"Self-Employed","1217159705":"Bank account number","1217481729":"Tether as an ERC20 token (eUSDT) is a version of Tether that is hosted on Ethereum.","1218546232":"What is Fiat onramp?","1219844088":"do %1","1221250438":"To enable withdrawals, please submit your <0>Proof of Identity (POI) and <1>Proof of Address (POA) and also complete the <2>financial assessment in your account settings.","1222096166":"Deposit via bank wire, credit card, and e-wallet","1222521778":"Making deposits and withdrawals is difficult.","1222544232":"We’ve sent you an email","1225150022":"Number of assets","1227074958":"random fraction","1227240509":"Trim spaces","1228534821":"Some currencies may not be supported by payment agents in your country.","1229883366":"Tax identification number","1230884443":"State/Province (optional)","1231282282":"Use only the following special characters: {{permitted_characters}}","1232291311":"Maximum withdrawal remaining","1232353969":"0-5 transactions in the past 12 months","1233300532":"Payout","1234292259":"Source of wealth","1234764730":"Upload a screenshot of your name and email address from the personal details section.","1235426525":"50%","1237330017":"Pensioner","1238311538":"Admin","1239760289":"Complete your trading assessment","1239940690":"Restarts the bot when an error is encountered.","1240027773":"Please Log in","1241238585":"You may transfer between your Deriv fiat, cryptocurrency, and {{platform_name_mt5}} accounts.","1243064300":"Local","1246207976":"Enter the authentication code generated by your 2FA app:","1246443703":"Financial Assessment","1246880072":"Select issuing country","1247280835":"Our cryptocurrency cashier is temporarily down due to system maintenance. You can make cryptocurrency deposits and withdrawals in a few minutes when the maintenance is complete.","1248018350":"Source of income","1248161058":"You can create your account on {{real_account_unblock_date}}. <0/>Please click ‘OK’ to continue.","1248940117":"<0>a.The decisions made by the DRC are binding on us. DRC decisions are binding on you only if you accept them.","1250495155":"Token copied!","1254565203":"set {{ variable }} to create list with","1255909792":"last","1255963623":"To date/time {{ input_timestamp }} {{ dummy }}","1258097139":"What could we do to improve?","1258198117":"positive","1259598687":"GBP/JPY","1260259925":"Phone is not in a proper format.","1263387702":"All {{count}} account types use market execution. This means you agree with the broker's price in advance and will place orders at the broker's price.","1264096613":"Search for a given string","1265704976":"","1270581106":"If you select \"No Touch\", you win the payout if the market never touches the barrier at any time during the contract period.","1272012156":"GBP/CHF","1272337240":"Days","1272681097":"Hours","1274819385":"3. Complaints and Disputes","1275474387":"Quick","1281045211":"Sorts the items in a given list, by their numeric or alphabetical value, in either ascending or descending order.","1281290230":"Select","1282951921":"Only Downs","1284522768":"If \"Loss\" is selected, it will return \"True\" if your last trade was unsuccessful. Otherwise, it will return an empty string.","1286094280":"Withdraw","1286507651":"Close identity verification screen","1288965214":"Passport","1289646209":"Margin call","1290525720":"Example: ","1291887623":"Digital options trading frequency","1292188546":"Reset Deriv MT5 investor password","1292891860":"Notify Telegram","1293660048":"Max. total loss per day","1294756261":"This block creates a function, which is a group of instructions that can be executed at any time. Place other blocks in here to perform any kind of action that you need in your strategy. When all the instructions in a function have been carried out, your bot will continue with the remaining blocks in your strategy. Click the “do something” field to give it a name of your choice. Click the plus icon to send a value (as a named variable) to your function.","1295284664":"Please accept our <0>updated Terms and Conditions to proceed.","1296380713":"Close my contract","1299479533":"8 hours","1300576911":"Please resubmit your proof of address or we may restrict your account.","1302691457":"Occupation","1303016265":"Yes","1303530014":"We’re processing your withdrawal.","1304083330":"copy","1304272843":"Please submit your proof of address.","1304620236":"Enable camera","1304788377":"<0/><1/>If your complaint relates to our data processing practices, you can submit a formal complaint to the <2>Information and Data Protection Commissioner (Malta) on their website or make a complaint to any supervisory authority within the European Union.","1305217290":"Upload the back of your identity card.","1308625834":"Sets the default time interval for blocks that read list of candles.","1309017029":"Enabling this allows you to save your blocks as one collection which can be easily integrated into other bots.","1309044871":"Returns the value of the latest tick in string format","1310483610":"Results for \"{{ search_term }}\"","1311680770":"payout","1311799109":"We do not support Binance Smart Chain tokens to deposit, please use only Ethereum ({{token}}).","1312767038":"Exit Trader's hub","1313167179":"Please log in","1313302450":"The bot will stop trading if your total loss exceeds this amount.","1316216284":"You can use this password for all your {{platform}} accounts.","1319217849":"Check your mobile","1320750775":"Front and back","1322804930":"Restart the process on the latest version of Google Chrome","1323327633":"Our complaints process comprises the following 4 steps:","1323476617":"Changes the capitalisation of a string of text to Upper case, Lower case, Title case.","1323996051":"Profile","1324110809":"Address information","1324922837":"2. The new variable will appear as a block under Set variable.","1327181172":"Financial Vanuatu","1327494533":"{{sell_value}} (Sell)","1329136554":"Jump 200 Index","1329325646":"The content of this block is called on every tick","1331199417":"Please enter the correct format. ","1331367811":"Client account number","1332168410":"Learn more","1332168769":"Disconnect","1333576137":"Please update your {{details}} to continue.","1333839457":"Submit identity card (front)","1334326985":"It may take a few minutes to arrive","1335967988":"Notice","1337846406":"This block gives you the selected candle value from a list of candles within the selected time interval.","1337864666":"Photo of your document","1338496204":"Ref. ID","1341840346":"View in Journal","1346204508":"Take profit","1346339408":"Managers","1347071802":"{{minutePast}}m ago","1348009461":"Please close your positions in the following Deriv X account(s):","1349133669":"Try changing your search criteria.","1349289354":"Great, that's everything we need","1349295677":"in text {{ input_text }} get substring from {{ position1 }} {{ index1 }} to {{ position2 }} {{ index2 }}","1351906264":"This feature is not available for payment agents.","1353197182":"Please select","1354288636":"Based on your answers, it looks like you have insufficient knowledge and experience in trading CFDs. CFD trading is risky and you could potentially lose all of your capital.<0/><0/>","1355250245":"{{ calculation }} of list {{ input_list }}","1356574493":"Returns a specific portion of a given string of text.","1356607862":"Deriv password","1357129681":"{{num_day}} days {{num_hour}} hours {{num_minute}} minutes","1357213116":"Identity card","1358543466":"Not available","1359424217":"You have sold this contract at <0 />","1360929368":"Add a Deriv account","1362578283":"High","1363060668":"Your trading statistics since:","1363675688":"Duration is a required field.","1364958515":"Stocks","1366244749":"Limits","1367023655":"To ensure your loss does not exceed your stake, your contract will be closed automatically when your loss equals to <0/>.","1367488817":"4. Restart trading conditions","1367990698":"Volatility 10 Index","1369709538":"Our terms of use","1371193412":"Cancel","1371555192":"Choose your preferred payment agent and enter your withdrawal amount. If your payment agent is not listed, <0>search for them using their account number.","1371641641":"Open the link on your mobile","1371911731":"Financial products in the EU are offered by {{legal_entity_name}}, licensed as a Category 3 Investment Services provider by the Malta Financial Services Authority (<0>Licence no. IS/70156).","1374627690":"Max. account balance","1376329801":"Last 60 days","1378419333":"Ether","1383017005":"You have switched accounts.","1384127719":"You should enter {{min}}-{{max}} numbers.","1384222389":"Please submit valid identity documents to unlock the cashier.","1385418910":"Please set a currency for your existing real account before creating another account.","1387503299":"Log in","1389197139":"Import error","1390792283":"Trade parameters","1391174838":"Potential payout:","1392966771":"Mrs","1392985917":"This is similar to a commonly used password","1393559748":"Invalid date/time: {{ datetime_string }}","1393901361":"There’s an app for that","1393903598":"if true {{ return_value }}","1396179592":"Commission","1396417530":"Bear Market Index","1397628594":"Insufficient funds","1399620764":"We're legally obliged to ask for your financial information.","1400341216":"We’ll review your documents and notify you of its status within 1 to 3 days.","1400637999":"(All fields are required)","1400732866":"View from camera","1400962248":"High-Close","1402208292":"Change text case","1403376207":"Update my details","1405584799":"with interval: {{ candle_interval_type }}","1408844944":"Click the plus icon to extend the functionality of this block.","1410320737":"Go to Deriv MT5 dashboard","1412535872":"You can check the result of the last trade with this block. It can only be placed within the \"Restart trading conditions\" root block.","1413047745":"Assigns a given value to a variable","1413359359":"Make a new transfer","1414205271":"prime","1415006332":"get sub-list from first","1415974522":"If you select \"Differs\", you will win the payout if the last digit of the last tick is not the same as your prediction.","1417558007":"Max. total loss over 7 days","1417914636":"Login ID","1418115525":"This block repeats instructions as long as a given condition is true.","1421749665":"Simple Moving Average (SMA)","1422060302":"This block replaces a specific item in a list with another given item. It can also insert the new item in the list at a specific position.","1422129582":"All details must be clear — nothing blurry","1423082412":"Last Digit","1424741507":"See more","1424779296":"If you've recently used bots but don't see them in this list, it may be because you:","1430396558":"5. Restart buy/sell on error","1430632931":"To get trading, please confirm who you are, and where you live.","1433367863":"Sorry, an error occured while processing your request.","1434382099":"Displays a dialog window with a message","1434976996":"Announcement","1435363248":"This block converts the number of seconds since the Unix Epoch to a date and time format such as 2019-08-01 00:00:00.","1435380105":"Minimum deposit","1437396005":"Add comment","1438247001":"A professional client receives a lower degree of client protection due to the following.","1438340491":"else","1439168633":"Stop loss:","1441208301":"Total<0 />profit/loss","1442747050":"Loss amount: <0>{{profit}}","1442840749":"Random integer","1443478428":"Selected proposal does not exist","1445592224":"You accidentally gave us another email address (Usually a work or a personal one instead of the one you meant).","1449462402":"In review","1452260922":"Too many failed attempts","1452941569":"This block delays execution for a given number of seconds. You can place any blocks within this block. The execution of other blocks in your strategy will be paused until the instructions in this block are carried out.","1453317405":"This block gives you the balance of your account either as a number or a string of text.","1453362009":"Deriv Accounts","1454648764":"deal reference id","1454865058":"Do not enter an address linked to an ICO purchase or crowdsale. If you do, the ICO tokens will not be credited into your account.","1455741083":"Upload the back of your driving licence.","1457341530":"Your proof of identity verification has failed","1457603571":"No notifications","1461323093":"Display messages in the developer’s console.","1464190305":"This block will transfer the control back to the Purchase conditions block, enabling you to purchase another contract without manually stopping and restarting your bot.","1464253511":"You already have an account for each of the cryptocurrencies available on {{deriv}}.","1465084972":"How much experience do you have with other financial instruments?","1465919899":"Pick an end date","1466430429":"Should be between {{min_value}} and {{max_value}}","1466900145":"Doe","1467017903":"This market is not yet available on {{platform_name_trader}}, but it is on {{platform_name_smarttrader}}.","1467421920":"with interval: %1","1467661678":"Cryptocurrency trading","1468308734":"This block repeats instructions as long as a given condition is true","1468419186":"Deriv currently supports withdrawals of Tether USDT to Omni wallet. To ensure a successful transaction, enter a wallet address compatible with the tokens you wish to withdraw. <0>Learn more","1468937050":"Trade on {{platform_name_trader}}","1469150826":"Take Profit","1469764234":"Cashier Error","1469814942":"- Division","1470319695":"Returns either True or False","1471070549":"Can contract be sold?","1471741480":"Severe error","1475513172":"Size","1476301886":"Similar to SMA, this block gives you the entire SMA line containing a list of all values for a given period.","1478030986":"Create or delete API tokens for trading and withdrawals","1481977420":"Please help us verify your withdrawal request.","1484336612":"This block is used to either terminate or continue a loop, and can be placed anywhere within a loop block.","1487086154":"Your documents were submitted successfully","1488548367":"Upload again","1490583127":"DBot isn't quite ready for real accounts","1491392301":"<0>Sold for: {{sold_for}}","1492686447":"Your MT5 Financial STP account will be opened through Deriv (FX) Ltd. All trading in this account is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA). None of your other accounts, including your Deriv account, is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA).","1493673429":"Change email","1493866481":"Run Deriv X on your browser","1496810530":"GBP/AUD","1497773819":"Deriv MT5 accounts","1499074768":"Add a real Deriv Multipliers account","1499080621":"Tried to perform an invalid operation.","1501691227":"Add Your Deriv MT5 <0>{{account_type_name}} account under Deriv (V) Ltd, regulated by the Vanuatu Financial Services Commission.","1502039206":"Over {{barrier}}","1502325741":"Your password cannot be the same as your email address.","1503618738":"- Deal reference ID: the reference ID of the contract","1505420815":"No payment agents found for your search","1505898522":"Download stack","1509570124":"{{buy_value}} (Buy)","1509678193":"Education","1510075920":"Gold/USD","1510357015":"Tax residence is required.","1510735345":"This block gives you a list of the last digits of the last 1000 tick values.","1512469749":"In the above example it is assumed that variable candle_open_price is processed somewhere within other blocks.","1516537408":"You can no longer trade on Deriv or deposit funds into your account.","1516559721":"Please select one file only","1516676261":"Deposit","1517503814":"Drop file or click here to upload","1519124277":"Derived SVG","1519336051":"Try a different phone number","1520332426":"Net annual income","1524636363":"Authentication failed","1527251898":"Unsuccessful","1527906715":"This block adds the given number to the selected variable.","1529440614":"Use the <0>Deriv password to log in to {{brand_website_name}}, {{platform_name_go}}, {{platform_name_trader}}, {{platform_name_smarttrader}}, and {{platform_name_dbot}}.","1531017969":"Creates a single text string from combining the text value of each attached item, without spaces in between. The number of items can be added accordingly.","1533177906":"Fall","1534569275":"As part of the changes in our markets, we will be closing our UK clients’ accounts.","1534796105":"Gets variable value","1537711064":"You need to make a quick identity verification before you can access the Cashier. Please go to your account settings to submit your proof of identity.","1539108340":"EUR Index","1540585098":"Decline","1541969455":"Both","1544642951":"If you select \"Only Ups\", you win the payout if consecutive ticks rise successively after the entry spot. No payout if any tick falls or is equal to any of the previous ticks.","1547148381":"That file is too big (only up to 8MB allowed). Please upload another file.","1548765374":"Verification of document number failed","1549098835":"Total withdrawn","1551172020":"AUD Basket","1552162519":"View onboarding","1552918367":"Send only {{currency}} ({{currency_symbol}}) to this address.","1557426040":"Demo Derived SVG","1557682012":"Account Settings","1558972889":"set {{ variable }} to Simple Moving Average {{ dummy }}","1560302445":"Copied","1562374116":"Students","1564392937":"When you set your limits or self-exclusion, they will be aggregated across all your account types in {{platform_name_trader}} and {{platform_name_dbot}}. For example, the losses made on both platforms will add up and be counted towards the loss limit you set.","1566037033":"Bought: {{longcode}} (ID: {{transaction_id}})","1567076540":"Only use an address for which you have proof of residence - ","1567586204":"Self-exclusion","1569624004":"Dismiss alert","1570484627":"Ticks list","1571575776":"Accepted formats: pdf, jpeg, jpg, and png. Max file size: 8MB","1572504270":"Rounding operation","1572982976":"Server","1575556189":"Tether on the Ethereum blockchain, as an ERC20 token, is a newer transport layer, which now makes Tether available in Ethereum smart contracts. As a standard ERC20 token, it can also be sent to any Ethereum address.","1577480486":"Your mobile link will expire in one hour","1577527507":"Account opening reason is required.","1577612026":"Select a folder","1579839386":"Appstore","1580498808":"Multiple faces found","1584109614":"Ticks String List","1584578483":"50+ assets: forex, stocks, stock indices, synthetics indices, and cryptocurrencies.","1584936297":"XML file contains unsupported elements. Please check or modify file.","1585859194":"We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts, your Deriv fiat and {{platform_name_derivez}} accounts, and your Deriv fiat and {{platform_name_dxtrade}} accounts.","1587046102":"Documents from that country are not currently supported — try another document type","1589640950":"Resale of this contract is not offered.","1589702653":"Proof of address","1591933071":"Resubmit document","1593010588":"Login now","1594147169":"Please come back in","1594322503":"Sell is available","1596378630":"You have added a real Gaming account.<0/>Make a deposit now to start trading.","1597672660":"Deriv MT5 Password","1598009247":"<0>a.You may file a complaint with the Financial Commission up to 45 days after the incident.","1598386296":"Town/City is required.","1598443642":"Transaction hash","1602894348":"Create a password","1604171868":"Please withdraw all your funds as soon as possible.","1604916224":"Absolute","1605222432":"I have no knowledge and experience in trading at all.","1605292429":"Max. total loss","1612105450":"Get substring","1613633732":"Interval should be between 10-60 minutes","1615897837":"Signal EMA Period {{ input_number }}","1618809782":"Maximum withdrawal","1619070150":"You are being redirected to an external website.","1620278321":"Names and surnames by themselves are easy to guess","1620346110":"Set currency","1621024661":"Tether as a TRC20 token (tUSDT) is a version of Tether that is hosted on Tron.","1622662457":"Date from","1623706874":"Use this block when you want to use multipliers as your trade type.","1630372516":"Try our Fiat onramp","1630417358":"Please go to your account settings and complete your personal details to enable withdrawals.","1631281562":"GBP Basket","1634594289":"Select language","1634903642":"Only your face can be in the selfie","1634969163":"Change currency","1635266650":"It seems that your name in the document is not the same as your Deriv profile. Please update your name in the <0>Personal details page to solve this issue.","1636605481":"Platform settings","1636782601":"Multipliers","1638321777":"Your demo account balance is low. Reset your balance to continue trading from your demo account.","1639262461":"Pending withdrawal request:","1639304182":"Please click on the link in the email to reset your password.","1641395634":"Last digits list","1641635657":"New proof of identity document needed","1641980662":"Salutation is required.","1644908559":"Digit code is required.","1647186767":"The bot encountered an error while running.","1651513020":"Display remaining time for each interval","1651951220":"Repeats like \"abcabcabc\" are only slightly harder to guess than \"abc\"","1652366857":"get and remove","1652968048":"Define your trade options such as multiplier and stake.","1652976865":"In this example, this block is used with another block to get the open prices from a list of candles. The open prices are then assigned to the variable called \"cl\".","1653136377":"copied!","1653180917":"We cannot verify you without using your camera","1654365787":"Unknown","1654496508":"Our system will finish any DBot trades that are running, and DBot will not place any new trades.","1654721858":"Upload anyway","1655627840":"UPPER CASE","1656155124":"Resend in <0 /> seconds","1658954996":"Plant and Machine Operators and Assemblers","1659074761":"Reset Put","1665272539":"Remember: You cannot log in to your account until the selected date.","1665738338":"Balance","1665756261":"Go to live chat","1668138872":"Modify account settings","1670016002":"Multiplier: {{ multiplier }}","1670426231":"End Time","1671232191":"You have set the following limits:","1675030608":"To create this account first we need you to resubmit your proof of address.","1677027187":"Forex","1677990284":"My apps","1680666439":"Upload your bank statement showing your name, account number, and transaction history.","1682409128":"Untitled Strategy","1682636566":"Resend email in","1683963454":"Your contract will be closed automatically at the next available asset price on {{date}} at {{timestamp}}.","1684148009":"Total assets in your Deriv and {{platform_name_mt5}} real accounts.","1684419981":"What's this?","1686800117":"{{error_msg}}","1689103988":"Second Since Epoch","1689258195":"We were unable to verify your address with the details you provided. Please check and resubmit or choose a different document type.","1689738742":"Gold Index","1691335819":"To continue trading with us, please confirm who you are.","1691765860":"- Negation","1693614409":"Start time","1694331708":"You can switch between CFDs, digital options, and multipliers at any time.","1694517345":"Enter a new email address","1695807119":"Could not load Google Drive blocks","1700233813":"Transfer from {{selected_value}} is not allowed, Please choose another account from dropdown","1701447705":"Please update your address","1704656659":"How much experience do you have in CFD trading?","1708413635":"For your {{currency_name}} ({{currency}}) account","1709859601":"Exit Spot Time","1710662619":"If you have the app, launch it to start trading.","1711013665":"Anticipated account turnover","1711676335":"square root","1711929663":"Your funds have been transferred","1712357617":"Invalid email address.","1714255392":"To enable withdrawals, please complete your financial assessment.","1715011380":"Jump 25 Index","1715630945":"Returns the total profit in string format","1719248689":"EUR/GBP/USD","1720451994":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv fiat and Deriv cryptocurrency accounts.","1720968545":"Upload passport photo page from your computer","1722401148":"The amount that you may add to your stake after each successful trade.","1723398114":"A recent utility bill (e.g. electricity, water, gas, phone or internet)","1723589564":"Represents the maximum number of outstanding contracts in your portfolio. Each line in your portfolio counts for one open position. Once the maximum is reached, you will not be able to open new positions without closing an existing position first.","1724696797":"You are limited to one fiat account only.","1725958461":"Account number","1726472773":"Function with no return value","1726565314":"Close my account","1727681395":"Total assets in your Deriv and {{platform_name_mt5}} demo accounts.","1728121741":"Transactions.csv","1728183781":"About Tether","1729145421":"Risk warning","1731747596":"The block(s) highlighted in red are missing input values. Please update them and click \"Run bot\".","1732891201":"Sell price","1734185104":"Balance: %1","1734264460":"Disclaimer","1736292549":"Update postal code","1737352280":"Bot.init is not called","1738681493":"Remove your glasses, if necessary","1739384082":"Unemployed","1739668049":"Close your account","1740371444":"Underlying market is not selected","1740843997":"Buy cryptocurrencies in an instant. Enjoy easy, quick, and secure exchanges using your local payment methods.","1742256256":"Please upload one of the following documents:","1743448290":"Payment agents","1743902050":"Complete your financial assessment","1745523557":"- Square root","1746051371":"Download the app","1746273643":"Moving Average Convergence Divergence","1747501260":"Sell conditions","1747523625":"Go back","1747674345":"Please use `.` as a decimal separator for fractional numbers.","1747682136":"Contract was cancelled.","1748754976":"Run","1749675724":"Deriv charges no commission across all account types.","1750065391":"Login time:","1753226544":"remove","1753975551":"Upload passport photo page","1756678453":"break out","1758386013":"Do not get lured to fake \"Deriv\" pages!","1761038852":"Let’s continue with providing proofs of address and identity.","1761762171":"Restart last trade on error (bot ignores the unsuccessful trade): {{ checkbox }}","1762707297":"Phone number","1763123662":"Upload your NIMC slip.","1766212789":"Server maintenance starts at 06:00 GMT every Sunday and may last up to 2 hours. You may experience service disruption during this time.","1766993323":"Only letters, numbers, and underscores are allowed.","1767429330":"Add a Derived account","1768861315":"Minute","1768918213":"Only letters, space, hyphen, period, and apostrophe are allowed.","1769068935":"Choose any of these exchanges to buy cryptocurrencies:","1771037549":"Add a Deriv real account","1771592738":"Conditional block","1772532756":"Create and edit","1777847421":"This is a very common password","1778893716":"Click here","1779519903":"Should be a valid number.","1780770384":"This block gives you a random fraction between 0.0 to 1.0.","1781393492":"We do not charge a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts, your Deriv fiat and {{platform_name_derivez}} accounts and your Deriv fiat and {{platform_name_dxtrade}} accounts.","1782308283":"Quick strategy","1782395995":"Last Digit Prediction","1782690282":"Blocks menu","1782703044":"Sign up","1783740125":"Upload your selfie","1787135187":"Postal/ZIP code is required","1787492950":"Indicators on the chart tab are for indicative purposes only and may vary slightly from the ones on the {{platform_name_dbot}} workspace.","1788966083":"01-07-1999","1789497185":"Make sure your passport details are clear to read, with no blur or glare","1790770969":"FX-majors (standard/micro lots), FX-minors, Commodities, Cryptocurrencies","1791017883":"Check out this <0>user guide.","1791432284":"Search for country","1791971912":"Recent","1793913365":"To deposit money, please switch to your {{currency_symbol}} account.","1794815502":"Download your transaction history.","1796787905":"Please upload the following document(s).","1798943788":"You can only make deposits.","1801093206":"Get candle list","1801927731":"{{platform_name_dxtrade}} accounts","1803338729":"Choose what type of contract you want to trade. For example, for the Rise/Fall trade type you can choose one of three options: Rise, Fall, or Both. Selected option will determine available options for the Purchase block.","1804620701":"Expiration","1804789128":"{{display_value}} Ticks","1806355993":"No commission","1806503050":"Please note that some payment methods might not be available in your country.","1808058682":"Blocks are loaded successfully","1808393236":"Login","1808867555":"This block uses the variable “i” to control the iterations. With each iteration, the value of “i” is determined by the items in a given list.","1810217569":"Please refresh this page to continue.","1811109068":"Jurisdiction","1811972349":"Market","1811973475":"Returns a specific character from a given string","1812582011":"Connecting to server","1813700208":"Boom 300 Index","1813958354":"Remove comment","1815034361":"alphabetic","1815995250":"Buying contract","1816126006":"Trade on Deriv MT5 ({{platform_name_dmt5}}), the all-in-one FX and CFD trading platform.","1817154864":"This block gives you a random number from within a set range.","1820242322":"e.g. United States","1820332333":"Top up","1823177196":"Most popular","1824193700":"This block gives you the last digit of the latest tick value.","1827607208":"File not uploaded.","1828370654":"Onboarding","1830520348":"{{platform_name_dxtrade}} Password","1833481689":"Unlock","1833499833":"Proof of identity documents upload failed","1836767074":"Search payment agent name","1837762008":"Please submit your proof of identity and proof of address to verify your account in your account settings to access the cashier.","1838639373":"Resources","1839021527":"Please enter a valid account number. Example: CR123456789","1840865068":"set {{ variable }} to Simple Moving Average Array {{ dummy }}","1841788070":"Palladium/USD","1841996888":"Daily loss limit","1842266423":"back","1842862156":"Welcome to your Deriv X dashboard","1843658716":"If you select \"Only Downs\", you win the payout if consecutive ticks fall successively after the entry spot. No payout if any tick rises or is equal to any of the previous ticks.","1845892898":"(min: {{min_stake}} - max: {{max_payout}})","1846266243":"This feature is not available for demo accounts.","1846587187":"You have not selected your country of residence","1846664364":"{{platform_name_dxtrade}}","1849484058":"Any unsaved changes will be lost.","1850031313":"- Low: the lowest price","1850132581":"Country not found","1850659345":"- Payout: the payout of the contract","1850663784":"Submit proofs","1851052337":"Place of birth is required.","1851776924":"upper","1851951013":"Please switch to your demo account to run your DBot.","1854480511":"Cashier is locked","1854874899":"Back to list","1855566768":"List item position","1856485118":"Please <0>resubmit your proof of address to transfer funds between MT5 and Deriv accounts.","1858251701":"minute","1859308030":"Give feedback","1863053247":"Please upload your identity document.","1863731653":"To receive your funds, contact the payment agent","1866811212":"Deposit in your local currency via an authorised, independent payment agent in your country.","1866836018":"<0/><1/>If your complaint relates to our data processing practices, you can submit a formal complaint to your local supervisory authority.","1867217564":"Index must be a positive integer","1867783237":"High-to-Close","1869315006":"See how we protect your funds to unlock the cashier.","1869787212":"Even","1870933427":"Crypto","1871196637":"True if the result of the last trade matches the selection","1871664426":"Note","1871804604":"Regulated by the British Virgin Islands Financial Services Commission (License no. SIBA/L/18/1114)","1873838570":"Please verify your address","1874481756":"Use this block to purchase the specific contract you want. You may add multiple Purchase blocks together with conditional blocks to define your purchase conditions. This block can only be used within the Purchase conditions block.","1874756442":"BVI","1876325183":"Minutes","1877225775":"Your proof of address is verified","1877410120":"What you need to do now","1877832150":"# from end","1879042430":"Appropriateness Test, WARNING:","1879412976":"Profit amount: <0>{{profit}}","1880029566":"Australian Dollar","1880097605":"prompt for {{ string_or_number }} with message {{ input_text }}","1880875522":"Create \"get %1\"","1881018702":"hour","1881587673":"Total stake since you last cleared your stats.","1882825238":"Restart trading conditions","1883531976":"Clerks","1885708031":"#","1887852176":"Site is being updated","1889357660":"Enter a value in minutes, up to 60480 minutes (equivalent to 6 weeks).","1890171328":"By clicking Accept below and proceeding with the Account Opening you should note that you may be exposing yourself to risks (which may be significant, including the risk of loss of the entire sum invested) that you may not have the knowledge and experience to properly assess or mitigate.","1890332321":"Returns the number of characters of a given string of text, including numbers, spaces, punctuation marks, and symbols.","1894667135":"Please verify your proof of address","1898670234":"{{formatted_opening_time}} (GMT) on {{opening_day}},<0> {{opening_date}}.","1902547203":"MetaTrader 5 MacOS app","1903437648":"Blurry photo detected","1905032541":"We're now ready to verify your identity","1905589481":"If you want to change your account currency, please contact us via <0>live chat.","1906639368":"If this is the first time you try to create a password, or you have forgotten your password, please reset it.","1907884620":"Add a real Deriv Gaming account","1908239019":"Make sure all of the document is in the photo","1908686066":"Appropriateness Test Warning","1909647105":"TRX/USD","1909769048":"median","1913777654":"Switch account","1914014145":"Today","1914270645":"Default Candle Interval: {{ candle_interval_type }}","1914725623":"Upload the page that contains your photo.","1917523456":"This block sends a message to a Telegram channel. You will need to create your own Telegram bot to use this block.","1917804780":"You will lose access to your Options account when it gets closed, so be sure to withdraw all your funds. (If you have a CFDs account, you can also transfer the funds from your Options account to your CFDs account.)","1918633767":"Second line of address is not in a proper format.","1918796823":"Please enter a stop loss amount.","1918832194":"No experience","1919030163":"Tips to take a good selfie","1919594496":"{{website_name}} is not affiliated with any payment agents. Customers deal with payment agents at their sole risk. Customers are advised to check the credentials of payment agents and the accuracy of any information about payment agents (on {{website_name}} or elsewhere) before using their services.","1919694313":"To start trading, transfer funds from your Deriv account into this account.","1920217537":"Compare","1920468180":"How to use the SMA block","1921634159":"A few personal details","1921914669":"Deposit with Deriv P2P","1922529883":"Boom 1000 Index","1922955556":"Use a longer keyboard pattern with more turns","1923431535":"“Stop loss” is deactivated and will only be available when “Deal cancellation” expires.","1924365090":"Maybe later","1924765698":"Place of birth*","1925090823":"Sorry, trading is unavailable in {{clients_country}}.","1927244779":"Use only the following special characters: . , ' : ; ( ) @ # / -","1928930389":"GBP/NOK","1929309951":"Employment Status","1929694162":"Compare accounts","1930899934":"Tether","1931659123":"Run on every tick","1931884033":"It seems that your date of birth in the document is not the same as your Deriv profile. Please update your date of birth in the <0>Personal details page to solve this issue.","1939902659":"Signal","1940408545":"Delete this token","1941915555":"Try later","1942091675":"Cryptocurrency trading is not available for clients residing in the United Kingdom.","1943440862":"Calculates Bollinger Bands (BB) list from a list with a period","1944204227":"This block returns current account balance.","1947527527":"1. This link was sent by you","1948092185":"GBP/CAD","1949719666":"Here are the possible reasons:","1950413928":"Submit identity documents","1952580688":"Submit passport photo page","1955219734":"Town/City*","1957759876":"Upload identity document","1958807602":"4. 'Table' takes an array of data, such as a list of candles, and displays it in a table format.","1959678342":"Highs & Lows","1960240336":"first letter","1964097111":"USD","1964165648":"Connection lost","1965916759":"Asian options settle by comparing the last tick with the average spot over the period.","1966023998":"2FA enabled","1966281100":"Console {{ message_type }} value: {{ input_message }}","1968025770":"Bitcoin Cash","1968077724":"Agriculture","1968368585":"Employment status","1971898712":"Add or manage account","1973536221":"You have no open positions yet.","1973564194":"You are limited to one fiat account. You won’t be able to change your account currency if you have already made your first deposit or created a real {{dmt5_label}} or {{platform_name_dxtrade}} account.","1974273865":"This scope will allow third-party apps to view your account activity, settings, limits, balance sheets, trade purchase history, and more.","1981940238":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}} and {{legal_entity_name_v}}.","1982912252":"Relative Strength Index (RSI) from a list with a period","1983001416":"Define your trade options such as multiplier and stake. This block can only be used with the multipliers trade type. If you select another trade type, this block will be replaced with the Trade options block.","1983387308":"Preview","1983544897":"P.O. Box is not accepted in address","1983676099":"Please check your email for details.","1984700244":"Request an input","1984742793":"Uploading documents","1985366224":"Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts and up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts.","1985637974":"Any blocks placed within this block will be executed at every tick. If the default candle interval is set to 1 minute in the Trade Parameters root block, the instructions in this block will be executed once every minute. Place this block outside of any root block.","1986498784":"BTC/LTC","1987080350":"Demo","1987447369":"Your cashier is locked","1988153223":"Email address","1988302483":"Take profit:","1988601220":"Duration value","1990331072":"Proof of ownership","1990735316":"Rise Equals","1991448657":"Don't know your tax identification number? Click <0>here to learn more.","1991524207":"Jump 100 Index","1994023526":"The email address you entered had a mistake or typo (happens to the best of us).","1994558521":"The platforms aren’t user-friendly.","1994600896":"This block requires a list of candles as an input parameter.","1995023783":"First line of address*","1996767628":"Please confirm your tax information.","1997138507":"If the last tick is equal to the average of the ticks, you don't win the payout.","1998199587":"You can also exclude yourself entirely for a specified duration. If, at any time, you decide to trade again, you must then contact our Customer Support to remove this self-exclusion. There will be a 24-hour-cooling-off period before you can resume trading. ","2001222130":"Check your spam or junk folder. If it's not there, try resending the email.","2004395123":"New trading tools for MT5","2004792696":"If you are a UK resident, to self-exclude from all online gambling companies licensed in Great Britain, go to <0>www.gamstop.co.uk.","2007028410":"market, trade type, contract type","2007092908":"Trade with leverage and low spreads for better returns on successful trades.","2008809853":"Please proceed to withdraw your funds before 30 November 2021.","2009620100":"DBot will not proceed with any new trades. Any ongoing trades will be completed by our system. Any unsaved changes will be lost.<0>Note: Please check your statement to view completed transactions.","2009770416":"Address:","2010759971":"Uploads successful","2010866561":"Returns the total profit/loss","2011609940":"Please input number greater than 0","2011808755":"Purchase Time","2014536501":"Card number","2014590669":"Variable '{{variable_name}}' has no value. Please set a value for variable '{{variable_name}}' to notify.","2017672013":"Please select the country of document issuance.","2020545256":"Close your account?","2021037737":"Please update your details to continue.","2023659183":"Student","2023762268":"I prefer another trading website.","2025339348":"Move away from direct light — no glare","2027625329":"Simple Moving Average Array (SMAA)","2027696535":"Tax information","2028163119":"EOS/USD","2029237955":"Labuan","2030018735":"RSI is a technical analysis tool that helps you identify the market trend. It will give you a value from 0 to 100. An RSI value of 70 and above means that the asset is overbought and the current trend may reverse, while a value of 30 and below means that the asset is oversold.","2030045667":"Message","2033648953":"This block gives you the specified candle value for a selected time interval.","2034803607":"You must be 18 years old and above.","2035258293":"Start trading with us","2035925727":"sort {{ sort_type }} {{ sort_direction }} {{ input_list }}","2036578466":"Should be {{value}}","2037481040":"Choose a way to fund your account","2037665157":"Expand All Blocks","2037906477":"get sub-list from #","2042023623":"We’re reviewing your documents. This should take about 5 minutes.","2042050260":"- Purchase price: the purchase price (stake) of the contract","2042115724":"Upload a screenshot of your account and personal details page with your name, account number, phone number, and email address.","2042778835":"This complaints policy, which may change from time to time, applies to your account registered with {{legal_entity_name}}.","2044086432":"The close is the latest tick at or before the end time. If you selected a specific end time, the end time is the selected time.","2046273837":"Last tick","2048110615":"Email address*","2048134463":"File size exceeded.","2050080992":"Tron","2050170533":"Tick list","2051558666":"View transaction history","2053617863":"Please proceed to withdraw all your funds from your account.","2054889300":"Create \"%1\"","2055317803":"Copy the link to your mobile browser","2057082550":"Accept our updated <0>terms and conditions","2057419639":"Exit Spot","2060873863":"Your order {{order_id}} is complete","2062912059":"function {{ function_name }} {{ function_params }}","2063655921":"By purchasing the \"Close-to-Low\" contract, you'll win the multiplier times the difference between the close and low over the duration of the contract.","2063812316":"Text Statement","2063890788":"Cancelled","2065278286":"Spread","2067903936":"Driving licence","2070002739":"Don’t accept","2070752475":"Regulatory Information","2071043849":"Browse","2074235904":"Last name is required.","2074497711":"The Telegram notification could not be sent","2080553498":"3. Get the chat ID using the Telegram REST API (read more: https://core.telegram.org/bots/api#getupdates)","2080829530":"Sold for: {{sold_for}}","2082533832":"Yes, delete","2084693624":"Converts a string representing a date/time string into seconds since Epoch. Example: 2019-01-01 21:03:45 GMT+0800 will be converted to 1546347825. Time and time zone offset are optional.","2084925123":"Use our fiat onramp services to buy and deposit cryptocurrency into your Deriv account.","2085387371":"Must be numbers, letters, and special characters . , ' -","2085602195":"- Entry value: the value of the first tick of the contract","2086742952":"You have added a real Options account.<0/>Make a deposit now to start trading.","2086792088":"Both barriers should be relative or absolute","2088735355":"Your session and login limits","2089087110":"Basket indices","2089299875":"Total assets in your Deriv real accounts.","2089581483":"Expires on","2091671594":"Status","2093167705":"You can only make deposits. Please contact us via live chat for more information.","2093675079":"- Close: the closing price","2096014107":"Apply","2096456845":"Date of birth*","2097170986":"About Tether (Omni)","2097381850":"Calculates Simple Moving Average line from a list with a period","2097932389":"Upload 2 separate screenshots from the personal details page and the account page via <0>https://app.astropay.com/profile","2100713124":"account","2101972779":"This is the same as the above example, using a tick list.","2102572780":"Length of digit code must be 6 characters.","2104115663":"Last login","2104397115":"Please go to your account settings and complete your personal details to enable deposits and withdrawals.","2107381257":"Scheduled cashier system maintenance","2109312805":"The spread is the difference between the buy price and sell price. A variable spread means that the spread is constantly changing, depending on market conditions. A fixed spread remains constant but is subject to alteration, at the Broker's absolute discretion.","2110365168":"Maximum number of trades reached","2111015970":"This block helps you check if your contract can be sold. If your contract can be sold, it returns “True”. Otherwise, it returns an empty string.","2111528352":"Creating a variable","2112119013":"Take a selfie showing your face","2112175277":"with delimiter","2113321581":"Add a Deriv Gaming account","2115007481":"Total assets in your Deriv demo accounts.","2115223095":"Loss","2117073379":"Our cryptocurrency cashier is temporarily down due to system maintenance. You can access the Cashier in a few minutes when the maintenance is complete.","2117165122":"1. Create a Telegram bot and get your Telegram API token. Read more on how to create bots in Telegram here: https://core.telegram.org/bots#6-botfather","2117489390":"Auto update in {{ remaining }} seconds","2118315870":"Where do you live?","2119449126":"Example output of the below example will be:","2120617758":"Set up your trade","2121227568":"NEO/USD","2127564856":"Withdrawals are locked","2131963005":"Please withdraw your funds from the following Deriv MT5 account(s):","2133451414":"Duration","2133470627":"This block returns the potential payout for the selected trade type. This block can be used only in the \"Purchase conditions\" root block.","2135563258":"Forex trading frequency","2136246996":"Selfie uploaded","2137901996":"This will clear all data in the summary, transactions, and journal panels. All counters will be reset to zero.","2137993569":"This block compares two values and is used to build a conditional structure.","2138861911":"Scans and photocopies are not accepted","2139171480":"Reset Up/Reset Down","2139362660":"left side","2141055709":"New {{type}} password","2141873796":"Get more info on <0>CFDs, <1>multipliers, and <2>options.","2143803283":"Purchase Error","2144609616":"If you select \"Reset-Down”, you win the payout if the exit spot is strictly lower than either the entry spot or the spot at reset time.","2145690912":"Income Earning","2145995536":"Create new account","2146336100":"in text %1 get %2","2146892766":"Binary options trading experience","-153346659":"Upload your selfie.","-602131304":"Passport number","-1051213440":"Upload the front and back of your identity card.","-1600807543":"First, enter your identity card number and the expiry date.","-1139923664":"Next, upload the front and back of your identity card.","-783705755":"Upload the front of your identity card.","-566750665":"NIMC slip and proof of age","-1465944279":"NIMC slip number","-429612996":"Next, upload both of the following documents.","-376981174":"Upload your proof of age: birth certificate or age declaration document.","-612174191":"First line of address is required","-242734402":"Only {{max}} characters, please.","-378415317":"State is required","-1784470716":"State is not in a proper format","-1699820408":"Please enter a {{field_name}} under {{max_number}} characters.","-1575567374":"postal/ZIP code","-1497654315":"Our accounts and services are unavailable for the Jersey postal code.","-755626951":"Complete your address details","-1024240099":"Address","-584911871":"Select wallet currency","-1461267236":"Please choose your currency","-1352330125":"CURRENCY","-1027595143":"Less than $25,000","-40491332":"$25,000 - $50,000","-1139806939":"$50,001 - $100,000","-626752657":"0-1 year","-532014689":"1-2 years","-1001024004":"Over 3 years","-790513277":"6-10 transactions in the past 12 months","-580085300":"11-39 transactions in the past 12 months","-654781670":"Primary","-1717373258":"Secondary","-996132458":"Construction","-915003867":"Health","-1430012453":"Information & Communications Technology","-987824916":"Science & Engineering","-146630682":"Social & Cultural","-761306973":"Manufacturing","-739367071":"Employed","-1156937070":"$500,001 - $1,000,000","-315534569":"Over $1,000,000","-2068544539":"Salaried Employee","-531314998":"Investments & Dividends","-1235114522":"Pension","-1298056749":"State Benefits","-449943381":"Savings & Inheritance","-1631552645":"Professionals","-474864470":"Personal Care, Sales and Service Workers","-1129355784":"Agricultural, Forestry and Fishery Workers","-1242914994":"Craft, Metal, Electrical and Electronics Workers","-1317824715":"Cleaners and Helpers","-1592729751":"Mining, Construction, Manufacturing and Transport Workers","-2137323480":"Company Ownership","-1590574533":"Divorce Settlement","-1667683002":"Inheritance","-1237843731":"Investment Income","-777506574":"Sale of Property","-1161338910":"First name is required.","-1161818065":"Last name should be between 2 and 50 characters.","-1281693513":"Date of birth is required.","-26599672":"Citizenship is required","-912174487":"Phone is required.","-673765468":"Letters, numbers, spaces, periods, hyphens and forward slashes only.","-1356204661":"This Tax Identification Number (TIN) is invalid. You may continue with account creation, but to facilitate future payment processes, valid tax information will be required.","-1823540512":"Personal details","-1227878799":"Speculative","-1174064217":"Mr","-855506127":"Ms","-621555159":"Identity information","-204765990":"Terms of use","-231863107":"No","-870902742":"How much knowledge and experience do you have in relation to online trading?","-1929477717":"I have an academic degree, professional certification, and/or work experience related to financial services.","-1540148863":"I have attended seminars, training, and/or workshops related to trading.","-922751756":"Less than a year","-542986255":"None","-1337206552":"In your understanding, CFD trading allows you to","-456863190":"Place a position on the price movement of an asset where the outcome is a fixed return or nothing at all.","-1314683258":"Make a long-term investment for a guaranteed profit.","-1546090184":"How does leverage affect CFD trading?","-1636427115":"Leverage helps to mitigate risk.","-800221491":"Leverage guarantees profits.","-811839563":"Leverage lets you open large positions for a fraction of trade value, which may result in increased profit or loss.","-1185193552":"Close your trade automatically when the loss is equal to or more than a specified amount, as long as there is adequate market liquidity.","-1046354":"Close your trade automatically when the profit is equal to or more than a specified amount, as long as there is adequate market liquidity.","-1842858448":"Make a guaranteed profit on your trade.","-659266366":"When opening a leveraged CFD trade","-1078152772":"When trading multipliers","-1507432523":"When buying shares of a company","-1847406474":"All of the above","-931052769":"Submit verification","-1004605898":"Tips","-1938142055":"Documents uploaded","-448090287":"The link only works on mobile devices","-1244287721":"Something's gone wrong","-241258681":"You'll need to restart your verification on your computer","-929254273":"Get secure link","-2021867851":"Check back here to finish the submission","-1547069149":"Open the link and complete the tasks","-1767652006":"Here's how to do it:","-277611959":"You can now return to your computer to continue","-724178625":"Make sure full document is visible","-1519380038":"Glare detected","-1895280620":"Make sure your card details are clear to read, with no blur or glare","-1464447919":"Make sure your permit details are clear to read, with no blur or glare","-1436160506":"Make sure details are clear to read, with no blur or glare","-759124288":"Close","-759118956":"Redo","-753375398":"Enlarge image","-1042933881":"Driver's license","-1503134764":"Face photo page","-1335343167":"Sorry, no mobile phone bills","-699045522":"Documents you can use to verify your identity","-543666102":"It must be an official photo ID","-903877217":"These are the documents most likely to show your current home address","-1356835948":"Choose document","-1364375936":"Select a %{country} document","-401586196":"or upload photo – no scans or photocopies","-3110517":"Take a photo with your phone","-2033894027":"Submit identity card (back)","-20684738":"Submit license (back)","-1359585500":"Submit license (front)","-106779602":"Submit residence permit (back)","-1287247476":"Submit residence permit (front)","-1954762444":"Restart the process on the latest version of Safari","-261174676":"Must be under 10MB.","-685885589":"An error occurred while loading the component","-502539866":"Your face is needed in the selfie","-1377968356":"Please try again","-1226547734":"Try using a JPG or PNG file","-849068301":"Loading...","-1730346712":"Loading","-1849371752":"Check that your number is correct","-309848900":"Copy","-1424436001":"Send link","-1093833557":"How to scan a QR code","-1408210605":"Point your phone’s camera at the QR code","-1773802163":"If it doesn’t work, download a QR code scanner from Google Play or the App Store","-109026565":"Scan QR code","-1644436882":"Get link via SMS","-1667839246":"Enter mobile number","-1533172567":"Enter your mobile number:","-1352094380":"Send this one-time link to your phone","-28974899":"Get your secure link","-359315319":"Continue","-1279080293":"2. Your desktop window stays open","-102776692":"Continue with the verification","-89152891":"Take a photo of the back of your card","-1646367396":"Take a photo of the front of your card","-1350855047":"Take a photo of the front of your license","-2119367889":"Take a photo using the basic camera mode instead","-342915396":"Take a photo","-419040068":"Passport photo page","-1354983065":"Refresh","-1925063334":"Recover camera access to continue face verification","-54784207":"Camera access is denied","-1392699864":"Allow camera access","-269477401":"Provide the whole document page for best results","-864639753":"Upload back of card from your computer","-1309771027":"Upload front of license from your computer","-1722060225":"Take photo","-565732905":"Selfie","-1703181240":"Check that it is connected and functional. You can also continue verification on your phone","-2043114239":"Camera not working?","-2029238500":"It may be disconnected. Try using your phone instead.","-468928206":"Make sure your device's camera works","-466246199":"Camera not working","-698978129":"Remember to press stop when you're done. Redo video actions","-538456609":"Looks like you took too long","-781816433":"Photo of your face","-1471336265":"Make sure your selfie clearly shows your face","-1375068556":"Check selfie","-1914530170":"Face forward and make sure your eyes are clearly visible","-776541617":"We'll compare it with your document","-478752991":"Your link will expire in one hour","-1859729380":"Keep this window open while using your mobile","-1283761937":"Resend link","-629011256":"Don't refresh this page","-1005231905":"Once you've finished we'll take you to the next step","-542134805":"Upload photo","-1462975230":"Document example","-1472844935":"The photo should clearly show your document","-189310067":"Account closed","-849320995":"Assessments","-773766766":"Email and passwords","-1466827732":"Self exclusion","-1498206510":"Account limits","-241588481":"Login history","-966136867":"Connected apps","-213009361":"Two-factor authentication","-1214803297":"Dashboard-only path","-526636259":"Error 404","-1030759620":"Government Officers","-1196936955":"Upload a screenshot of your name and email address from the personal information section.","-1286823855":"Upload your mobile bill statement showing your name and phone number.","-1309548471":"Upload your bank statement showing your name and account details.","-1410396115":"Upload a photo showing your name and the first six and last four digits of your card number. If the card does not display your name, upload the bank statement showing your name and card number in the transaction history.","-3805155":"Upload a screenshot of either of the following to process the transaction:","-1523487566":"- your account profile section on the website","-613062596":"- the Account Information page on the app","-1718304498":"User ID","-609424336":"Upload a screenshot of your name, account number, and email address from the personal details section of the app or profile section of your account on the website.","-1954436643":"Upload a screenshot of your username on the General Information page at <0>https://onlinenaira.com/members/index.htm","-79853954":"Upload a screenshot of your account number and phone number on the Bank Account/Mobile wallet page at <0>https://onlinenaira.com/members/bank.htm","-1192882870":"Upload a screenshot of your name and account number from the personal details section.","-612752984":"These are default limits that we apply to your accounts.","-1598263601":"To learn more about trading limits and how they apply, please go to the <0>Help Centre.","-1340125291":"Done","-1786659798":"Trading limits - Item","-1101543580":"Limit","-858297154":"Represents the maximum amount of cash that you may hold in your account. If the maximum is reached, you will be asked to withdraw funds.","-976258774":"Not set","-1182362640":"Represents the maximum aggregate payouts on outstanding contracts in your portfolio. If the maximum is attained, you may not purchase additional contracts without first closing out existing positions.","-1781293089":"Maximum aggregate payouts on open positions","-1412690135":"*Any limits in your Self-exclusion settings will override these default limits.","-1598751496":"Represents the maximum volume of contracts that you may purchase in any given trading day.","-1359847094":"Trading limits - Maximum daily turnover","-1502578110":"Your account is fully authenticated and your withdrawal limits have been lifted.","-138380129":"Total withdrawal allowed","-854023608":"To increase limit please verify your identity","-1500958859":"Verify","-1662154767":"a recent utility bill (e.g. electricity, water, gas, landline, or internet), bank statement, or government-issued letter with your name and this address.","-190838815":"We need this for verification. If the information you provide is fake or inaccurate, you won’t be able to deposit and withdraw.","-223216785":"Second line of address*","-594456225":"Second line of address","-1315410953":"State/Province","-1940457555":"Postal/ZIP Code*","-1964954030":"Postal/ZIP Code","-1541554430":"Next","-71696502":"Previous","-1437206131":"JPEG JPG PNG PDF GIF","-820458471":"1 - 6 months old","-155705811":"A clear colour photo or scanned image","-587941902":"Issued under your name with your current address","-438669274":"JPEG JPG PNG PDF GIF","-723198394":"File size should be 8MB or less","-1948369500":"File uploaded is not supported","-1040865880":"Drop files here..","-1437017790":"Financial information","-39038029":"Trading experience","-1416797980":"Please enter your {{ field_name }} as in your official identity documents.","-1466268810":"Please remember that it is your responsibility to keep your answers accurate and up to date. You can update your personal details at any time in your <0>account settings.","-32386760":"Name","-1120954663":"First name*","-1659980292":"First name","-766265812":"first name","-1857534296":"John","-1282749116":"last name","-1485480657":"Other details","-1784741577":"date of birth","-1315571766":"Place of birth","-2040322967":"Citizenship","-1692219415":"Tax residence","-1903720068":"The country in which you meet the criteria for paying taxes. Usually the country in which you physically reside.","-651516152":"Tax Identification Number","-1543016582":"I hereby confirm that the tax information I provided is true and complete. I will also inform {{legal_entity_name}} about any changes to this information.","-1387062433":"Account opening reason","-1088324715":"We’ll review your documents and notify you of its status within 1 - 3 working days.","-329713179":"Ok","-1176889260":"Please select a document type.","-1515286538":"Please enter your document number. ","-1785463422":"Verify your identity","-78467788":"Please select the document type and enter the ID number.","-1117345066":"Choose the document type","-651192353":"Sample:","-1263033978":"Please ensure all your personal details are the same as in your chosen document. If you wish to update your personal details, go to account settings.","-937707753":"Go Back","-1926456107":"The ID you submitted is expired.","-555047589":"It looks like your identity document has expired. Please try again with a valid document.","-841187054":"Try Again","-2097808873":"We were unable to verify your ID with the details you provided. ","-228284848":"We were unable to verify your ID with the details you provided.","-1391934478":"Your ID is verified. You will also need to submit proof of your address.","-118547687":"ID verification passed","-200989771":"Go to personal details","-1358357943":"Please check and update your postal code before submitting proof of identity.","-1401994581":"Your personal details are missing","-2004327866":"Please select a valid country of document issuance.","-1664159494":"Country","-1874113454":"Please check and resubmit or choose a different document type.","-1044962593":"Upload Document","-749870311":"Please contact us via <0>live chat.","-1084991359":"Proof of identity verification not required","-1981334109":"Your account does not need identity verification at this time. We will inform you if identity verification is required in the future.","-182918740":"Your proof of identity submission failed because:","-246893488":"JPEG, JPG, PNG, PDF, or GIF","-1454880310":"Must be valid for at least 6 months","-100534371":"Before uploading, please ensure that you’re facing forward in the selfie, your face is within the frame, and your eyes are clearly visible even if you’re wearing glasses.","-1529523673":"Confirm and upload","-705047643":"Sorry, an error occured. Please select another file.","-1664309884":"Tap here to upload","-1725454783":"Failed","-839094775":"Back","-856213726":"You must also submit a proof of address.","-987011273":"Your proof of ownership isn't required.","-808299796":"You are not required to submit proof of ownership at this time. We will inform you if proof of ownership is required in the future.","-179726573":"We’ve received your proof of ownership.","-813779897":"Proof of ownership verification passed.","-1389323399":"You should enter {{min_number}}-{{max_number}} characters.","-1313806160":"Please request a new password and check your email for the new token.","-1598167506":"Success","-1077809489":"You have a new {{platform}} password to log in to your {{platform}} accounts on the web and mobile apps.","-2068479232":"{{platform}} password","-1332137219":"Strong passwords contain at least 8 characters that include uppercase and lowercase letters, numbers, and symbols.","-2005211699":"Create","-1597186502":"Reset {{platform}} password","-638756912":"Black out digits 7 to 12 of the card number that’s shown on the front of your debit/credit card.⁤","-848721396":"These trading limits are optional, and you can strengthen them at any time. If you don’t wish to set a specific limit, leave the field blank. If you live in the United Kingdom, Customer Support can only remove or weaken your trading limits after 24 hours of receiving the request. If you live in the Isle of Man, Customer Support can only remove or weaken your trading limits after your trading limit period has expired.","-469096390":"These trading limits are optional, and you can strengthen them at any time. If you don’t wish to set a specific limit, leave the field blank. Customer Support can only remove or weaken your trading limits after 24 hours of receiving the request.","-42808954":"You can also exclude yourself entirely for a specified duration. This can only be removed once your self-exclusion has expired. If you wish to continue trading once your self-exclusion period expires, you must contact Customer Support by calling <0>+447723580049 to lift this self-exclusion. Requests by chat or email shall not be entertained. There will be a 24-hour cooling-off period before you can resume trading.","-1088698009":"These self-exclusion limits help you control the amount of money and time you spend trading on {{platform_name_trader}}, {{platform_name_dbot}}, {{platform_name_smarttrader}} and {{platform_name_bbot}} on Deriv. The limits you set here will help you exercise <0>responsible trading.","-1702324712":"These limits are optional, and you can adjust them at any time. You decide how much and how long you’d like to trade. If you don’t wish to set a specific limit, leave the field blank.","-1819875658":"You can also exclude yourself entirely for a specified duration. Once the self-exclusion period has ended, you can either extend it further or resume trading immediately. If you wish to reduce or remove the self-exclusion period, contact our <0>Customer Support.","-1031814119":"About trading limits and self-exclusion","-183468698":"Trading limits and self-exclusion","-933963283":"No, review my limits","-1759860126":"Yes, log me out immediately","-572347855":"{{value}} mins","-313333548":"You’ll be able to adjust these limits at any time. You can reduce your limits from the <0>self-exclusion page. To increase or remove your limits, please contact our <1>Customer Support team.","-1265833982":"Accept","-2123139671":"Your stake and loss limits","-1250802290":"24 hours","-2070080356":"Max. total stake","-1545823544":"7 days","-180147209":"You will be automatically logged out from each session after this time limit.","-374553538":"Your account will be excluded from the website until this date (at least 6 months, up to 5 years).","-2121421686":"To self-exclude from all online gambling companies licensed in Great Britain, go to <0>www.gamstop.co.uk.","-2105708790":"Your maximum account balance and open positions","-1960600163":"Once your account balance reaches this amount, you will not be able to deposit funds into your account.","-1073845224":"No. of open position(s)","-288196326":"Your maximum deposit limit","-568749373":"Max. deposit limit","-1884902844":"Max. deposit limit per day","-545085253":"Max. deposit limit over 7 days","-1031006762":"Max. deposit limit over 30 days","-1116871438":"Max. total loss over 30 days","-2134714205":"Time limit per session","-1884271702":"Time out until","-1265825026":"Timeout time must be greater than current time.","-1332882202":"Timeout time cannot be more than 6 weeks.","-1635977118":"Exclude time cannot be less than 6 months.","-2073934245":"The financial trading services offered on this site are only suitable for customers who accept the possibility of losing all the money they invest and who understand and have experience of the risk involved in the purchase of financial contracts. Transactions in financial contracts carry a high degree of risk. If the contracts you purchased expire as worthless, you will lose all your investment, which includes the contract premium.","-1166068675":"Your account will be opened with {{legal_entity_name}}, regulated by the UK Gaming Commission (UKGC), and will be subject to the laws of the Isle of Man.","-975118358":"Your account will be opened with {{legal_entity_name}}, regulated by the Malta Financial Services Authority (MFSA), and will be subject to the laws of Malta.","-680528873":"Your account will be opened with {{legal_entity_name}} and will be subject to the laws of Samoa.","-1125193491":"Add account","-2068229627":"I am not a PEP, and I have not been a PEP in the last 12 months.","-684271315":"OK","-1720468017":"In providing our services to you, we are required to obtain information from you in order to assess whether a given product or service is appropriate for you.","-186841084":"Change your login email","-907403572":"To change your email address, you'll first need to unlink your email address from your {{identifier_title}} account.","-1850792730":"Unlink from {{identifier_title}}","-2139303636":"You may have followed a broken link, or the page has moved to a new address.","-1448368765":"Error code: {{error_code}} page not found","-2145244263":"This field is required","-254792921":"You can only make deposits at the moment. To enable withdrawals, please complete your financial assessment.","-70342544":"We’re legally obliged to ask for your financial information.","-1100235269":"Industry of employment","-684388823":"Estimated net worth","-601903492":"Forex trading experience","-1012699451":"CFD trading experience","-1894668798":"Other trading instruments experience","-1026468600":"Other trading instruments frequency","-179005984":"Save","-307865807":"Risk Tolerance Warning","-690100729":"Yes, I understand the risk.","-2010628430":"CFDs and other financial instruments come with a high risk of losing money rapidly due to leverage. You should consider whether you understand how CFDs and other financial instruments work and whether you can afford to take the high risk of losing your money. <0/><0/> To continue, you must confirm that you understand your capital is at risk.","-863770104":"Please note that by clicking ‘OK’, you may be exposing yourself to risks. You may not have the knowledge or experience to properly assess or mitigate these risks, which may be significant, including the risk of losing the entire sum you have invested.","-1292808093":"Trading Experience","-789291456":"Tax residence*","-1651554702":"Only alphabet is allowed","-1458676679":"You should enter 2-50 characters.","-1166111912":"Use only the following special characters: {{ permitted_characters }}","-884768257":"You should enter 0-35 characters.","-2113555886":"Only letters, numbers, space, and hyphen are allowed.","-874280157":"This Tax Identification Number (TIN) is invalid. You may continue using it, but to facilitate future payment processes, valid tax information will be required.","-1037916704":"Miss","-1113902570":"Details","-634958629":"We use the information you give us only for verification purposes. All information is kept confidential.","-731992635":"Title*","-352888977":"Title","-136976514":"Country of residence*","-945104751":"We’re legally obliged to ask for your tax information.","-1702919018":"Second line of address (optional)","-1124948631":"Professional Client","-259515058":"By default, all {{brand_website_name}} clients are retail clients but anyone can request to be treated as a professional client.","-1463348492":"I would like to be treated as a professional client.","-1958764604":"Email preference","-2121071263":"Check this box to receive updates via email.","-2068064150":"Get updates about Deriv products, services and events.","-1558679249":"Please make sure your information is correct or it may affect your trading experience.","-1822545742":"Ether Classic","-1334641066":"Litecoin","-1214036543":"US Dollar","-1782590355":"No currency has been set for this account","-2116332353":"Please close your positions in the following Deriv account(s):","-2048005267":"{{number_of_positions}} position(s)","-1923892687":"Please withdraw your funds from the following Deriv X account(s):","-1629894615":"I have other financial priorities.","-844051272":"I want to stop myself from trading.","-1113965495":"I’m no longer interested in trading.","-1224285232":"Customer service was unsatisfactory.","-9323953":"Remaining characters: {{remaining_characters}}","-2061895474":"Closing your account will automatically log you out. We shall delete your personal information as soon as our legal obligations are met.","-203298452":"Close account","-1219849101":"Please select at least one reason","-484540402":"An error occurred","-1911549768":"Inaccessible MT5 account(s)","-1869355019":"Action required","-1030102424":"You can't trade on Deriv.","-448385353":"You can't make transactions.","-1058447223":"Before closing your account:","-912764166":"Withdraw your funds.","-60139953":"We shall delete your personal information as soon as our legal obligations are met, as mentioned in the section on Data Retention in our <0>Security and privacy policy","-536187647":"Confirm revoke access?","-1357606534":"Permission","-570222048":"Revoke access","-1076138910":"Trade","-488597603":"Trading information","-1666909852":"Payments","-506510414":"Date and time","-1708927037":"IP address","-80717068":"Apps you have linked to your <0>Deriv password:","-2143208677":"Click the <0>Change password button to change your Deriv MT5 password.","-9570380":"Use the {{platform_name_dxtrade}} password to log in to your {{platform_name_dxtrade}} accounts on the web and mobile apps.","-412891493":"Disable 2FA","-200487676":"Enable","-1840392236":"That's not the right code. Please try again.","-307075478":"6 digit code","-790444493":"Protect your account with 2FA. Each time you log in to your account, you will need to enter your password and an authentication code generated by a 2FA app on your smartphone.","-368010540":"You have enabled 2FA for your Deriv account.","-403552929":"To disable 2FA, please enter the six-digit authentication code generated by your 2FA app below:","-752939584":"How to set up 2FA for your Deriv account","-90649785":"Click here to copy key","-206376148":"Key copied!","-650175948":"A recent bank statement or government-issued letter with your name and address.","-2006895756":"1. Address","-716361389":"An accurate and complete address helps to speed up your verification process.","-890084320":"Save and submit","-902076926":"Before uploading your document, please ensure that your personal details are updated to match your proof of identity. This will help to avoid delays during the verification process.","-1592318047":"See example","-1376950117":"That file format isn't supported. Please upload .pdf, .png, .jpg, or .jpeg files only.","-1272489896":"Please complete this field.","-397487797":"Enter your full card number","-1411635770":"Learn more about account limits","-516397235":"Be careful who you share this token with. Anyone with this token can perform the following actions on your account behalf","-989216986":"Add accounts","-617480265":"Delete token","-316749685":"Are you sure you want to delete this token?","-786372363":"Learn more about API token","-55560916":"To access our mobile apps and other third-party apps, you'll first need to generate an API token.","-198329198":"API Token","-955038366":"Copy this token","-1668692965":"Hide this token","-1661284324":"Show this token","-605778668":"Never","-1628008897":"Token","-1238499897":"Last Used","-1171226355":"Length of token name must be between {{MIN_TOKEN}} and {{MAX_TOKEN}} characters.","-1803339710":"Maximum {{MAX_TOKEN}} characters.","-408613988":"Select scopes based on the access you need.","-5605257":"This scope will allow third-party apps to withdraw to payment agents and make inter-account transfers for you.","-1373485333":"This scope will allow third-party apps to view your trading history.","-758221415":"This scope will allow third-party apps to open accounts for you, manage your settings and token usage, and more. ","-1117963487":"Name your token and click on 'Create' to generate your token.","-2115275974":"CFDs","-1879666853":"Deriv MT5","-460645791":"You are limited to one fiat account. You won’t be able to change your account currency if you have already made your first deposit or created a real {{dmt5_label}} account.","-1146960797":"Fiat currencies","-1959484303":"Cryptocurrencies","-561724665":"You are limited to one fiat currency only","-2087317410":"Oops, something went wrong.","-509054266":"Anticipated annual turnover","-164448351":"Show less","-1361653502":"Show more","-337620257":"Switch to real account","-2120454054":"Add a real account","-38915613":"Unsaved changes","-2137450250":"You have unsaved changes. Are you sure you want to discard changes and leave this page?","-1067082004":"Leave Settings","-1982432743":"It appears that the address in your document doesn’t match the address\n in your Deriv profile. Please update your personal details now with the\n correct address.","-1451334536":"Continue trading","-1525879032":"Your documents for proof of address is expired. Please submit again.","-1425489838":"Proof of address verification not required","-1008641170":"Your account does not need address verification at this time. We will inform you if address verification is required in the future.","-60204971":"We could not verify your proof of address","-1944264183":"To continue trading, you must also submit a proof of identity.","-1617352279":"The email is in your spam folder (Sometimes things get lost there).","-547557964":"We can’t deliver the email to this address (Usually because of firewalls or filtering).","-142444667":"Please click on the link in the email to change your Deriv MT5 password.","-742748008":"Check your email and click the link in the email to proceed.","-84068414":"Still didn't get the email? Please contact us via <0>live chat.","-428335668":"You will need to set a password to complete the process.","-1517325716":"Deposit via the following payment methods:","-1547606079":"We accept the following cryptocurrencies:","-42592103":"Deposit cryptocurrencies","-639677539":"Buy cryptocurrencies","-1560098002":"Buy cryptocurrencies via fiat onramp","-541870313":"Deposit via payment agents","-58126117":"Your simple access to crypto. Fast and secure way to exchange and purchase cryptocurrencies. 24/7 live chat support.","-1705887186":"Your deposit is successful.","-142361708":"In process","-1582681840":"We’ve received your request and are waiting for more blockchain confirmations.","-1626218538":"You’ve cancelled your withdrawal request.","-1062841150":"Your withdrawal is unsuccessful due to an error on the blockchain. Please <0>contact us via live chat for more info.","-630780094":"We’re awaiting confirmation from the blockchain.","-1525882769":"Your withdrawal is unsuccessful. We've sent you an email with more information.","-298601922":"Your withdrawal is successful.","-2021135479":"This field is required.","-1975494965":"Cashier","-1870909526":"Our server cannot retrieve an address.","-582721696":"The current allowed withdraw amount is {{format_min_withdraw_amount}} to {{format_max_withdraw_amount}} {{currency}}","-1957498244":"more","-197251450":"Don't want to trade in {{currency_code}}? You can open another cryptocurrency account.","-1900848111":"This is your {{currency_code}} account.","-749765720":"Your fiat account currency is set to {{currency_code}}.","-803546115":"Manage your accounts ","-1463156905":"Learn more about payment methods","-1309258714":"From account number","-1247676678":"To account number","-816476007":"Account holder name","-1995606668":"Amount","-344403983":"Description","-922432739":"Please enter a valid client login ID.","-1024241603":"Insufficient balance.","-1979554765":"Please enter a valid description.","-1186807402":"Transfer","-1254233806":"You've transferred","-1491457729":"All payment methods","-142563298":"Contact your preferred payment agent for payment instructions and make your deposit.","-1023961762":"Commission on deposits","-552873274":"Commission on withdrawal","-880645086":"Withdrawal amount","-118683067":"Withdrawal limits: <0 />-<1 />","-1125090734":"Important notice to receive your funds","-1924707324":"View transaction","-1474202916":"Make a new withdrawal","-511423158":"Enter the payment agent account number","-2059278156":"Note: {{website_name}} does not charge any transfer fees.","-1201279468":"To withdraw your funds, please choose the same payment method you used to make your deposits.","-8892474":"Start assessment","-1787304306":"Deriv P2P","-60779216":"Withdrawals are temporarily unavailable due to system maintenance. You can make your withdrawals when the maintenance is complete.","-215186732":"You’ve not set your country of residence. To access Cashier, please update your country of residence in the Personal details section in your account settings.","-1392897508":"The identification documents you submitted have expired. Please submit valid identity documents to unlock Cashier. ","-1321645628":"Your cashier is currently locked. Please contact us via live chat to find out how to unlock it.","-1158467524":"Your account is temporarily disabled. Please contact us via live chat to enable deposits and withdrawals again.","-929148387":"Please set your account currency to enable deposits and withdrawals.","-541392118":"Your account has not been authenticated. Please submit your <0>proof of identity and <1>proof of address to authenticate your account and access your cashier.","-247122507":"Your cashier is locked. Please complete the <0>financial assessment to unlock it.","-1443721737":"Your cashier is locked. See <0>how we protect your funds before you proceed.","-901712457":"Your access to Cashier has been temporarily disabled as you have not set your 30-day turnover limit. Please go to <0>Self-exclusion and set your 30-day turnover limit.","-166472881":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable deposits and withdrawals.","-666905139":"Deposits are locked","-378858101":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable deposits.","-1037495888":"You have chosen to exclude yourself from trading on our website until {{exclude_until}}. If you are unable to place a trade or deposit after your self-exclusion period, please contact us via live chat.","-949074612":"Please contact us via live chat.","-1318742415":"Your account has not been authenticated. Please submit your <0>proof of identity and <1>proof of address to authenticate your account and request for withdrawals.","-127614820":"Unfortunately, you can only make deposits. Please contact us via live chat to enable withdrawals.","-172277021":"Cashier is locked for withdrawals","-1624999813":"It seems that you've no commissions to withdraw at the moment. You can make withdrawals once you receive your commissions.","-1077304626":"Amount ({{currency}})","-1559994981":"Approximate value","-190084602":"Transaction","-811190405":"Time","-1272778997":"We've sent you an email.","-89973258":"Resend email in {{seconds}}s","-1332236294":"Please verify your identity","-1675848843":"Error","-283017497":"Retry","-1196049878":"First line of home address","-1326406485":"Postal Code/ZIP","-939625805":"Telephone","-442575534":"Email verification failed","-1459042184":"Update your personal details","-1603543465":"We can't validate your personal details because there is some information missing.","-614516651":"Need help? <0>Contact us.","-203002433":"Deposit now","-720315013":"You have no funds in your {{currency}} account","-2052373215":"Please make a deposit to use this feature.","-379487596":"{{selected_percentage}}% of available balance ({{format_amount}} {{currency__display_code}})","-299033842":"Recent transactions","-348296830":"{{transaction_type}} {{currency}}","-1929538515":"{{amount}} {{currency}} on {{submit_date}}","-1534990259":"Transaction hash:","-1612346919":"View all","-1059419768":"Notes","-316545835":"Please ensure <0>all details are <0>correct before making your transfer.","-949073402":"I confirm that I have verified the client’s transfer information.","-1752211105":"Transfer now","-598073640":"About Tether (Ethereum)","-275902914":"Tether on Ethereum (eUSDT)","-1188009792":"Tether on Omni Layer (USDT)","-1239329687":"Tether was originally created to use the bitcoin network as its transport protocol ‒ specifically, the Omni Layer ‒ to allow transactions of tokenised traditional currency.","-2013448791":"Want to exchange between e-wallet currencies? Try <0>Ewallet.Exchange","-2061807537":"Something’s not right","-1068036170":"We do not charge a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts and between your Deriv fiat and {{platform_name_dxtrade}} accounts.","-2056016338":"You’ll not be charged a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts.","-599632330":"We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts and between your Deriv fiat and {{platform_name_dxtrade}} accounts.","-1196994774":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency accounts.","-1361372445":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts, your Deriv cryptocurrency and {{platform_name_derivez}} accounts, and your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.","-993556039":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts and between your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.","-1382702462":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts.","-1995859618":"You may transfer between your Deriv fiat, cryptocurrency, {{platform_name_mt5}}, {{platform_name_derivez}} and {{platform_name_dxtrade}} accounts.","-545616470":"Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts, up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts, up to {{ allowed_derivez }} transfers between your Deriv and {{platform_name_derivez}} accounts, and up to {{ allowed_dxtrade }} transfers between your Deriv and {{platform_name_dxtrade}} accounts.","-1151983985":"Transfer limits may vary depending on the exchange rates.","-1747571263":"Please bear in mind that some transfers may not be possible.","-757062699":"Transfers may be unavailable due to high volatility or technical issues and when the exchange markets are closed.","-1344870129":"Deriv accounts","-1156059326":"You have {{number}} transfer remaining for today.","-1109729546":"You will be able to transfer funds between MT5 accounts and other accounts once your address is verified.","-1593609508":"Transfer between your accounts in Deriv","-464965808":"Transfer limits: <0 /> - <1 />","-553249337":"Transfers are locked","-1638172550":"To enable this feature you must complete the following:","-1157701227":"You need at least two accounts","-417711545":"Create account","-1232852916":"We’re switching over to your {{currency}} account to view the transaction.","-993393818":"Binance Smart Chain","-561858764":"Polygon (Matic)","-410890127":"Ethereum (ERC20)","-1059526741":"Ethereum (ETH)","-1615615253":"We do not support Tron, to deposit please use only Ethereum ({{token}}).","-1831000957":"Please select the network from where your deposit will come from.","-314177745":"Unfortunately, we couldn't get the address since our server was down. Please click Refresh to reload the address or try again later.","-1345040662":"Looking for a way to buy cryptocurrency?","-759000391":"We were unable to verify your information automatically. To enable this function, you must complete the following:","-1632668764":"I accept","-544232635":"Please go to the Deposit page to generate an address. Then come back here to continue with your transaction.","-1161069724":"Please copy the crypto address you see below. You'll need it to deposit your cryptocurrency.","-1388977563":"Copied!","-1962894999":"This address can only be used ONCE. Please copy a new one for your next transaction.","-451858550":"By clicking 'Continue' you will be redirected to {{ service }}, a third-party payment service provider. Please note that {{ website_name }} is not responsible for the content or services provided by {{ service }}. If you encounter any issues related to {{ service }} services, you must contact {{ service }} directly.","-2005265642":"Fiat onramp is a cashier service that allows you to convert fiat currencies to crypto to top up your Deriv crypto accounts. Listed here are third-party crypto exchanges. You’ll need to create an account with them to use their services.","-1593063457":"Select payment channel","-953082600":"Some payment methods may not be listed here but payment agents may still offer them. If you can’t find your favourite method, contact the payment agents directly to check further.","-2004264970":"Your wallet address should have 25 to 64 characters.","-1707299138":"Your {{currency_symbol}} wallet address","-38063175":"{{account_text}} wallet","-705272444":"Upload a proof of identity to verify your identity","-2024958619":"This is to protect your account from unauthorised withdrawals.","-130833284":"Please note that your maximum and minimum withdrawal limits aren’t fixed. They change due to the high volatility of cryptocurrency.","-1531269493":"We'll send you an email once your transaction has been processed.","-113940416":"Current stake:","-1999539705":"Deal cancel. fee:","-447037544":"Buy price:","-1342699195":"Total profit/loss:","-1511825574":"Profit/Loss:","-726626679":"Potential profit/loss:","-338379841":"Indicative price:","-1525144993":"Payout limit:","-1167474366":"Tick ","-555886064":"Won","-529060972":"Lost","-571642000":"Day","-155989831":"Decrement value","-1192773792":"Don't show this again","-1769852749":"N/A","-1572746946":"Asian Up","-686840306":"Asian Down","-2141198770":"Higher","-816098265":"Lower","-1646655742":"Spread Up","-668987427":"Spread Down","-912577498":"Matches","-1862940531":"Differs","-808904691":"Odd","-556230215":"Ends Outside","-1268220904":"Ends Between","-703542574":"Up","-1127399675":"Down","-768425113":"No Touch","-1163058241":"Stays Between","-1354485738":"Reset Call","-376148198":"Only Ups","-1337379177":"High Tick","-328036042":"Please enter a stop loss amount that's higher than the current potential loss.","-2127699317":"Invalid stop loss. Stop loss cannot be more than stake.","-1150099396":"We’re working to have this available for you soon. If you have another account, switch to that account to continue trading. You may add a Deriv MT5 Financial.","-1940333322":"DBot is not available for this account","-1223145005":"Loss amount: {{profit}}","-1062922595":"Reference ID (buy)","-2068574600":"Reference ID (sell)","-994038153":"Start Time","-1979852400":"Entry Spot","-427802309":"Profit/Loss","-668558002":"Journal.csv","-746652890":"Notifications","-824109891":"System","-507620484":"Unsaved","-764102808":"Google Drive","-1109191651":"Must be a number higher than 0","-1917772100":"Invalid number format","-1553945114":"Value must be higher than 2","-689786738":"Minimum duration: {{ min }}","-184183432":"Maximum duration: {{ max }}","-749186458":"Account switching is disabled while your bot is running. Please stop your bot before switching accounts.","-662836330":"Would you like to keep your current contract or close it? If you decide to keep it running, you can check and close it later on the <0>Reports page.","-597939268":"Keep my contract","-1322453991":"You need to log in to run the bot.","-1483938124":"This strategy is currently not compatible with DBot.","-236548954":"Contract Update Error","-1428017300":"THE","-1450728048":"OF","-255051108":"YOU","-1845434627":"IS","-931434605":"THIS","-740712821":"A","-187634388":"This block is mandatory. Here is where you can decide if your bot should continue trading. Only one copy of this block is allowed.","-2105473795":"The only input parameter determines how block output is going to be formatted. In case if the input parameter is \"string\" then the account currency will be added.","-1800436138":"2. for \"number\": 1325.68","-2046396241":"This block is mandatory. Only one copy of this block is allowed. It is added to the canvas by default when you open DBot.","-530632460":"This block is used to determine if the market price moves in the selected direction or not. It gives you a value of \"True\" or \"False\".","-1875717842":"Examples:","-890079872":"1. If the selected direction is \"Rise\", and the previous tick value is less than the current tick value, the output will be \"True\". Otherwise, the output will be an empty string.","-489739641":"2. If the selected direction is \"Fall\", and the previous tick value is more than the current tick value, the output will be \"True\". Otherwise, the output will be an empty string.","-2116076360":"There are 4 message types:","-1421941045":"2. 'Warn' displays a message in yellow to highlight something that needs attention.","-277850921":"If \"Win\" is selected, it will return \"True\" if your last trade was successful. Otherwise, it will return an empty string.","-1918487001":"Example:","-2139916657":"1. In the below example the loop is terminated in case \"x\" is \"False\" even though only one iteration is complete","-1238900333":"2. In the below example the loop jumps to the next iteration without executing below block in case if \"x\" is \"False\"","-1729479576":"You can use \"i\" inside the loop, for example to access list items","-1474636594":"In this example, the loop will repeat three times, as that is the number of items in the given list. During each iteration, the variable \"i\" will be assigned a value from the list. ","-908772734":"This block evaluates a statement and will perform an action only when the statement is true.","-334040831":"2. In this example, the instructions are repeated as long as the value of x is greater than or equal to 10. Once the value of x drops below 10, the loop is terminated.","-444267958":"\"Seconds Since Epoch\" block returns the number of seconds since January 1st, 1970.","-447522129":"You might need it when you want to repeat an actions after certain amount of time.","-1488259879":"The term \"candle\" refers to each bar on the candlestick chart. Each candle represents four market prices for the selected time interval:","-2020693608":"Each candlestick on the chart represents 4 market prices for the selected time interval:","-62728852":"- Open price: the opening price","-1247744334":"- Low price: the lowest price","-1386365697":"- Close price: the closing price","-1498732382":"A black (or red) candle indicates that the open price is higher than the close price. This represents a downward movement of the market price.","-1871864755":"This block gives you the last digit of the latest tick value of the selected market. If the latest tick value is 1410.90, this block will return 0. It’s useful for digit-based contracts such as Even/Odd, Matches/Differs, or Higher/Lower.","-1029671512":"In case if the \"OR\" operation is selected, the block returns \"True\" in case if one or both given values are \"True\"","-210295176":"Available operations:","-1385862125":"- Addition","-983721613":"- Subtraction","-854750243":"- Multiplication","-1394815185":"In case if the given number is less than the lower boundary of the range, the block returns the lower boundary value. Similarly, if the given number is greater than the higher boundary, the block will return the higher boundary value. In case if the given value is between boundaries, the block will return the given value unchanged.","-1034564248":"In the below example the block returns the value of 10 as the given value (5) is less than the lower boundary (10)","-2009817572":"This block performs the following operations to a given number","-671300479":"Available operations are:","-514610724":"- Absolute","-1923861818":"- Euler’s number (2.71) to the power of a given number","-1556344549":"Here’s how:","-1061127827":"- Visit the following URL, make sure to replace with the Telegram API token you created in Step 1: https://api.telegram.org/bot/getUpdates","-70949308":"4. Come back to DBot and add the Notify Telegram block to the workspace. Paste the Telegram API token and chat ID into the block fields accordingly.","-311389920":"In this example, the open prices from a list of candles are assigned to a variable called \"cl\".","-1460794449":"This block gives you a list of candles within a selected time interval.","-1634242212":"Used within a function block, this block returns a value when a specific condition is true.","-2012970860":"This block gives you information about your last contract.","-1504783522":"You can choose to see one of the following:","-10612039":"- Profit: the profit you’ve earned","-555996976":"- Entry time: the starting time of the contract","-1391071125":"- Exit time: the contract expiration time","-1961642424":"- Exit value: the value of the last tick of the contract","-111312913":"- Barrier: the barrier value of the contract (applicable to barrier-based trade types such as stays in/out, touch/no touch, etc.)","-674283099":"- Result: the result of the last contract: \"win\" or \"loss\"","-704543890":"This block gives you the selected candle value such as open price, close price, high price, low price, and open time. It requires a candle as an input parameter.","-482281200":"In the example below, the open price is assigned to the variable \"op\".","-364621012":"This block gives you the specified candle value for a selected time interval. You can choose which value you want:","-232477769":"- Open: the opening price","-610736310":"Use this block to sell your contract at the market price. Selling your contract is optional. You may choose to sell if the market trend is unfavourable.","-1307657508":"This block gives you the potential profit or loss if you decide to sell your contract. It can only be used within the \"Sell conditions\" root block.","-1921072225":"In the example below, the contract will only be sold if the potential profit or loss is more than the stake.","-955397705":"SMA adds the market price in a list of ticks or candles for a number of time periods, and divides the sum by that number of time periods.","-1424923010":"where n is the number of periods.","-1835384051":"What SMA tells you","-749487251":"SMA serves as an indicator of the trend. If the SMA points up then the market price is increasing and vice versa. The larger the period number, the smoother SMA line is.","-1996062088":"In this example, each point of the SMA line is an arithmetic average of close prices for the last 10 days.","-1866751721":"Input list accepts a list of ticks or candles, while period is the specified time period.","-1097076512":"You may compare SMA values calculated on every bot run to identify the market trend direction. Alternatively, you may also use a variation of the SMA block, the Simple Moving Average Array block. ","-1254849504":"If a period of 10 is entered, the Simple Moving Average Array block will return a list of SMA values calculated based on period of 10.","-1190046167":"This block displays a dialog box with a customised message. When the dialog box is displayed, your strategy is paused and will only resume after you click \"OK\".","-859028989":"In this example, the date and time will be displayed in a green notification box.","-1452086215":"In this example, a Rise contract will be purchased at midnight on 1 August 2019.","-1765276625":"Click the multiplier drop-down menu and choose the multiplier value you want to trade with.","-1872233077":"Your potential profit will be multiplied by the multiplier value you’ve chosen.","-614454953":"To learn more about multipliers, please go to the <0>Multipliers page.","-2078588404":"Select your desired market and asset type. For example, Forex > Major pairs > AUD/JPY","-2037446013":"2. Trade Type","-533927844":"Select your desired trade type. For example, Up/Down > Rise/Fall","-1192411640":"4. Default Candle Interval","-485434772":"8. Trade Options","-1827646586":"This block assigns a given value to a variable, creating the variable if it doesn't already exist.","-254421190":"List: ({{message_length}})","-1616649196":"results","-90107030":"No results found","-984140537":"Add","-786915692":"You are connected to Google Drive","-1150107517":"Connect","-1759213415":"Find out how this app handles your data by reviewing Deriv's <0>Privacy policy, which is part of Deriv's <1>Terms and conditions.","-934909826":"Load strategy","-1121028020":"or, if you prefer...","-254025477":"Select an XML file from your device","-1131095838":"Please upload an XML file","-523928088":"Create one or upload one from your local drive or Google Drive.","-1684205190":"Why can't I see my recent bots?","-2050879370":"1. Logged in from a different device","-811857220":"3. Cleared your browser cache","-1016171176":"Asset","-621128676":"Trade type","-671128668":"The amount that you pay to enter a trade.","-447853970":"Loss threshold","-410856998":"The bot will stop trading if your total profit exceeds this amount.","-1823621139":"Quick Strategy","-625024929":"Leaving already?","-584289785":"No, I'll stay","-1435060006":"If you leave, your current contract will be completed, but your bot will stop running immediately.","-783058284":"Total stake","-2077494994":"Total payout","-1073955629":"No. of runs","-1729519074":"Contracts lost","-42436171":"Total profit/loss","-1856204727":"Reset","-224804428":"Transactions","-1137823888":"Total payout since you last cleared your stats.","-992662695":"The number of times your bot has run since you last cleared your stats. Each run includes the execution of all the root blocks.","-1382491190":"Your total profit/loss since you last cleared your stats. It is the difference between your total payout and your total stake.","-305283152":"Strategy name","-1003476709":"Save as collection","-636521735":"Save strategy","-1373954791":"Should be a valid number","-1278608332":"Please enter a number between 0 and {{api_max_losses}}.","-287597204":"Enter limits to stop your bot from trading when any of these conditions are met.","-1445989611":"Limits your potential losses for the day across all Deriv platforms.","-152878438":"Maximum number of trades your bot will execute for this run.","-1490942825":"Apply and run","-1696412885":"Import","-250192612":"Sort","-1566369363":"Zoom out","-2060170461":"Load","-1200116647":"Click here to start building your DBot.","-1040972299":"Purchase contract","-600546154":"Sell contract (optional)","-985351204":"Trade again","-112876186":"Analysis","-1769584466":"Stats","-1133736197":"Utility","-1682372359":"Text","-907562847":"Lists","-1646497683":"Loops","-251326965":"Miscellaneous","-1285759343":"Search","-1058262694":"Stopping the bot will prevent further trades. Any ongoing trades will be completed by our system.","-1473283434":"Please be aware that some completed transactions may not be displayed in the transaction table if the bot is stopped while placing trades.","-397015538":"You may refer to the statement page for details of all completed transactions.","-1442034178":"Contract bought","-2020280751":"Bot is stopping","-1436403979":"Contract closed","-1711732508":"Reference IDs","-386141434":"(Buy)","-482272687":"(Sell)","-1983189496":"ticks","-694277729":"(High)","-2028564707":"(Low)","-627895223":"Exit spot","-596238067":"Entry/Exit spot","-558594655":"The bot is not running","-478946875":"The stats are cleared","-9461328":"Security and privacy","-563774117":"Dashboard","-418247251":"Download your journal.","-870004399":"<0>Bought: {{longcode}} (ID: {{transaction_id}})","-1211474415":"Filters","-186972150":"There are no messages to display","-999254545":"All messages are filtered out","-686334932":"Build a bot from the start menu then hit the run button to run the bot.","-1717650468":"Online","-1825471709":"A whole new trading experience on a powerful yet easy to use platform.","-981017278":"Automated trading at your fingertips. No coding needed.","-1768586966":"Trade CFDs on a customizable, easy-to-use trading platform.","-1309011360":"Open positions","-883103549":"Account deactivated","-821418875":"Trader","-679102561":"Contract Details","-430118939":"Complaints policy","-744999940":"Deriv account","-568280383":"Deriv Gaming","-1308346982":"Derived","-1546927062":"Deriv Financial","-895331276":"Complete your proof of address","-782679300":"Complete your proof of identity","-1596515467":"Derived BVI","-328128497":"Financial","-533935232":"Financial BVI","-565431857":"Financial Labuan","-1290112064":"Deriv EZ","-1669418686":"AUD/CAD","-1548588249":"AUD/CHF","-1552890620":"AUD/JPY","-681231560":"AUD/PLN","-64938413":"AUD/USD","-1430522808":"EUR/AUD","-2020477069":"EUR/CAD","-1201853162":"EUR/CHF","-1318070255":"EUR/GBP","-1197505739":"EUR/JPY","-405907358":"EUR/USD","-1536293064":"NZD/JPY","-79700881":"NZD/USD","-642323838":"USD/CAD","-428199705":"USD/CHF","-424108348":"USD/JPY","-548255282":"USD/NOK","-1834131208":"USD/PLN","-524302516":"Silver/USD","-764731776":"Platinum/USD","-700966800":"Dutch Index","-1863229260":"Australian Index","-946336619":"Wall Street Index","-945048133":"French Index","-1093355162":"UK Index","-932734062":"Hong Kong Index","-2030624691":"Japanese Index","-354063409":"US Index","-232855849":"Euro 50 Index","-1925264914":"Volatility 25 Index","-708579504":"Volatility 50 Index","-975255670":"Volatility 75 Index","-1736314513":"Crash 300 Index","-342128411":"Crash 500 Index","-9704319":"Crash 1000 Index","-465860988":"Bull Market Index","-390528194":"Step Index","-280323742":"EUR Basket","-563812039":"Volatility 10 (1s) Index","-764111252":"Volatility 100 (1s) Index","-1374309449":"Volatility 200 (1s) Index","-1164978320":"Jump 10 Index","-575272887":"BCH/USD","-295406873":"BTC/ETH","-1713556301":"ZMR/USD","-2046638412":"XRP/USD","-1263203461":"BTC/USD","-1112522776":"DSH/USD","-460689370":"LTC/USD","-841561409":"Put Spread","-144803045":"Only numbers and these special characters are allowed: {{permitted_characters}}","-1450516268":"Only letters, numbers, space, hyphen, period, and apostrophe are allowed.","-1072358250":"Letters, spaces, periods, hyphens, apostrophes only","-1966032552":"The length of token should be 8.","-2128137611":"Should start with letter or number, and may contain hyphen and underscore.","-1590869353":"Up to {{decimal_count}} decimal places are allowed.","-2061307421":"Should be more than {{min_value}}","-1099941162":"Should be less than {{max_value}}","-1528188268":"Straight rows of keys are easy to guess","-1339903234":"Short keyboard patterns are easy to guess","-23980798":"Repeats like \"aaa\" are easy to guess","-235760680":"Avoid repeated words and characters","-1568933154":"Sequences like abc or 6543 are easy to guess","-725663701":"Avoid sequences","-1450768475":"Recent years are easy to guess","-1804838610":"Avoid years that are associated with you","-64849469":"Dates are often easy to guess","-2006915194":"Avoid dates and years that are associated with you","-2124205211":"A word by itself is easy to guess","-1095202689":"All-uppercase is almost as easy to guess as all-lowercase","-2137856661":"Reversed words aren't much harder to guess","-1885413063":"Predictable substitutions like '@' instead of 'a' don't help very much","-369258265":"This password is on the blacklist","-681468758":"Your web browser is out of date and may affect your trading experience. Please <0>update your browser.","-577777971":"You have reached the rate limit of requests per second. Please try later.","-206321775":"Fiat","-522767852":"DEMO","-433761292":"Switching to default account.","-405439829":"Sorry, you can't view this contract because it doesn't belong to this account.","-1590712279":"Gaming","-16448469":"Virtual","-540474806":"Your Options account is scheduled to be closed","-618539786":"Your account is scheduled to be closed","-945275490":"Withdraw all funds from your Options account.","-2093768906":"{{name}} has released your funds.
Would you like to give your feedback?","-705744796":"Your demo account balance has reached the maximum limit, and you will not be able to place new trades. Reset your balance to continue trading from your demo account.","-800774345":"Power up your Financial trades with intuitive tools from Acuity.","-279582236":"Learn More","-1211460378":"Power up your trades with Acuity","-703292251":"Download intuitive trading tools to keep track of market events. The Acuity suite is only available for Windows, and is most recommended for financial assets.","-1585069798":"Please click the following link to complete your Appropriateness Test.","-1287141934":"Find out more","-367759751":"Your account has not been verified","-596690079":"Enjoy using Deriv?","-265932467":"We’d love to hear your thoughts","-1815573792":"Drop your review on Trustpilot.","-823349637":"Go to Trustpilot","-1204063440":"Set my account currency","-1751632759":"Get a faster mobile trading experience with the <0>{{platform_name_go}} app!","-1164554246":"You submitted expired identification documents","-219846634":"Let’s verify your ID","-529038107":"Install","-1738575826":"Please switch to your real account or create one to access the cashier.","-1329329028":"You’ve not set your 30-day turnover limit","-132893998":"Your access to the cashier has been temporarily disabled as you have not set your 30-day turnover limit. Please go to Self-exclusion and set the limit.","-1852207910":"MT5 withdrawal disabled","-764323310":"MT5 withdrawals have been disabled on your account. Please check your email for more details.","-1902997828":"Refresh now","-753791937":"A new version of Deriv is available","-1775108444":"This page will automatically refresh in 5 minutes to load the latest version.","-1175685940":"Please contact us via live chat to enable withdrawals.","-1125797291":"Password updated.","-157145612":"Please log in with your updated password.","-1728185398":"Resubmit proof of address","-612396514":"Please resubmit your proof of address.","-1519764694":"Your proof of address is verified.","-1961967032":"Resubmit proof of identity","-117048458":"Please submit your proof of identity.","-1196422502":"Your proof of identity is verified.","-136292383":"Your proof of address verification is pending","-386909054":"Your proof of address verification has failed","-430041639":"Your proof of address did not pass our verification checks, and we’ve placed some restrictions on your account. Please resubmit your proof of address.","-87177461":"Please go to your account settings and complete your personal details to enable deposits.","-904632610":"Reset your balance","-470018967":"Reset balance","-156611181":"Please complete the financial assessment in your account settings to unlock it.","-1925176811":"Unable to process withdrawals in the moment","-980696193":"Withdrawals are temporarily unavailable due to system maintenance. You can make withdrawals when the maintenance is complete.","-1647226944":"Unable to process deposit in the moment","-488032975":"Deposits are temporarily unavailable due to system maintenance. You can make deposits when the maintenance is complete.","-67021419":"Our cashier is temporarily down due to system maintenance. You can access the cashier in a few minutes when the maintenance is complete.","-849587074":"You have not provided your tax identification number","-47462430":"This information is necessary for legal and regulatory requirements. Please go to your account settings, and fill in your latest tax identification number.","-2067423661":"Stronger security for your Deriv account","-1719731099":"With two-factor authentication, you’ll protect your account with both your password and your phone - so only you can access your account, even if someone knows your password.","-2087822170":"You are offline","-1669693571":"Check your connection.","-1706642239":"<0>Proof of ownership <1>required","-553262593":"<0><1>Your account is currently locked <2><3>Please upload your proof of <4>ownership to unlock your account. <5>","-1834929362":"Upload my document","-1043638404":"<0>Proof of ownership <1>verification failed","-1766760306":"<0><1>Please upload your document <2>with the correct details. <3>","-2142540205":"It appears that the address in your document doesn’t match the address in your Deriv profile. Please update your personal details now with the correct address.","-482715448":"Go to Personal details","-2072411961":"Your proof of address has been verified","-384887227":"Update the address in your profile.","-1998049070":"If you agree to our use of cookies, click on Accept. For more information, <0>see our policy.","-402093392":"Add Deriv Account","-277547429":"A Deriv account will allow you to fund (and withdraw from) your MT5 account(s).","-1721181859":"You’ll need a {{deriv_account}} account","-1989074395":"Please add a {{deriv_account}} account first before adding a {{dmt5_account}} account. Deposits and withdrawals for your {{dmt5_label}} account are done by transferring funds to and from your {{deriv_label}} account.","-689237734":"Proceed","-1642457320":"Help centre","-1966944392":"Network status: {{status}}","-594209315":"Synthetic indices in the EU are offered by {{legal_entity_name}}, W Business Centre, Level 3, Triq Dun Karm, Birkirkara BKR 9033, Malta, licensed and regulated by the Malta Gaming Authority (<0>licence no. MGA/B2C/102/2000) and by the Revenue Commissioners for clients in Ireland (<2>licence no. 1010285).","-181484419":"Responsible trading","-650505513":"Full screen","-1823504435":"View notifications","-1954045170":"No currency assigned","-583559763":"Menu","-1922462747":"Trader's hub","-1591792668":"Account Limits","-34495732":"Regulatory information","-1496158755":"Go to Deriv.com","-2094580348":"Thanks for verifying your email","-1396326507":"Unfortunately, {{website_name}} is not available in your country.","-1019903756":"Synthetic","-288996254":"Unavailable","-122970184":"Total assets in your Deriv and {{platform_name_dxtrade}} demo accounts.","-97270814":"Total assets in your Deriv and {{platform_name_dxtrade}} real accounts.","-1607445331":"Deriv MT5 Accounts","-1844355483":"{{platform_name_dxtrade}} Accounts","-1740162250":"Manage account","-1277942366":"Total assets","-1556699568":"Choose your citizenship","-1310654342":"As part of the changes in our product line-up, we will be closing Gaming accounts belonging to our UK clients.","-626152766":"As part of the changes in our product line-up, we are closing Options accounts belonging to our clients in Europe.","-490100162":"As part of the changes in our product line-up, we will be closing accounts belonging to our Isle of Man clients.","-1208958060":"You can no longer trade digital options on any of our platforms. You also can’t deposit funds into your account.<0/><1/>Any open positions on digital options have been closed with full payout.","-2050417883":"You’ll lose access to your Gaming account when it gets closed, so make sure to withdraw your funds as soon as possible.","-1950045402":"Withdraw all your funds","-168971942":"What this means for you","-905560792":"OK, I understand","-1308593541":"You will lose access to your account when it gets closed, so be sure to withdraw all your funds.","-2024365882":"Explore","-1197864059":"Create free demo account","-1602122812":"24-hour Cool Down Warning","-740157281":"Trading Experience Assessment","-399816343":"Trading Experience Assessment<0/>","-1822498621":"As per our regulatory obligations, we are required to assess your trading knowledge and experience.<0/><0/>Please click ‘OK’ to continue","-71049153":"Keep your account secure with a password","-1861974537":"Strong passwords contain at least 8 characters, combine uppercase and lowercase letters, numbers, and symbols.","-1965920446":"Start trading","-1485242688":"Step {{step}}: {{step_title}} ({{step}} of {{steps}})","-1829842622":"You can open an account for each cryptocurrency.","-987221110":"Choose a currency you would like to trade with.","-1066574182":"Choose a currency","-1914534236":"Choose your currency","-200560194":"Please switch to your {{fiat_currency}} account to change currencies.","-1829493739":"Choose the currency you would like to trade with.","-1814647553":"Add a new","-1269362917":"Add new","-650480777":"crypto account","-175638343":"Choose an account or add a new one","-1768223277":"Your account is ready","-1215717784":"<0>You have successfully changed your currency to {{currency}}.<0>Make a deposit now to start trading.","-786091297":"Trade on demo","-228099749":"Please verify your identity and address","-1041852744":"We're processing your personal information","-1775006840":"Make a deposit now to start trading.","-983734304":"We need proof of your identity and address before you can start trading.","-917733293":"To get trading, please confirm where you live.","-1282628163":"You'll be able to get trading as soon as verification is complete.","-952649119":"Log In","-3815578":"Sign Up","-1456176427":"Set a currency for your real account","-1557011219":"Add a real Deriv Options account","-241733171":"Add a Deriv Financial account","-1329687645":"Create a cryptocurrency account","-1429178373":"Create a new account","-1016775979":"Choose an account","-1519791480":"CFDs and other financial instruments come with a high risk of losing money rapidly due to leverage. You should consider whether you understand how CFDs and other financial instruments work and whether you can afford to take the risk of losing your money. <0/><0/>\n As you have declined our previous warning, you would need to wait 24 hours before you can proceed further.","-1010875436":"CFDs and other financial instruments come with a high risk of losing money rapidly due to leverage. You should consider whether you understand how CFDs and other financial instruments work and whether you can afford to take the high risk of losing your money. <0/><0/> To continue, kindly note that you would need to wait 24 hours before you can proceed further.","-1725418054":"By clicking ‘Accept’ and proceeding with the account opening, you should note that you may be exposing yourself to risks. These risks, which may be significant, include the risk of losing the entire sum invested, and you may not have the knowledge and experience to properly assess or mitigate them.","-1369294608":"Already signed up?","-617844567":"An account with your details already exists.","-292363402":"Trading statistics report","-1656860130":"Options trading can become a real addiction, as can any other activity pushed to its limits. To avoid the danger of such an addiction, we provide a reality-check that gives you a summary of your trades and accounts on a regular basis.","-28080461":"Would like to check your statement first? <0>Check Statement","-611059051":"Please specify your preferred interval reality check in minutes:","-1876891031":"Currency","-11615110":"Turnover","-1370419052":"Profit / Loss","-437320982":"Session duration:","-3959715":"Current time:","-1534648620":"Your password has been changed","-596199727":"We will now redirect you to the login page.","-310434518":"The email input should not be empty.","-437918412":"No currency assigned to your account","-707550055":"We need this to make sure our service complies with laws and regulations in your country.","-280139767":"Set residence","-601615681":"Select theme","-1152511291":"Dark","-1428458509":"Light","-1976089791":"Your Deriv account has been unlinked from your {{social_identity_provider}} account. You can now log in to Deriv using your new email address and password.","-505449293":"Enter a new password for your Deriv account.","-703818088":"Only log in to your account at this secure link, never elsewhere.","-1235799308":"Fake links often contain the word that looks like \"Deriv\" but look out for these differences.","-2102997229":"Examples","-82488190":"I've read the above carefully.","-97775019":"Do not trust and give away your credentials on fake websites, ads or emails.","-2142491494":"OK, got it","-611136817":"Beware of fake links.","-1787820992":"Platforms","-1793883644":"Trade FX and CFDs on a customisable, easy-to-use trading platform.","-184713104":"Earn fixed payouts with options, or trade multipliers to amplify your gains with limited risk.","-1571775875":"Our flagship options and multipliers trading platform.","-1107320163":"Automate your trading, no coding needed.","-820028470":"Options & Multipliers","-895091803":"If you're looking for CFDs","-1447215751":"Not sure? Try this","-2338797":"<0>Maximise returns by <0>risking more than you put in.","-1682067341":"Earn <0>fixed returns by <0>risking only what you put in.","-1744351732":"Not sure where to start?","-943710774":"This complaints policy, which may change from time to time, applies to your account registered with {{legal_entity_name}}, having its registered office address at First Floor, Millennium House, Victoria Road, Douglas, Isle of Man, IM2 4RW, licensed and regulated respectively by (1) the Gambling Supervision Commission in the Isle of Man (current <0>licence issued on 31 August 2017) and (2) the Gambling Commission in the UK (<1>licence no. 39172).","-255056078":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name}}, having its registered office address at W Business Centre, Level 3, Triq Dun Karm, Birkirkara, BKR 9033, Malta, licensed and regulated by the Malta Gaming Authority in Malta for gambling products only, <0>licence no. MGA/B2C/102/2000, and for clients residing in the UK by the UK Gambling Commission (account number 39495).","-1941013000":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}}, {{legal_entity_name_fx}}, and {{legal_entity_name_v}}.","-594812204":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}}.","-1639808836":"If you are not satisfied with the outcome, you can escalate your complaint to the <0>Independent Betting Adjudication Service (IBAS) by filling the IBAS adjudication form. Please note that IBAS only deals with disputes that result from transactions.","-1505742956":"<0/><1/>You can also refer your dispute to the Malta Gaming Authority via the <2>Player Support Unit.","-1406192787":"If you are not satisfied with the outcome, you can escalate your complaint to the <0>Financial Commission.","-1776547326":"<0/><1/>If you reside in the UK and you are unhappy with our response you may escalate your complaint to the <2>Financial Ombudsman Service.","-2115348800":"1. Introduction","-744009523":"2. Fair treatment","-866831420":"3.1. Submission of a complaint","-1102904026":"3.2. Handling your complaint","-603378979":"3.3. Resolving your complaint","-697569974":"3.4. Your decision","-993572476":"<0>b.The Financial Commission has 5 days to acknowledge that your complaint was received and 14 days to answer the complaint through our Internal Dispute Resolution (IDR) procedure.","-1769159081":"<0>c.You will be able to file a complaint with the Financial Commission only if you are not satisfied with our decision or the decision wasn’t made within 14 days.","-58307244":"3. Determination phase","-356618087":"<0>b.The DRC may request additional information from you or us, who must then provide the requested information within 7 days.","-945718602":"<0>b.If you agree with a DRC decision, you will need to accept it within 14 days. If you do not respond to the DRC decision within 14 days, the complaint is considered closed.","-1500907666":"<0>d.If the decision is made in our favour, you must provide a release for us within 7 days of when the decision is made, and the complaint will be considered closed.","-429248139":"5. Disclaimer","-818926350":"The Financial Commission accepts appeals for 45 days following the date of the incident and only after the trader has tried to resolve the issue with the company directly.","-358055541":"Power up your trades with cool new tools","-29496115":"We've partnered with Acuity to give you a suite of intuitive trading tools for MT5 so you can keep track of market events and trends, free of charge!<0/><0/>","-648669944":"Download the Acuity suite and take advantage of the <1>Macroeconomic Calendar, Market Alerts, Research Terminal, and <1>Signal Centre Trade Ideas without leaving your MT5 terminal.<0/><0/>","-794294380":"This suite is only available for Windows, and is most recommended for financial assets.","-922510206":"Need help using Acuity?","-815070480":"Disclaimer: The trading services and information provided by Acuity should not be construed as a solicitation to invest and/or trade. Deriv does not offer investment advice. The past is not a guide to future performance, and strategies that have worked in the past may not work in the future.","-2111521813":"Download Acuity","-175369516":"Welcome to Deriv X","-939154994":"Welcome to Deriv MT5 dashboard","-1667427537":"Run Deriv X on your browser or download the mobile app","-305915794":"Run MT5 from your browser or download the MT5 app for your devices","-404375367":"Trade forex, basket indices, commodities, and cryptocurrencies with high leverage.","-243985555":"Trade CFDs on forex, stocks, stock indices, synthetic indices, cryptocurrencies, and commodities with leverage.","-2030107144":"Trade CFDs on forex, stocks & stock indices, commodities, and crypto.","-781132577":"Leverage","-1264604378":"Up to 1:1000","-637908996":"100%","-1420548257":"20+","-1373949478":"50+","-1686150678":"Up to 1:100","-1382029900":"70+","-1493055298":"90+","-1056874273":"25+ assets: synthetics","-223956356":"Leverage up to 1:1000","-1340877988":"Registered with the Financial Commission","-879901180":"170+ assets: forex (standard/micro), stocks, stock indices, commodities, basket indices, and cryptocurrencies","-1020615994":"Better spreads","-1789823174":"Regulated by the Vanuatu Financial Services Commission","-1040269115":"30+ assets: forex and commodities","-1372141447":"Straight-through processing","-318390366":"Regulated by the Labuan Financial Services Authority (Licence no. MB/18/0024)","-1556783479":"80+ assets: forex and cryptocurrencies","-875019707":"Leverage up to 1:100","-1752249490":"Malta Financial","-2068980956":"Leverage up to 1:30","-2098459063":"British Virgin Islands","-1434036215":"Demo Financial","-1416247163":"Financial STP","-1882063886":"Demo CFDs","-1347908717":"Demo Financial SVG","-1780324582":"SVG","-785625598":"Use these credentials to log in to your {{platform}} account on the website and mobile apps.","-997127433":"Change Password","-162753510":"Add real account","-1300381594":"Get Acuity trading tools","-860609405":"Password","-742647506":"Fund transfer","-1972393174":"Trade CFDs on our synthetics, baskets, and derived FX.","-1357917360":"Web terminal","-1454896285":"The MT5 desktop app is not supported by Windows XP, Windows 2003, and Windows Vista.","-810388996":"Download the Deriv X mobile app","-1727991510":"Scan the QR code to download the Deriv X Mobile App","-1302404116":"Maximum leverage","-511301450":"Indicates the availability of cryptocurrency trading on a particular account.","-2102641225":"At bank rollover, liquidity in the forex markets is reduced and may increase the spread and processing time for client orders. This happens around 21:00 GMT during daylight saving time, and 22:00 GMT non-daylight saving time.","-495364248":"Margin call and stop out level will change from time to time based on market condition.","-536189739":"To protect your portfolio from adverse market movements due to the market opening gap, we reserve the right to decrease leverage on all offered symbols for financial accounts before market close and increase it again after market open. Please make sure that you have enough funds available in your {{platform}} account to support your positions at all times.","-712681566":"Peer-to-peer exchange","-1267880283":"{{field_name}} is required","-2084509650":"{{field_name}} is not properly formatted.","-222283483":"Account opening reason*","-1779241732":"First line of address is not in a proper format.","-188222339":"This should not exceed {{max_number}} characters.","-1673422138":"State/Province is not in a proper format.","-1580554423":"Trade CFDs on our synthetic indices that simulate real-world market movements.","-1385484963":"Confirm to change your {{platform}} password","-1990902270":"This will change the password to all of your {{platform}} accounts.","-673424733":"Demo account","-1986258847":"Server maintenance starts at 01:00 GMT every Sunday, and this process may take up to 2 hours to complete. Service may be disrupted during this time.","-1199152768":"Please explore our other platforms.","-205020823":"Explore {{platform_name_trader}}","-1982499699":"Explore {{platform_name_dbot}}","-1567989247":"Submit your proof of identity and address","-184453418":"Enter your {{platform}} password","-393388362":"We’re reviewing your documents. This should take about 1 to 3 days.","-790488576":"Forgot password?","-926547017":"Enter your {{platform}} password to add a {{platform}} {{account}} {{jurisdiction_shortcode}} account.","-1190393389":"Enter your {{platform}} password to add a {{platform}} {{account}} account.","-2057918502":"Hint: You may have entered your Deriv password, which is different from your {{platform}} password.","-1769158315":"real","-700260448":"demo","-1936102840":"Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} account. ","-1570793523":"Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} account.","-1928229820":"Reset Deriv X investor password","-1087845020":"main","-1950683866":"investor","-1874242353":"Fund top up","-89838213":"You can top up your demo account with an additional <0> if your balance is <1> or less.","-1211122723":"{{ platform }} {{ account_title }} account","-78895143":"Current balance","-149993085":"New current balance","-490244964":"Forex, stocks, stock indices, cryptocurrencies","-1368041210":", synthetic indices","-877064208":"EUR","-1284221303":"You’ll get a warning, known as margin call, if your account balance drops down close to the stop out level.","-1848799829":"To understand stop out, first you need to learn about margin level, which is the ratio of your equity (the total balance you would have if you close all your positions at that point) to the margin you're using at the moment. If your margin level drops below our stop out level, your positions may be closed automatically to protect you from further losses.","-224051432":"24/7","-1591882610":"Synthetics","-70716111":"FX-majors (standard/micro lots), FX-minors, basket indices, commodities, cryptocurrencies, and stocks and stock indices","-1041629137":"FX-majors, FX-minors, FX-exotics, and cryptocurrencies","-287097947":"FX-majors (standard/micro lots), FX-minors, Commodities, Cryptocurrencies (except UK)","-1225160479":"Compare available accounts","-2042845290":"Your investor password has been changed.","-1882295407":"Your password has been changed.","-254497873":"Use this password to grant viewing access to another user. While they may view your trading account, they will not be able to trade or take any other actions.","-161656683":"Current investor password","-374736923":"New investor password","-1793894323":"Create or reset investor password","-1271218821":"Account added","-1576792859":"Proof of identity and address are required","-1931257307":"You will need to submit proof of identity","-2026018074":"Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (SVG) LLC (company no. 273 LLC 2020).","-162320753":"Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (BVI) Ltd, regulated by the British Virgin Islands Financial Services Commission (License no. SIBA/L/18/1114).","-1731304187":"Add your Deriv MT5 CFDs account under Deriv Investments (Europe) Limited regulated by the Malta Financial Services Authority (MFSA) (licence no. IS/70156).","-724308541":"Jurisdiction for your Deriv MT5 CFDs account","-479119833":"Choose a jurisdiction for your Deriv MT5 {{account_type}} account","-450424792":"You need a real account (fiat currency or cryptocurrency) in Deriv to create a real Deriv MT5 account.","-1760596315":"Create a Deriv account","-705682181":"Malta","-194969520":"Counterparty company","-1131400885":"Deriv Investments (Europe) Limited","-409563066":"Regulator","-2073451889":"Malta Financial Services Authority (MFSA) (Licence no. IS/70156)","-362324454":"Commodities","-543177967":"Stock indices","-1089385344":"Deriv (SVG) LLC","-2019617323":"Deriv (BVI) Ltd","-112814932":"Deriv (FX) Ltd","-1747078152":"-","-1510474851":"British Virgin Islands Financial Services Commission (licence no. SIBA/L/18/1114)","-199154602":"Vanuatu Financial Services Commission","-761250329":"Labuan Financial Services Authority (Licence no. MB/18/0024)","-251202291":"Broker","-81650212":"MetaTrader 5 web","-2123571162":"Download","-941636117":"MetaTrader 5 Linux app","-2019704014":"Scan the QR code to download Deriv MT5.","-648956272":"Use this password to log in to your Deriv X accounts on the web and mobile apps.","-1814308691":"Please click on the link in the email to change your {{platform}} password.","-1282933308":"Not {{barrier}}","-968190634":"Equals {{barrier}}","-1747377543":"Under {{barrier}}","-337314714":"days","-442488432":"day","-1572548510":"Ups & Downs","-71301554":"Ins & Outs","-952298801":"Look Backs","-763273340":"Digits","-1790089996":"NEW!","-1386326276":"Barrier is a required field.","-1418742026":"Higher barrier must be higher than lower barrier.","-92007689":"Lower barrier must be lower than higher barrier.","-1095538960":"Please enter the start time in the format \"HH:MM\".","-1975910372":"Minute must be between 0 and 59.","-866277689":"Expiry time cannot be in the past.","-1455298001":"Now","-256210543":"Trading is unavailable at this time.","-28115241":"{{platform_name_trader}} is not available for this account","-453920758":"Go to {{platform_name_mt5}} dashboard","-402175529":"History","-902712434":"Deal cancellation","-988484646":"Deal cancellation (executed)","-444882676":"Deal cancellation (active)","-13423018":"Reference ID","-1551639437":"No history","-1214703885":"You have yet to update either take profit or stop loss","-880722426":"Market is closed","-504849554":"It will reopen at","-59803288":"In the meantime, try our synthetic indices. They simulate real-market volatility and are open 24/7.","-1278109940":"See open markets","-694105443":"This market is closed","-439389714":"We’re working on it","-770929448":"Go to {{platform_name_smarttrader}}","-138538812":"Log in or create a free account to place a trade.","-2036388794":"Create free account","-1813736037":"No further trading is allowed on this contract type for the current trading session. For more info, refer to our <0>terms and conditions.","-590131162":"Stay on {{website_domain}}","-1444663817":"Go to Binary.com","-1526466612":"You’ve selected a trade type that is currently unsupported, but we’re working on it.","-1043795232":"Recent positions","-1572796316":"Purchase price:","-153220091":"{{display_value}} Tick","-802374032":"Hour","-2039780875":"Purchase confirmation","-1672470173":"Require confirmation before purchasing a contract","-1342661765":"Lock contract purchase buttons","-939764287":"Charts","-1738427539":"Purchase","-1392065699":"If you select \"Rise\", you win the payout if the exit spot is strictly higher than the entry spot.","-1762566006":"If you select \"Fall\", you win the payout if the exit spot is strictly lower than the entry spot.","-1435306976":"If you select \"Allow equals\", you win the payout if exit spot is higher than or equal to entry spot for \"Rise\". Similarly, you win the payout if exit spot is lower than or equal to entry spot for \"Fall\".","-1959473569":"If you select \"Lower\", you win the payout if the exit spot is strictly lower than the barrier.","-1350745673":"If the exit spot is equal to the barrier, you don't win the payout.","-2089488446":"If you select \"Ends Between\", you win the payout if the exit spot is strictly higher than the Low barrier AND strictly lower than the High barrier.","-1876950330":"If you select \"Ends Outside\", you win the payout if the exit spot is EITHER strictly higher than the High barrier, OR strictly lower than the Low barrier.","-546460677":"If the exit spot is equal to either the Low barrier or the High barrier, you don't win the payout.","-1812957362":"If you select \"Stays Between\", you win the payout if the market stays between (does not touch) either the High barrier or the Low barrier at any time during the contract period","-220379757":"If you select \"Goes Outside\", you win the payout if the market touches either the High barrier or the Low barrier at any time during the contract period.","-1281286610":"If you select \"Matches\", you will win the payout if the last digit of the last tick is the same as your prediction.","-1929209278":"If you select \"Even\", you will win the payout if the last digit of the last tick is an even number (i.e., 2, 4, 6, 8, or 0).","-2038865615":"If you select \"Odd\", you will win the payout if the last digit of the last tick is an odd number (i.e., 1, 3, 5, 7, or 9).","-1416078023":"If you select \"Touch\", you win the payout if the market touches the barrier at any time during the contract period.","-1272255095":"If the exit spot is equal to the barrier or the new barrier (if a reset occurs), you don't win the payout.","-231957809":"Win maximum payout if the exit spot is higher than or equal to the upper barrier.","-464144986":"Win maximum payout if the exit spot is lower than or equal to the lower barrier.","-1031456093":"Win up to maximum payout if exit spot is between lower and upper barrier, in proportion to the difference between upper barrier and exit spot.","-968162707":"No payout if exit spot is above or equal to the upper barrier.","-299450697":"If you select \"High Tick\", you win the payout if the selected tick is the highest among the next five ticks.","-705681870":"By purchasing the \"High-to-Low\" contract, you'll win the multiplier times the difference between the high and low over the duration of the contract.","-420387848":"The high is the highest point ever reached by the market during the contract period.","-1666375348":"By purchasing the \"High-to-Close\" contract, you'll win the multiplier times the difference between the high and close over the duration of the contract.","-2024955268":"If you select “Up”, you will earn a profit by closing your position when the market price is higher than the entry spot.","-1598433845":"If you select “Down”, you will earn a profit by closing your position when the market price is lower than the entry spot.","-1092777202":"The Stop-out level on the chart indicates the price at which your potential loss equals your entire stake. When the market price reaches this level, your position will be closed automatically. This ensures that your loss does not exceed the amount you paid to purchase the contract.","-885323297":"These are optional parameters for each position that you open:","-584696680":"If you select “Take profit” and specify an amount that you’d like to earn, your position will be closed automatically when your profit is more than or equals to this amount. Your profit may be more than the amount you entered depending on the market price at closing.","-178096090":"“Take profit” cannot be updated. You may update it only when “Deal cancellation” expires.","-206909651":"The entry spot is the market price when your contract is processed by our servers.","-149836494":"Your transaction reference number is {{transaction_id}}","-1382749084":"Go back to trading","-1231210510":"Tick","-1239477911":"second","-1585766960":"min","-1652791614":"mins","-1977959027":"hours","-8998663":"Digit: {{last_digit}} ","-1435392215":"About deal cancellation","-2017825013":"Got it","-1280319153":"Cancel your trade anytime within a chosen time-frame. Triggered automatically if your trade reaches the stop out level within the chosen time-frame.","-471757681":"Risk management","-843831637":"Stop loss","-771725194":"Deal Cancellation","-45873457":"NEW","-127118348":"Choose {{contract_type}}","-543478618":"Try checking your spelling or use a different term","-338707425":"Minimum duration is 1 day","-1003473648":"Duration: {{duration}} day","-700280380":"Deal cancel. fee","-741395299":"{{value}}","-1527492178":"Purchase Locked","-725375562":"You can lock/unlock the purchase button from the Settings menu","-1358367903":"Stake","-1513281069":"Barrier 2","-390994177":"Should be between {{min}} and {{max}}","-2055106024":"Toggle between advanced and simple duration settings","-1012793015":"End time","-2037881712":"Your contract will be closed automatically at the next available asset price on <0>.","-629549519":"Commission <0/>","-2131859340":"Stop out <0/>","-1686280757":"<0>{{commission_percentage}}% of (<1/> * {{multiplier}})","-1043117679":"When your current loss equals or exceeds {{stop_out_percentage}}% of your stake, your contract will be closed at the nearest available asset price.","-477998532":"Your contract is closed automatically when your loss is more than or equals to this amount.","-243332856":"Last digit stats for latest 1000 ticks for {{ underlying_name }}","-339236213":"Multiplier","-461955353":"purchase price","-172348735":"profit","-1624674721":"contract type","-1644154369":"entry spot time","-510792478":"entry spot price","-1974651308":"exit spot time","-1600267387":"exit spot price","-514917720":"barrier","-2004386410":"Win","-1072292603":"No Change","-1631669591":"string","-1768939692":"number","-795152863":"green","-1640576332":"blue","-804983649":"yellow","-94281841":"red","-1242470654":"Earned money","-1429914047":"Low","-1893628957":"Open Time","-1896106455":"10 minutes","-999492762":"15 minutes","-1978767852":"30 minutes","-293628675":"1 hour","-385604445":"2 hours","-1965813351":"4 hours","-525321833":"1 day","-1691868913":"Touch/No Touch","-151151292":"Asians","-1048378719":"Reset Call/Reset Put","-1282312809":"High/Low Ticks","-1237186896":"Only Ups/Only Downs","-529846150":"Seconds","-2035315547":"Low barrier","-1635771697":"middle","-1529389221":"Histogram","-1819860668":"MACD","-1750896349":"D'Alembert","-102980621":"The Oscar's Grind Strategy is a low-risk positive progression strategy that first appeared in 1965. By using this strategy, the size of your contract will increase after successful trades, but remains unchanged after unsuccessful trades.","-462715374":"Untitled Bot","-2002533437":"Custom function","-215053350":"with:","-1257232389":"Specify a parameter name:","-1885742588":"with: ","-188442606":"function {{ function_name }} {{ function_params }} {{ dummy }}","-313112159":"This block is similar to the one above, except that this returns a value. The returned value can be assigned to a variable of your choice.","-1783320173":"Prematurely returns a value within a function","-1485521724":"Conditional return","-1482801393":"return","-46453136":"get","-1838027177":"first","-1182568049":"Get list item","-1675454867":"This block gives you the value of a specific item in a list, given the position of the item. It can also remove the item from the list.","-381501912":"This block creates a list of items from an existing list, using specific item positions.","-426766796":"Get sub-list","-1679267387":"in list {{ input_list }} find {{ first_or_last }} occurence of item {{ input_value }}","-2087996855":"This block gives you the position of an item in a given list.","-422008824":"Checks if a given list is empty","-1343887675":"This block checks if a given list is empty. It returns “True” if the list is empty, “False” if otherwise.","-1548407578":"length of {{ input_list }}","-1786976254":"This block gives you the total number of items in a given list.","-2113424060":"create list with item {{ input_item }} repeated {{ number }} times","-1955149944":"Repeat an item","-434887204":"set","-197957473":"as","-851591741":"Set list item","-1874774866":"ascending","-1457178757":"Sorts the items in a given list","-350986785":"Sort list","-324118987":"make text from list","-155065324":"This block creates a list from a given string of text, splitting it with the given delimiter. It can also join items in a list into a string of text.","-459051222":"Create list from text","-977241741":"List Statement","-451425933":"{{ break_or_continue }} of loop","-323735484":"continue with next iteration","-1592513697":"Break out/continue","-713658317":"for each item {{ variable }} in list {{ input_list }}","-1825658540":"Iterates through a given list","-952264826":"repeat {{ number }} times","-887757135":"Repeat (2)","-1608672233":"This block is similar to the block above, except that the number of times it repeats is determined by a given variable.","-533154446":"Repeat (1)","-1059826179":"while","-1893063293":"until","-279445533":"Repeat While/Until","-1003706492":"User-defined variable","-359097473":"set {{ variable }} to {{ value }}","-1588521055":"Sets variable value","-980448436":"Set variable","-1538570345":"Get the last trade information and result, then trade again.","-222725327":"Here is where you can decide if your bot should continue trading.","-1638446329":"Result is {{ win_or_loss }}","-1968029988":"Last trade result","-1588406981":"You can check the result of the last trade with this block.","-1459154781":"Contract Details: {{ contract_detail }}","-1652241017":"Reads a selected property from contract details list","-2082345383":"These blocks transfer control to the Purchase conditions block.","-172574065":"This block will transfer the control back to the Purchase conditions block, enabling you to purchase another contract.","-403103225":"restart","-837044282":"Ask Price {{ contract_type }}","-1033917049":"This block returns the purchase price for the selected trade type.","-1863737684":"2. Purchase conditions","-228133740":"Specify contract type and purchase conditions.","-1291088318":"Purchase conditions","-1098726473":"This block is mandatory. Only one copy of this block is allowed. You can place the Purchase block (see below) here as well as conditional blocks to define your purchase conditions.","-1777988407":"Payout {{ contract_type }}","-511116341":"This block returns the potential payout for the selected trade type","-1943211857":"Potential payout","-813464969":"buy","-53668380":"True if active contract can be sold before expiration at current market price","-43337012":"Sell profit/loss","-2112866691":"Returns the profit/loss from selling at market price","-2132417588":"This block gives you the potential profit or loss if you decide to sell your contract.","-1360483055":"set {{ variable }} to Bollinger Bands {{ band_type }} {{ dummy }}","-20542296":"Calculates Bollinger Bands (BB) from a list with a period","-1951109427":"Bollinger Bands (BB)","-857226052":"BB is a technical analysis indicator that’s commonly used by traders. The idea behind BB is that the market price stays within the upper and lower bands for 95% of the time. The bands are the standard deviations of the market price, while the line in the middle is a simple moving average line. If the price reaches either the upper or lower band, there’s a possibility of a trend reversal.","-325196350":"set {{ variable }} to Bollinger Bands Array {{ band_type }} {{ dummy }}","-199689794":"Similar to BB. This block gives you a choice of returning the values of either the lower band, higher band, or the SMA line in the middle.","-920690791":"Calculates Exponential Moving Average (EMA) from a list with a period","-960641587":"EMA is a type of moving average that places more significance on the most recent data points. It’s also known as the exponentially weighted moving average. EMA is different from SMA in that it reacts more significantly to recent price changes.","-1557584784":"set {{ variable }} to Exponential Moving Average Array {{ dummy }}","-32333344":"Calculates Moving Average Convergence Divergence (MACD) from a list","-628573413":"MACD is calculated by subtracting the long-term EMA (26 periods) from the short-term EMA (12 periods). If the short-term EMA is greater or lower than the long-term EMA than there’s a possibility of a trend reversal.","-1133676960":"Fast EMA Period {{ input_number }}","-883166598":"Period {{ input_period }}","-450311772":"set {{ variable }} to Relative Strength Index {{ dummy }}","-1861493523":"Calculates Relative Strength Index (RSI) list from a list of values with a period","-880048629":"Calculates Simple Moving Average (SMA) from a list with a period","-1150972084":"Market direction","-276935417":"This block is used to determine if the market price moves in the selected direction or not. It gives you a value of “True” or “False”.","-764931948":"in candle list get # from end {{ input_number }}","-924607337":"Returns the last digit of the latest tick","-560033550":"Returns the list of last digits of 1000 recent tick values","-74062476":"Make a List of {{ candle_property }} values in candles list with interval: {{ candle_interval_type }}","-1556495906":"Returns a list of specific values from a candle list according to selected time interval","-166816850":"Create a list of candle values (1)","-1261436901":"Candles List","-1174859923":"Read the selected candle value","-1972165119":"Read candle value (1)","-1956100732":"You can use this block to analyze the ticks, regardless of your trades","-443243232":"The content of this block is called on every tick. Place this block outside of any root block.","-641399277":"Last Tick","-1628954567":"Returns the value of the last tick","-1332756793":"This block gives you the value of the last tick.","-2134440920":"Last Tick String","-1466340125":"Tick value","-467913286":"Tick value Description","-785831237":"This block gives you a list of the last 1000 tick values.","-1546430304":"Tick List String Description","-1788626968":"Returns \"True\" if the given candle is black","-436010611":"Make a list of {{ candle_property }} values from candles list {{ candle_list }}","-1384340453":"Returns a list of specific values from a given candle list","-584859539":"Create a list of candle values (2)","-2010558323":"Read {{ candle_property }} value in candle {{ input_candle }}","-2846417":"This block gives you the selected candle value.","-1587644990":"Read candle value (2)","-1202212732":"This block returns account balance","-1737837036":"Account balance","-1963883840":"Put your blocks in here to prevent them from being removed","-1284013334":"Use this block if you want some instructions to be ignored when your bot runs. Instructions within this block won’t be executed.","-1217253851":"Log","-1987568069":"Warn","-104925654":"Console","-1956819233":"This block displays messages in the developer's console with an input that can be either a string of text, a number, boolean, or an array of data.","-1450461842":"Load block from URL: {{ input_url }}","-1088614441":"Loads blocks from URL","-1747943728":"Loads from URL","-2105753391":"Notify Telegram {{ dummy }} Access Token: {{ input_access_token }} Chat ID: {{ input_chat_id }} Message: {{ input_message }}","-1008209188":"Sends a message to Telegram","-1218671372":"Displays a notification and optionally play selected sound","-2099284639":"This block gives you the total profit/loss of your trading strategy since your bot started running. You can reset this by clicking “Clear stats” on the Transaction Stats window, or by refreshing this page in your browser.","-683825404":"Total Profit String","-718220730":"Total Profit String Description","-1861858493":"Number of runs","-264195345":"Returns the number of runs","-303451917":"This block gives you the total number of times your bot has run. You can reset this by clicking “Clear stats” on the Transaction Stats window, or by refreshing this page in your browser.","-2132861129":"Conversion Helper Block","-74095551":"Seconds Since Epoch","-15528039":"Returns the number of seconds since January 1st, 1970","-729807788":"This block returns the number of seconds since January 1st, 1970.","-1370107306":"{{ dummy }} {{ stack_input }} Run after {{ number }} second(s)","-558838192":"Delayed run","-1975250999":"This block converts the number of seconds since the Unix Epoch (1 January 1970) into a string of text representing the date and time.","-702370957":"Convert to date/time","-982729677":"Convert to timestamp","-311268215":"This block converts a string of text that represents the date and time into seconds since the Unix Epoch (1 January 1970). The time and time zone offset are optional. Example: 2019-01-01 21:03:45 GMT+0800 will be converted to 1546347825.","-1797602591":"Stop Loss: {{ currency }} {{ stop_loss }}","-1214929127":"Stop loss must be a positive number.","-780745489":"If the contract type is “Both”, then the Purchase Conditions should include both Rise and Fall using the “Conditional Block\"","-2142851225":"Multiplier trade options","-625636913":"Amount must be a positive number.","-1466383897":"Duration: {{ duration_unit }} {{ duration_value }}","-440702280":"Trade options","-1193894978":"Define your trade options such as duration and stake. Some options are only applicable for certain trade types.","-46523443":"Duration value is not allowed. To run the bot, please enter a value between {{min}} to {{max}}.","-1483427522":"Trade Type: {{ trade_type_category }} > {{ trade_type }}","-323348124":"1. Trade parameters","-1671903503":"Run once at start:","-783173909":"Trade options:","-376956832":"Here is where you define the parameters of your contract.","-1244007240":"if {{ condition }} then","-1577206704":"else if","-33796979":"true","-1434883449":"This is a single block that returns a boolean value, either true or false.","-1946404450":"Compares two values","-979918560":"This block converts the boolean value (true or false) to its opposite.","-2047257743":"Null","-1274387519":"Performs selected logic operation","-766386234":"This block performs the \"AND\" or the \"OR\" logic operation.","-790995537":"test {{ condition }}","-1860211657":"if false {{ return_value }}","-1643760249":"This block tests if a given value is true or false and returns “True” or “False” accordingly.","-1551875333":"Test value","-52486882":"Arithmetical operations","-1010436425":"This block adds the given number to the selected variable","-999773703":"Change variable","-1272091683":"Mathematical constants","-1396629894":"constrain {{ number }} low {{ low_number }} high {{ high_number }}","-425224412":"This block constrains a given number so that it is within a set range.","-2072551067":"Constrain within a range","-43523220":"remainder of {{ number1 }} ÷ {{ number2 }}","-1291857083":"Returns the remainder after a division","-592154850":"Remainder after division","-736665095":"Returns the remainder after the division of the given numbers.","-1266992960":"Math Number Description","-77191651":"{{ number }} is {{ type }}","-817881230":"even","-142319891":"odd","-1000789681":"whole","-1735674752":"Test a number","-1017805068":"This block tests a given number according to the selection and it returns a value of “True” or “False”. Available options: Even, Odd, Prime, Whole, Positive, Negative, Divisible","-1858332062":"Number","-1053492479":"Enter an integer or fractional number into this block. Please use `.` as a decimal separator for fractional numbers.","-927097011":"sum","-1653202295":"max","-1555878023":"average","-1748351061":"mode","-992067330":"Aggregate operations","-1691561447":"This block gives you a random fraction between 0.0 to 1.0","-523625686":"Random fraction number","-933024508":"Rounds a given number to an integer","-1656927862":"This block rounds a given number according to the selection: round, round up, round down.","-1495304618":"absolute","-61210477":"Operations on a given number","-181644914":"This block performs the selected operations to a given number.","-840732999":"to {{ variable }} append text {{ input_text }}","-1469497908":"Appends a given text to a variable","-1851366276":"Text Append","-1666316828":"Appends a given text to a variable.","-1902332770":"Transform {{ input_text }} to {{ transform_type }}","-1489004405":"Title Case","-904432685":"Changes text case accordingly","-882381096":"letter #","-1027605069":"letter # from end","-2066990284":"random letter","-337089610":"in text {{ input_text1 }} find {{ first_or_last }} occurence of text {{ input_text2 }}","-1966694141":"Searches through a string of text for a specific occurrence of a given character or word, and returns the position.","-697543841":"Text join","-141160667":"length of {{ input_text }}","-1133072029":"Text String Length","-1109723338":"print {{ input_text }}","-736668830":"Print","-1821552998":"trim spaces from {{ side }} of {{ input_text }}","-801766026":"right side","-474779821":"Trims spaces","-1219239717":"One or more mandatory blocks are missing from your workspace. Please add the required block(s) and then try again.","-250761331":"One or more mandatory blocks are disabled in your workspace. Please enable the required block(s) and then try again.","-1687036846":"Download block","-1266781295":"Expand","-894560707":"function","-1867119688":"Duplicate","-610728049":"Rearrange Vertically","-2033146714":"Collapse All Blocks","-958601558":"Delete Block","-1193267384":"Detach Block","-1750478127":"New variable name","-1061878051":"Y","-2047029150":"Unable to load the block file.","-1410769167":"Target must be an XML file","-609157479":"This URL is already loaded","-241945454":"Proposals are not ready","-1087890592":"Maximum loss amount reached","-1030545878":"You are rate limited for: {{ message_type }}, retrying in {{ delay }}s (ID: {{ request }})","-490766438":"You are disconnected, retrying in {{ delay }}s","-1389975609":"unknown","-1900515692":"Duration must be a positive integer","-245297595":"Please login","-1445046468":"Given candle is not valid","-1891622945":"{{hourPast}}h ago","-1723202824":"Please grant permission to view and manage Google Drive folders created with Binary Bot","-210953314":"There was an error retrieving data from Google Drive","-1521930919":"Select a Binary Bot strategy","-845301264":"There was an error listing files from Google Drive","-1452908801":"There was an error retrieving files from Google Drive","-232617824":"There was an error processing your request","-1800672151":"GBP Index","-1904030160":"Transaction performed by (App ID: {{app_id}})","-513103225":"Transaction time","-2066666313":"Credit/Debit","-2140412463":"Buy price","-1981004241":"Sell time","-600828210":"Indicative profit/loss","-706219815":"Indicative price","-3423966":"Take profit<0 />Stop loss","-2082644096":"Current stake","-538215347":"Net deposits","-280147477":"All transactions","-137444201":"Buy","-130601012":"Please select duration","-232254547":"Custom","-1577570698":"Start date","-1251526905":"Last 7 days","-360975483":"You've made no transactions of this type during this period.","-2092611555":"Sorry, this app is unavailable in your current location.","-1488537825":"If you have an account, log in to continue.","-555592125":"Unfortunately, trading options isn't possible in your country","-1571816573":"Sorry, trading is unavailable in your current location.","-1603581277":"minutes","-922253974":"Rise/Fall","-1361254291":"Higher/Lower","-335816381":"Ends In/Ends Out","-1789807039":"Asian Up/Asian Down","-330437517":"Matches/Differs","-657360193":"Over/Under","-558031309":"High Tick/Low Tick","-1714959941":"This chart display is not ideal for tick contracts","-1254554534":"Please change the chart duration to tick for a better trading experience.","-1658230823":"Contract was sold for <0 />.","-1905867404":"Contract cancelled"} \ No newline at end of file +{"0":"","1014140":"You may also call <0>+447723580049 to place your complaint.","3125515":"Your Deriv MT5 password is for logging in to your Deriv MT5 accounts on the desktop, web, and mobile apps.","3215342":"Last 30 days","7100308":"Hour must be between 0 and 23.","11539750":"set {{ variable }} to Relative Strength Index Array {{ dummy }}","11872052":"Yes, I'll come back later","14365404":"Request failed for: {{ message_type }}, retrying in {{ delay }}s","15377251":"Profit amount: {{profit}}","17843034":"Check proof of identity document verification status","19424289":"Username","19552684":"USD Basket","21035405":"Please tell us why you’re leaving. (Select up to {{ allowed_reasons }} reasons.)","24900606":"Gold Basket","25854018":"This block displays messages in the developer’s console with an input that can be either a string of text, a number, boolean, or an array of data.","26566655":"Summary","26596220":"Finance","27582767":"{{amount}} {{currency}}","27830635":"Deriv (V) Ltd","28581045":"Add a real MT5 account","30801950":"Your account will be opened with {{legal_entity_name}}, regulated by the Malta Gaming Authority, and will be subject to the laws of Malta.","33433576":"Please use an e-wallet to withdraw your funds.","35089987":"Upload the front and back of your driving licence.","39720204":"AUD Index","41737927":"Thank you","44877997":"Residence permit","45453595":"Binary Coin","45941470":"Where would you like to start?","46523711":"Your proof of identity is verified","49963458":"Choose an option","50200731":"FX majors (standard/micro lots), FX minors, basket indices, commodities, and cryptocurrencies","54185751":"Less than $100,000","55340304":"Keep your current contract?","55916349":"All","58254854":"Scopes","59169515":"If you select \"Asian Rise\", you will win the payout if the last tick is higher than the average of the ticks.","59341501":"Unrecognized file format","59662816":"Stated limits are subject to change without prior notice.","62748351":"List Length","63869411":"This block tests a given number according to the selection","64402604":"Check transfer information","65185694":"Fiat onramp","65982042":"Total","66519591":"Investor password","66557535":"Cancel your trade at any time within a specified time frame.","68885999":"Repeats the previous trade when an error is encountered.","69005593":"The example below restarts trading after 30 or more seconds after 1 minute candle was started.","71016232":"OMG/USD","71445658":"Open","71563326":"A fast and secure fiat-to-crypto payment service. Deposit cryptocurrencies from anywhere in the world using your credit/debit cards and bank transfers.","71853457":"$100,001 - $500,000","72500774":"Please fill in Tax residence.","73086872":"You have self-excluded from trading","73326375":"The low is the lowest point ever reached by the market during the contract period.","74963864":"Under","76916358":"You have reached the withdrawal limit.<0/>Please upload your proof of identity and address to lift the limit to continue your withdrawal.","80881349":"Get an Options account","81450871":"We couldn’t find that page","82839270":"Upload the page of your passport that contains your photo.","83202647":"Collapse Block","85343079":"Financial assessment","85359122":"40 or more","85389154":"Steps required to continue verification on your mobile","89062902":"Trade on MT5","90266322":"2. Start a chat with your newly created Telegram bot and make sure to send it some messages before proceeding to the next step. (e.g. Hello Bot!)","91993812":"The Martingale Strategy is a classic trading technique that has been used for more than a hundred years, popularised by the French mathematician Paul Pierre Levy in the 18th century.","96381225":"ID verification failed","98473502":"We’re not obliged to conduct an appropriateness test, nor provide you with any risk warnings.","98972777":"random item","100239694":"Upload front of card from your computer","102226908":"Field cannot be empty","108916570":"Duration: {{duration}} days","109073671":"Please use an e-wallet that you have used for deposits previously. Ensure the e-wallet supports withdrawal. See the list of e-wallets that support withdrawals <0>here.","111215238":"Move away from direct light","111718006":"End date","111931529":"Max. total stake over 7 days","113378532":"ETH/USD","113884303":"German Index","115032488":"Buy price and P/L","116005488":"Indicators","117318539":"Password should have lower and uppercase English letters with numbers.","119261701":"Prediction:","119446122":"Contract type is not selected","120340777":"Complete your personal details","123454801":"{{withdraw_amount}} {{currency_symbol}}","124625402":"of","124723298":"Upload a proof of address to verify your address","125443840":"6. Restart last trade on error","127307725":"A politically exposed person (PEP) is someone appointed with a prominent public position. Close associates and family members of a PEP are also considered to be PEPs.","130567238":"THEN","132596476":"In providing our services to you, we are required to ask you for some information to assess if a given product or service is appropriate for you and whether you have the experience and knowledge to understand the risks involved.<0/><0/>","132689841":"Trade on web terminal","133523018":"Please go to the Deposit page to get an address.","133536621":"and","138055021":"Synthetic indices","139454343":"Confirm my limits","141265840":"Funds transfer information","141626595":"Make sure your device has a working camera","142050447":"set {{ variable }} to create text with","142390699":"Connected to your mobile","143970826":"Payment problems?","145146541":"Our accounts and services are unavailable for the Jersey postal code","145736466":"Take a selfie","150486954":"Token name","151344063":"The exit spot is the market price when the contract is closed.","151646545":"Unable to read file {{name}}","152415091":"Math","152524253":"Trade the world’s markets with our popular user-friendly platform.","157593038":"random integer from {{ start_number }} to {{ end_number }}","160746023":"Tether as an Omni token (USDT) is a version of Tether that is hosted on the Omni layer on the Bitcoin blockchain.","160863687":"Camera not detected","164112826":"This block allows you to load blocks from a URL if you have them stored on a remote server, and they will be loaded only when your bot runs.","164564432":"Deposits are temporarily unavailable due to system maintenance. You can make your deposits when the maintenance is complete.","165294347":"Please set your country of residence in your account settings to access the cashier.","165312615":"Continue on phone","165682516":"If you don’t mind sharing, which other trading platforms do you use?","170185684":"Ignore","170244199":"I’m closing my account for other reasons.","171307423":"Recovery","171579918":"Go to Self-exclusion","171638706":"Variables","173991459":"We’re sending your request to the blockchain.","176319758":"Max. total stake over 30 days","176654019":"$100,000 - $250,000","177099483":"Your address verification is pending, and we’ve placed some restrictions on your account. The restrictions will be lifted once your address is verified.","178413314":"First name should be between 2 and 50 characters.","179083332":"Date","181881956":"Contract Type: {{ contract_type }}","184024288":"lower case","189705706":"This block uses the variable \"i\" to control the iterations. With each iteration, the value of \"i\" is determined by the items in a given list.","189759358":"Creates a list by repeating a given item","191372501":"Accumulation of Income/Savings","192436105":"No need for symbols, digits, or uppercase letters","192573933":"Verification complete","195972178":"Get character","196998347":"We hold customer funds in bank accounts separate from our operational accounts which would not, in the event of insolvency, form part of the company's assets. This meets the <0>Gambling Commission's requirements for the segregation of customer funds at the level: <1>medium protection.","197190401":"Expiry date","201091938":"30 days","203179929":"<0>You can open this account once your submitted documents have been verified.","203271702":"Try again","204797764":"Transfer to client","204863103":"Exit time","206010672":"Delete {{ delete_count }} Blocks","207824122":"Please withdraw your funds from the following Deriv account(s):","209533725":"You’ve transferred {{amount}} {{currency}}","210385770":"If you have an active account, please log in to continue. Otherwise, please sign up.","211224838":"Investment","211461880":"Common names and surnames are easy to guess","211847965":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable withdrawals.","216650710":"You are using a demo account","217403651":"St. Vincent & Grenadines","217504255":"Financial assessment submitted successfully","218441288":"Identity card number","220014242":"Upload a selfie from your computer","220186645":"Text Is empty","220232017":"demo CFDs","222468543":"The amount that you may add to your stake if you’re losing a trade.","223120514":"In this example, each point of the SMA line is an arithmetic average of close prices for the last 50 days.","223607908":"Last digit stats for latest 1000 ticks for {{underlying_name}}","224650827":"IOT/USD","224929714":"Virtual events based bets in the UK and the Isle of Man are offered by {{legal_entity_name}}, Millennium House, Level 1, Victoria Road, Douglas IM2 4RW, Isle of Man, licensed and regulated in Great Britain by the Gambling Commission under <0>account no. 39172 and by the Gambling Supervision Commission in the Isle of Man (<1>view licence).","225887649":"This block is mandatory. It's added to your strategy by default when you create new strategy. You can not add more than one copy of this block to the canvas.","227591929":"To timestamp {{ input_datetime }} {{ dummy }}","227903202":"We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts.","228079844":"Click here to upload","228521812":"Tests whether a string of text is empty. Returns a boolean value (true or false).","229355215":"Trade on {{platform_name_dbot}}","233500222":"- High: the highest price","235583807":"SMA is a frequently used indicator in technical analysis. It calculates the average market price over a specified period, and is usually used to identify market trend direction: up or down. For example, if the SMA is moving upwards, it means the market trend is up. ","236642001":"Journal","238496287":"Leverage trading is high-risk, so it's a good idea to use risk management features such as stop loss. Stop loss allows you to","240247367":"Profit table","243614144":"This is only available for existing clients.","245005091":"lower","245187862":"The DRC will make a <0>decision on the complaint (please note that the DRC mentions no timeframe for announcing its decision).","245812353":"if {{ condition }} return {{ value }}","247418415":"Gaming trading can become a real addiction, as can any other activity pushed to its limits. To avoid the danger of such an addiction, we provide a reality-check that gives you a summary of your trades and accounts on a regular basis.","248565468":"Check your {{ identifier_title }} account email and click the link in the email to proceed.","248909149":"Send a secure link to your phone","249908265":"Are you a citizen of {{- residence}}?","251134918":"Account Information","251322536":"Deriv EZ accounts","251445658":"Dark theme","251882697":"Thank you! Your response has been recorded into our system.<0/><0/>Please click ‘OK’ to continue.","254912581":"This block is similar to EMA, except that it gives you the entire EMA line based on the input list and the given period.","256031314":"Cash Business","256602726":"If you close your account:","258310842":"Workspace","258448370":"MT5","258912192":"Trading assessment","260069181":"An error occured while trying to load the URL","260086036":"Place blocks here to perform tasks once when your bot starts running.","260361841":"Tax Identification Number can't be longer than 25 characters.","264976398":"3. 'Error' displays a message in red to highlight something that needs to be resolved immediately.","265644304":"Trade types","267992618":"The platforms lack key features or functionality.","268940240":"Your balance ({{format_balance}} {{currency}}) is less than the current minimum withdrawal allowed ({{format_min_withdraw_amount}} {{currency}}). Please top up your account to continue with your withdrawal.","269322978":"Deposit with your local currency via peer-to-peer exchange with fellow traders in your country.","269607721":"Upload","270339490":"If you select \"Over\", you will win the payout if the last digit of the last tick is greater than your prediction.","270610771":"In this example, the open price of a candle is assigned to the variable \"candle_open_price\".","270712176":"descending","270780527":"You've reached the limit for uploading your documents.","272042258":"When you set your limits, they will be aggregated across all your account types in {{platform_name_trader}}, {{platform_name_dbot}}, {{platform_name_smarttrader}} and {{platform_name_bbot}} on Deriv. For example, the losses made on all four platforms will add up and be counted towards the loss limit you set.","272179372":"This block is commonly used to adjust the parameters of your next trade and to implement stop loss/take profit logic.","273350342":"Copy and paste the token into the app.","273728315":"Should not be 0 or empty","274268819":"Volatility 100 Index","275116637":"Deriv X","277469417":"Exclude time cannot be for more than five years.","278684544":"get sub-list from # from end","282319001":"Check your image","282564053":"Next, we'll need your proof of address.","283830551":"Your address doesn’t match your profile","283986166":"Self-exclusion on the website only applies to your {{brand_website_name}} account and does not include other companies or websites.","284527272":"antimode","284772879":"Contract","287934290":"Are you sure you want to cancel this transaction?","289898640":"TERMS OF USE","291817757":"Go to our Deriv community and learn about APIs, API tokens, ways to use Deriv APIs, and more.","292491635":"If you select “Stop loss” and specify an amount to limit your loss, your position will be closed automatically when your loss is more than or equals to this amount. Your loss may be more than the amount you entered depending on the market price at closing.","292526130":"Tick and candle analysis","292589175":"This will display the SMA for the specified period, using a candle list.","292887559":"Transfer to {{selected_value}} is not allowed, Please choose another account from dropdown","294305803":"Manage account settings","294335229":"Sell at market price","300762428":"Swiss Index","303959005":"Sell Price:","304309961":"We're reviewing your withdrawal request. You may still cancel this transaction if you wish. Once we start processing, you won't be able to cancel.","310234308":"Close all your positions.","312142140":"Save new limits?","312300092":"Trims the spaces within a given string or text.","313298169":"Our cashier is temporarily down due to system maintenance. You can access the Cashier in a few minutes when the maintenance is complete.","313741895":"This block returns “True” if the last candle is black. It can be placed anywhere on the canvas except within the Trade parameters root block.","315306603":"You have an account that do not have currency assigned. Please choose a currency to trade with this account.","316694303":"Is candle black?","317601768":"Themes","318865860":"close","318984807":"This block repeats the instructions contained within for a specific number of times.","323179846":"The time interval for each candle can be set from one minute to one day.","323209316":"Select a Deriv Bot Strategy","325662004":"Expand Block","325763347":"result","326770937":"Withdraw {{currency}} ({{currency_symbol}}) to your wallet","327534692":"Duration value is not allowed. To run the bot, please enter {{min}}.","328539132":"Repeats inside instructions specified number of times","329404045":"<0>Switch to your real account<1> to create a {{platform}} {{account_title}} account.","333456603":"Withdrawal limits","334680754":"Switch to your real account to create a Deriv MT5 account","334942497":"Buy time","335040248":"About us","337023006":"Start time cannot be in the past.","339449279":"Remaining time","339610914":"Spread Up/Spread Down","339879944":"GBP/USD","340807218":"Description not found.","342181776":"Cancel transaction","343873723":"This block displays a message. You can specify the color of the message and choose from 6 different sound options.","344418897":"These trading limits and self-exclusion help you control the amount of money and time you spend on {{brand_website_name}} and exercise <0>responsible trading.","345320063":"Invalid timestamp","346994074":"Selecting this will onboard you through Deriv (SVG) LLC (company no. 273 LLC 2020)","347029309":"Forex: standard/micro","347039138":"Iterate (2)","348951052":"Your cashier is currently locked","349047911":"Over","349110642":"<0>{{payment_agent}}<1>'s contact details","351744408":"Tests if a given text string is empty","352363702":"You may see links to websites with a fake Deriv login page where you’ll get scammed for your money.","353731490":"Job done","354945172":"Submit document","357477280":"No face found","359053005":"Please enter a token name.","359649435":"Given candle list is not valid","359809970":"This block gives you the selected candle value from a list of candles within the selected time interval. You can choose from open price, close price, high price, low price, and open time.","360224937":"Logic","362772494":"This should not exceed {{max}} characters.","363576009":"- High price: the highest price","363738790":"Browser","363990763":"Sell price:","368160866":"in list","371151609":"Last used","371710104":"This scope will allow third-party apps to buy and sell contracts for you, renew your expired purchases, and top up your demo accounts.","372291654":"Exclude time must be after today.","372645383":"True if the market direction matches the selection","373021397":"random","373306660":"{{label}} is required.","373495360":"This block returns the entire SMA line, containing a list of all values for a given period.","374164629":"Trade on Deriv MT5, the all-in-one FX and CFD trading platform.","374537470":"No results for \"{{text}}\"","375714803":"Deal Cancellation Error","379523479":"To avoid loss of funds, do not share tokens with the Admin scope with unauthorised parties.","379730150":"US Tech Index","380606668":"tick","380694312":"Maximum consecutive trades","382781785":"Your contract is closed automatically when your profit is more than or equals to this amount.","384303768":"This block returns \"True\" if the last candle is black. It can be placed anywhere on the canvas except within the Trade parameters root block.","386278304":"Install the {{platform_name_trader}} web app","386502387":"Bot is not running","389923099":"Zoom in","390647540":"Real account","390890891":"Last quarter","391915203":"Hedging","392582370":"Fall Equals","396418990":"Offline","396961806":"We do not support Polygon (Matic), to deposit please use only Ethereum ({{token}}).","398816980":"Launch {{platform_name_trader}} in seconds the next time you want to trade.","401339495":"Verify address","402343402":"Due to an issue on our server, some of your {{platform}} accounts are unavailable at the moment. Please bear with us and thank you for your patience.","403456289":"The formula for SMA is:","404743411":"Total deposits","406359555":"Contract details","406497323":"Sell your active contract if needed (optional)","411482865":"Add {{deriv_account}} account","412433839":"I agree to the <0>terms and conditions.","413594348":"Only letters, numbers, space, hyphen, period, and forward slash are allowed.","417714706":"If your margin level drops below our stop out level, your positions may be closed automatically to protect you from further losses.","417864079":"You’ll not be able to change currency once you have made a deposit.","418265501":"Demo Derived","420072489":"CFD trading frequency","422055502":"From","424897068":"Do you understand that you could potentially lose 100% of the money you use to trade?","426031496":"Stop","427134581":"Try using another file type.","427617266":"Bitcoin","428709688":"Your preferred time interval between each report:","430975601":"Town/City is not in a proper format.","432508385":"Take Profit: {{ currency }} {{ take_profit }}","432519573":"Document uploaded","433348384":"Real accounts are not available to politically exposed persons (PEPs).","433616983":"2. Investigation phase","434548438":"Highlight function definition","434896834":"Custom functions","436364528":"Your account will be opened with {{legal_entity_name}}, and will be subject to the laws of Saint Vincent and the Grenadines.","437138731":"Create a new {{platform}} password","437453244":"Choose your preferred cryptocurrency","437485293":"File type not supported","437904704":"Maximum open positions","438067535":"Over $500,000","442520703":"$250,001 - $500,000","443559872":"Financial SVG","444484637":"Logic negation","445419365":"1 - 2 years","450983288":"Your deposit is unsuccessful due to an error on the blockchain. Please contact your crypto wallet service provider for more info.","451852761":"Continue on your phone","452054360":"Similar to RSI, this block gives you a list of values for each entry in the input list.","453175851":"Your MT5 Financial STP account will be opened through {{legal_entity_name}}. All trading in this account is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA). None of your other accounts, including your Deriv account, is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA).","453409608":"Your profit is the percentage change in market price times your stake and the multiplier of your choice.","454593402":"2. Please upload one of the following:","456746157":"Grant access to your camera from your browser settings","457020083":"It’ll take longer to verify you if we can’t read it","457494524":"1. From the block library, enter a name for the new variable and click Create.","459817765":"Pending","460975214":"Complete your Appropriateness Test","461795838":"Please contact us via live chat to unlock it.","462079779":"Resale not offered","462461595":"Explore Trader's hub","463361726":"Select an item","465993338":"Oscar's Grind","466369320":"Your gross profit is the percentage change in market price times your stake and the multiplier chosen here.","467839232":"I trade forex CFDs and other complex financial instruments regularly on other platforms.","473154195":"Settings","473863031":"Pending proof of address review","474306498":"We’re sorry to see you leave. Your account is now closed.","475492878":"Try Synthetic Indices","476023405":"Didn't receive the email?","477557241":"Remote blocks to load must be a collection.","478280278":"This block displays a dialog box that uses a customised message to prompt for an input. The input can be either a string of text or a number and can be assigned to a variable. When the dialog box is displayed, your strategy is paused and will only resume after you enter a response and click \"OK\".","479420576":"Tertiary","481276888":"Goes Outside","483279638":"Assessment Completed<0/><0/>","483591040":"Delete all {{ delete_count }} blocks?","485379166":"View transactions","487239607":"Converts a given True or False to the opposite value","488150742":"Resend email","489768502":"Change investor password","491603904":"Unsupported browser","492198410":"Make sure everything is clear","496680295":"Choose country","497518317":"Function that returns a value","498144457":"A recent utility bill (e.g. electricity, water or gas)","498562439":"or","499522484":"1. for \"string\": 1325.68 USD","500855527":"Chief Executives, Senior Officials and Legislators","500920471":"This block performs arithmetic operations between two numbers.","501401157":"You are only allowed to make deposits","501537611":"*Maximum number of open positions","502041595":"This block gives you a specific candle from within the selected time interval.","503137339":"Payout limit","505793554":"last letter","508390614":"Demo Financial STP","510815408":"Letters, numbers, spaces, hyphens only","514031715":"list {{ input_list }} is empty","514776243":"Your {{account_type}} password has been changed.","514948272":"Copy link","518955798":"7. Run Once at Start","520136698":"Boom 500 Index","521872670":"item","522283618":"Digital options trading experience","522703281":"divisible by","523123321":"- 10 to the power of a given number","527329988":"This is a top-100 common password","529056539":"Options","529597350":"If you had any open positions, we have closed them and refunded you.","530953413":"Authorised applications","531114081":"3. Contract Type","531675669":"Euro","535041346":"Max. total stake per day","538228086":"Close-Low","541650045":"Manage {{platform}} password","541700024":"First, enter your driving licence number and the expiry date.","542038694":"Only letters, numbers, space, underscore, and hyphen are allowed for {{label}}.","542305026":"You must also submit a proof of identity.","543413346":"You have no open positions for this asset. To view other open positions, click Go to Reports","543915570":"Forex, stocks, stock indices, cryptocurrencies, synthetic indices","545476424":"Total withdrawals","546534357":"If you select “Deal cancellation”, you’ll be able to cancel your trade within a chosen time frame should the market move against your favour. We’ll charge a small fee for this, but we’ll return your stake amount without profit or loss. If the stop-out amount is reached before the deal cancellation expires, your position will be cancelled automatically and we’ll return your stake amount without profit or loss. While “Deal cancellation” is active:","549479175":"Deriv Multipliers","551569133":"Learn more about trading limits","554410233":"This is a top-10 common password","555351771":"After defining trade parameters and trade options, you may want to instruct your bot to purchase contracts when specific conditions are met. To do that you can use conditional blocks and indicators blocks to help your bot to make decisions.","556264438":"Time interval","559224320":"Our classic “drag-and-drop” tool for creating trading bots, featuring pop-up trading charts, for advanced users.","561982839":"Change your currency","562599414":"This block returns the purchase price for the selected trade type. This block can be used only in the \"Purchase conditions\" root block.","563034502":"We shall try to resolve your complaint within 15 business days. We will inform you of the outcome together with an explanation of our position and propose any remedial measures we intend to take.","563166122":"We shall acknowledge receiving your complaint, review it carefully, and keep you updated on the handling process. We might request further information or clarifications to facilitate the resolution of the complaint.","563652273":"Go to block","565410797":"The below image illustrates how Simple Moving Average Array block works:","566274201":"1. Market","567019968":"A variable is among the most important and powerful components in creating a bot. It is a way to store information, either as text or numbers. The information stored as a variable can be used and changed according to the given instructions. Variables can be given any name, but usually they are given useful, symbolic names so that it is easier to call them during the execution of instructions.","567163880":"Create a {{platform}} password","567755787":"Tax Identification Number is required.","569057236":"In which country was your document issued?","571921777":"Funds protection level","572576218":"Languages","573173477":"Is candle {{ input_candle }} black?","577215477":"count with {{ variable }} from {{ start_number }} to {{ end_number }} by {{ step_size }}","577779861":"Withdrawal","577883523":"4. Awards and orders","578640761":"Call Spread","579529868":"Show all details — including the bottom 2 lines","580431127":"Restart buy/sell on error (disable for better performance): {{ checkbox }}","580665362":"Stays In/Goes Out","580774080":"insert at","581168980":"Legal","582945649":"2 minutes","584028307":"Allow equals","587577425":"Secure my account","587856857":"Want to know more about APIs?","592087722":"Employment status is required.","593459109":"Try a different currency","595080994":"Example: CR123456789","595136687":"Save Strategy","597089493":"Here is where you can decide to sell your contract before it expires. Only one copy of this block is allowed.","597481571":"DISCLAIMER","597707115":"Tell us about your trading experience.","599469202":"{{secondPast}}s ago","602278674":"Verify identity","606240547":"- Natural log","606877840":"Back to today","607807243":"Get candle","609519227":"This is the email address associated with your Deriv account.","609650241":"Infinite loop detected","610537973":"Any information you provide is confidential and will be used for verification purposes only.","611020126":"View address on Blockchain","611786123":"FX-majors (standard/micro lots), FX-minors, Commodities, Cryptocurrencies, Stocks, and Stock Indices","613877038":"Chart","617345387":"If you select \"Reset-Up”, you win the payout if the exit spot is strictly higher than either the entry spot or the spot at reset time.","618520466":"Example of a cut-off document","619268911":"<0>a.The Financial Commission will investigate the validity of the complaint within 5 business days.","619407328":"Are you sure you want to unlink from {{identifier_title}}?","623192233":"Please complete the <0>Appropriateness Test to access your cashier.","623542160":"Exponential Moving Average Array (EMAA)","626175020":"Standard Deviation Up Multiplier {{ input_number }}","626809456":"Resubmit","627292452":"<0>Your Proof of Identity or Proof of Address did not meet our requirements. Please check your email for further instructions.","627814558":"This block returns a value when a condition is true. Use this block within either of the function blocks above.","628193133":"Account ID","629145209":"In case if the \"AND\" operation is selected, the block returns \"True\" only if both given values are \"True\"","632398049":"This block assigns a null value to an item or statement.","634219491":"You have not provided your tax identification number. This information is necessary for legal and regulatory requirements. Please go to <0>Personal details in your account settings, and fill in your latest tax identification number.","636219628":"<0>c.If no settlement opportunity can be found, the complaint will proceed to the determination phase to be handled by the DRC.","639382772":"Please upload supported file type.","640596349":"You have yet to receive any notifications","640730141":"Refresh this page to restart the identity verification process","641420532":"We've sent you an email","642210189":"Please check your email for the verification link to complete the process.","642393128":"Enter amount","642546661":"Upload back of license from your computer","642995056":"Email","643014039":"The trade length of your purchased contract.","644150241":"The number of contracts you have won since you last cleared your stats.","645016681":"Trading frequency in other financial instruments","645902266":"EUR/NZD","647039329":"Proof of address required","647192851":"Contract will be sold at the prevailing market price when the request is received by our servers. This price may differ from the indicated price.","647745382":"Input List {{ input_list }}","649317411":"On the basis of the information provided in relation to your knowledge and experience, we consider that the investments available via this website are not appropriate for you.<0/><1/>","649923867":"Adds a sign to a number to create a barrier offset. (deprecated)","651284052":"Low Tick","651684094":"Notify","652041791":"To create a Deriv X real account, create a Deriv real account first.","652298946":"Date of birth","654264404":"Up to 1:30","654507872":"True-False","654924603":"Martingale","655937299":"We’ll update your limits. Click <0>Accept to acknowledge that you are fully responsible for your actions, and we are not liable for any addiction or loss.","657325150":"This block is used to define trade options within the Trade parameters root block. Some options are only applicable for certain trade types. Parameters such as duration and stake are common among most trade types. Prediction is used for trade types such as Digits, while barrier offsets are for trade types that involve barriers such as Touch/No Touch, Ends In/Out, etc.","657444253":"Sorry, account opening is unavailable in your region.","659482342":"Please remember that it is your responsibility to keep your answers accurate and up to date. You can update your personal details at any time in your account settings.","660481941":"To access your mobile apps and other third-party apps, you'll first need to generate an API token.","660991534":"Finish","661759508":"On the basis of the information provided in relation to your knowledge and experience, we consider that the investments available via this website are not appropriate for you.<0/><0/>","662578726":"Available","662609119":"Download the MT5 app","665089217":"Please submit your <0>proof of identity to authenticate your account and access your Cashier.","665777772":"XLM/USD","665872465":"In the example below, the opening price is selected, which is then assigned to a variable called \"op\".","666724936":"Please enter a valid ID number.","668344562":"Synthetics, FX majors (standard/micro lots), FX minors, basket indices, commodities, and cryptocurrencies","672008428":"ZEC/USD","673915530":"Jurisdiction and choice of law","674973192":"Use this password to log in to your Deriv MT5 accounts on the desktop, web, and mobile apps.","676159329":"Could not switch to default account.","677918431":"Market: {{ input_market }} > {{ input_submarket }} > {{ input_symbol }}","678517581":"Units","680334348":"This block was required to correctly convert your old strategy.","680478881":"Total withdrawal limit","681926004":"Example of a blurry document","682056402":"Standard Deviation Down Multiplier {{ input_number }}","684282133":"Trading instruments","685391401":"If you're having trouble signing in, let us know via <0>chat","687212287":"Amount is a required field.","689137215":"Purchase price","691956534":"<0>You have added a {{currency}} account.<0> Make a deposit now to start trading.","693396140":"Deal cancellation (expired)","696870196":"- Open time: the opening time stamp","697630556":"This market is presently closed.","698748892":"Let’s try that again","699159918":"1. Filing complaints","700259824":"Account currency","701034660":"We are still processing your withdrawal request.<0 />Please wait for the transaction to be completed before deactivating your account.","701462190":"Entry spot","701647434":"Search for string","705299518":"Next, upload the page of your passport that contains your photo.","706727320":"Binary options trading frequency","706755289":"This block performs trigonometric functions.","707662672":"{{unblock_date}} at {{unblock_time}}","708055868":"Driving licence number","710123510":"repeat {{ while_or_until }} {{ boolean }}","711999057":"Successful","712101776":"Take a photo of your passport photo page","712635681":"This block gives you the selected candle value from a list of candles. You can choose from open price, close price, high price, low price, and open time.","713054648":"Sending","714080194":"Submit proof","714746816":"MetaTrader 5 Windows app","715841616":"Please enter a valid phone number (e.g. +15417541234).","716428965":"(Closed)","718504300":"Postal/ZIP code","720293140":"Log out","720519019":"Reset my password","721011817":"- Raise the first number to the power of the second number","723045653":"You'll log in to your Deriv account with this email address.","723961296":"Manage password","724203548":"You can send your complaint to the <0>European Commission's Online Dispute Resolution (ODR) platform. This is not applicable to UK clients.","728042840":"To continue trading with us, please confirm where you live.","728824018":"Spanish Index","729651741":"Choose a photo","730473724":"This block performs the \"AND\" or the \"OR\" logic operation with the given values.","731382582":"BNB/USD","734390964":"Insufficient balance","734881840":"false","742676532":"Trade CFDs on forex, derived indices, cryptocurrencies, and commodities with high leverage.","744110277":"Bollinger Bands Array (BBA)","745656178":"Use this block to sell your contract at the market price.","745674059":"Returns the specific character from a given string of text according to the selected option. ","746112978":"Your computer may take a few seconds to update","750886728":"Switch to your real account to submit your documents","751692023":"We <0>do not guarantee a refund if you make a wrong transfer.","752024971":"Reached maximum number of digits","752633544":"You will need to submit proof of identity and address once you reach certain thresholds","752992217":"This block gives you the selected constant values.","753088835":"Default","753184969":"In providing our services to you, we are required to obtain information from you in order to assess whether a given product or service is appropriate for you (that is, whether you possess the experience and knowledge to understand the risks involved).<0/><1/>","753727511":"Type","755867072":"{{platform_name_mt5}} is not available in {{country}}","756152377":"SMA places equal weight to the entire distribution of values.","758003269":"make list from text","759783233":"For more information and assistance to counselling and support services, please visit <0>begambleaware.org.","760528514":"Please note that changing the value of \"i\" won't change the value of the original item in the list","761576760":"Fund your account to start trading.","762185380":"<0>Multiply returns by <0>risking only what you put in.","762871622":"{{remaining_time}}s","763019867":"Your Gaming account is scheduled to be closed","764366329":"Trading limits","764540515":"Stopping the bot is risky","766317539":"Language","770171141":"Go to {{hostname}}","772632060":"Do not send any other currency to the following address. Otherwise, you'll lose funds.","773091074":"Stake:","773309981":"Oil/USD","773336410":"Tether is a blockchain-enabled platform designed to facilitate the use of fiat currencies in a digital manner.","775679302":"{{pending_withdrawals}} pending withdrawal(s)","776085955":"Strategies","781924436":"Call Spread/Put Spread","783974693":"Avoid recent years","784311461":"Exponential Moving Average (EMA)","784583814":"Linked to your computer","785969488":"Jump 75 Index","787116142":"The multiplier amount used to increase your stake if you’re losing a trade. Value must be higher than 2.","787727156":"Barrier","788005234":"NA","793526589":"To file a complaint about our service, send an email to <0>complaints@deriv.com and state your complaint in detail. Please submit any relevant screenshots of your trading or system for our better understanding.","793531921":"Our company is one of the oldest and most reputable online trading companies in the world. We are committed to treat our clients fairly and provide them with excellent service.<0/><1/>Please provide us with feedback on how we can improve our services to you. Rest assured that you will be heard, valued, and treated fairly at all times.","794682658":"Copy the link to your phone","795859446":"Password saved","797007873":"Follow these steps to recover camera access:","797500286":"negative","800228448":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}} and {{legal_entity_name_fx}}.","800521289":"Your personal details are incomplete","801430087":"A link can contain the word \"Deriv\" and still be fake.","802436811":"View transaction details","802438383":"New proof of address is needed","802556390":"seconds","802989607":"Drag your XML file here","803500173":"Initial stake","807499069":"Financial commission complaints procedure","808323704":"You can also use \"Compare\" and \"Logic operation\" blocks to make test variables.","811876954":"You may transfer between your Deriv fiat, cryptocurrency, {{platform_name_mt5}}, and {{platform_name_dxtrade}} accounts.","816580787":"Welcome back! Your messages have been restored.","816738009":"<0/><1/>You may also raise your unresolved dispute to the <2>Office of the Arbiter for Financial Services.","818447476":"Switch account?","820877027":"Please verify your proof of identity","823186089":"A block that can contain text.","824797920":"Is list empty?","826511719":"USD/SEK","827688195":"Disable Block","828219890":"then","828602451":"Returns the list of tick values in string format","830164967":"Last name","830993327":"No current transactions available","832217983":"40 transactions or more in the past 12 months","832398317":"Sell Error","832588873":"Order execution","832721563":"If you select \"Low Tick\", you win the payout if the selected tick is the lowest among the next five ticks.","834966953":"1551661986 seconds since Jan 01 1970 (UTC) translates to 03/04/2019 @ 1:13am (UTC).","835058671":"Total buy price","835350845":"Add another word or two. Uncommon words are better.","836097457":"I am interested in trading but have very little experience.","837066896":"Your document is being reviewed, please check back in 1-3 days.","839618971":"ADDRESS","839805709":"To smoothly verify you, we need a better photo","841434703":"Disable stack","841543189":"View transaction on Blockchain","843333337":"You can only make deposits. Please complete the <0>financial assessment to unlock withdrawals.","845213721":"Logout","845304111":"Slow EMA Period {{ input_number }}","847888634":"Please withdraw all your funds.","850582774":"Please update your personal info","851054273":"If you select \"Higher\", you win the payout if the exit spot is strictly higher than the barrier.","851264055":"Creates a list with a given item repeated for a specific number of times.","851508288":"This block constrains a given number within a set range.","852583045":"Tick List String","854399751":"Digit code must only contain numbers.","854630522":"Choose a cryptocurrency account","857363137":"Volatility 300 (1s) Index","857445204":"Deriv currently supports withdrawals of Tether eUSDT to Ethereum wallet. To ensure a successful transaction, enter a wallet address compatible with the tokens you wish to withdraw. <0>Learn more","857986403":"do something","860319618":"Tourism","862283602":"Phone number*","863328851":"Proof of identity","864610268":"First, enter your {{label}} and the expiry date.","864957760":"Math Number Positive","865424952":"High-to-Low","865642450":"2. Logged in from a different browser","866496238":"Make sure your license details are clear to read, with no blur or glare","868826608":"Excluded from {{brand_website_name}} until","869823595":"Function","869993298":"Minimum withdrawal","872549975":"You have {{number}} transfers remaining for today.","872661442":"Are you sure you want to update email <0>{{prev_email}} to <1>{{changed_email}}?","872817404":"Entry Spot Time","873166343":"1. 'Log' displays a regular message.","874461655":"Scan the QR code with your phone","874484887":"Take profit must be a positive number.","875532284":"Restart process on a different device","876086855":"Complete the financial assessment form","876292912":"Exit","879014472":"Reached maximum number of decimals","888274063":"Town/City","890299833":"Go to Reports","891097078":"USD Index","891337947":"Select country","892341141":"Your trading statistics since: {{date_time}}","893117915":"Variable","893963781":"Close-to-Low","893975500":"You do not have any recent bots","894191608":"<0>c.We must award the settlement within 28 days of when the decision is reached.","898457777":"You have added a Deriv Financial account.","902045490":"3 minutes","903429103":"In candles list read {{ candle_property }} # from end {{ input_number }}","904696726":"API token","905134118":"Payout:","905227556":"Strong passwords contain at least 8 characters, combine uppercase and lowercase letters and numbers.","905564365":"MT5 CFDs","906049814":"We’ll review your documents and notify you of its status within 5 minutes.","907680782":"Proof of ownership verification failed","910888293":"Too many attempts","915735109":"Back to {{platform_name}}","918447723":"Real","920125517":"Add demo account","921901739":"- your account details of the bank linked to your account","924046954":"Upload a document showing your name and bank account number or account details.","926813068":"Fixed/Variable","929608744":"You are unable to make withdrawals","930346117":"Capitalization doesn't help very much","930546422":"Touch","933126306":"Enter some text here","933193610":"Only letters, periods, hyphens, apostrophes, and spaces, please.","934835052":"Potential profit","934932936":"PERSONAL","936766426":"You are limited to one fiat account. You won’t be able to change your account currency if you have already made your first deposit.","937237342":"Strategy name cannot be empty","937682366":"Upload both of these documents to prove your identity.","937831119":"Last name*","937992258":"Table","938500877":"{{ text }}. <0>You can view the summary of this transaction in your email.","938988777":"High barrier","940950724":"This trade type is currently not supported on {{website_name}}. Please go to <0>Binary.com for details.","943535887":"Please close your positions in the following Deriv MT5 account(s):","944499219":"Max. open positions","945532698":"Contract sold","946204249":"Read","946841802":"A white (or green) candle indicates that the open price is lower than the close price. This represents an upward movement of the market price.","946944859":"Hit the button below and we'll send you an email with a link. Click that link to verify your withdrawal request.","947046137":"Your withdrawal will be processed within 24 hours","947363256":"Create list","947549448":"Total assets in your Deriv, {{platform_name_mt5}} and {{platform_name_dxtrade}} real accounts.","947758334":"City is required","947914894":"Top up  <0>","948156236":"Create {{type}} password","948545552":"150+","949859957":"Submit","952927527":"Regulated by the Malta Financial Services Authority (MFSA) (licence no. IS/70156)","955352264":"Trade on {{platform_name_dxtrade}}","956448295":"Cut-off image detected","957182756":"Trigonometric functions","958430760":"In/Out","959031082":"set {{ variable }} to MACD Array {{ dropdown }} {{ dummy }}","960201789":"3. Sell conditions","961692401":"Bot","966457287":"set {{ variable }} to Exponential Moving Average {{ dummy }}","968576099":"Up/Down","969987233":"Win up to maximum payout if exit spot is between lower and upper barrier, in proportion to the difference between exit spot and lower barrier.","970915884":"AN","974888153":"High-Low","975668699":"I confirm and accept {{company}} 's <0>Terms and Conditions","975950139":"Country of Residence","977929335":"Go to my account settings","981138557":"Redirect","981965437":"Scan the QR code below with your 2FA app. We recommend <0>Authy or <1>Google Authenticator.","982146443":"WhatsApp","982402892":"First line of address","982829181":"Barriers","987224688":"How many trades have you placed with other financial instruments in the past 12 months?","987900242":"Total assets in your Deriv, {{platform_name_mt5}} and {{platform_name_dxtrade}} demo accounts.","988361781":"You have no trading activity yet.","988934465":"When prompted, you must enable camera access to continue","992294492":"Your postal code is invalid","993827052":"Choosing this jurisdiction will give you a Financial STP account. Your trades will go directly to the market and have tighter spreads.","995563717":"not {{ boolean }}","999008199":"text","1001160515":"Sell","1001749987":"You’ll get a warning, named margin call, if your account balance drops down close to the stop out level.","1003876411":"Should start with letter or number and may contain a hyphen, period and slash.","1004127734":"Send email","1006458411":"Errors","1006664890":"Silent","1009032439":"All time","1010198306":"This block creates a list with strings and numbers.","1010337648":"We were unable to verify your proof of ownership.","1012102263":"You will not be able to log in to your account until this date (up to 6 weeks from today).","1015201500":"Define your trade options such as duration and stake.","1016220824":"You need to switch to a real money account to use this feature.<0/>You can do this by selecting a real account from the <1>Account Switcher.","1018803177":"standard deviation","1019265663":"You have no transactions yet.","1019508841":"Barrier 1","1022934784":"1 minute","1023237947":"1. In the example below, the instructions are repeated as long as the value of x is less than or equal to 10. Once the value of x exceeds 10, the loop is terminated.","1023643811":"This block purchases contract of a specified type.","1023795011":"Even/Odd","1024205076":"Logic operation","1025887996":"Negative Balance Protection","1026046972":"Please enter a payout amount that's lower than {{max_payout}}.","1027098103":"Leverage gives you the ability to trade a larger position using your existing capital. Leverage varies across different symbols.","1028211549":"All fields are required","1028758659":"Citizenship*","1029164365":"We presume that you possess the experience, knowledge, and expertise to make your own investment decisions and properly assess the risk involved.","1030021206":"change {{ variable }} by {{ number }}","1031602624":"We've sent a secure link to %{number}","1031731167":"Pound Sterling","1032173180":"Deriv","1032907147":"AUD/NZD","1035506236":"Choose a new password","1036116144":"Speculate on the price movement of an asset without actually owning it.","1036353276":"Please create another Deriv or {{platform_name_mt5}} account.","1036867749":"The desired duration, stake, prediction, and/or barrier(s) for the contract is defined here.","1038575777":"Change password","1039755542":"Use a few words, avoid common phrases","1040677897":"To continue trading, you must also submit a proof of address.","1041001318":"This block performs the following operations on a given list: sum, minimum, maximum, average, median, mode, antimode, standard deviation, random item.","1041620447":"If you are unable to scan the QR code, you can manually enter this code instead:","1042659819":"You have an account that needs action","1043790274":"There was an error","1044230481":"This is an Ethereum ({{token}}) only address, please do not use {{prohibited_token}}.","1044540155":"100+","1044599642":"<0> has been credited into your {{platform}} {{title}} account.","1045704971":"Jump 150 Index","1045782294":"Click the <0>Change password button to change your Deriv password.","1047389068":"Food Services","1048947317":"Sorry, this app is unavailable in {{clients_country}}.","1049384824":"Rise","1050128247":"I confirm that I have verified the payment agent’s transfer information.","1050844889":"Reports","1052137359":"Family name*","1052779010":"You are on your demo account","1053153674":"Jump 50 Index","1053159279":"Level of education","1055313820":"No document detected","1056381071":"Return to trade","1056821534":"Are you sure?","1057216772":"text {{ input_text }} is empty","1057749183":"Two-factor authentication (2FA)","1057765448":"Stop out level","1057904606":"The concept of the D’Alembert Strategy is said to be similar to the Martingale Strategy where you will increase your contract size after a loss. With the D’Alembert Strategy, you will also decrease your contract size after a successful trade.","1060231263":"When are you required to pay an initial margin?","1061308507":"Purchase {{ contract_type }}","1061561084":"Switch to your real account to create a Deriv MT5 {{account_title}} {{type_title}} account.","1062536855":"Equals","1065353420":"110+","1065498209":"Iterate (1)","1069347258":"The verification link you used is invalid or expired. Please request for a new one.","1069576070":"Purchase lock","1070624871":"Check proof of address document verification status","1076006913":"Profit/loss on the last {{item_count}} contracts","1077515534":"Date to","1078221772":"Leverage prevents you from opening large positions.","1080068516":"Action","1080990424":"Confirm","1082158368":"*Maximum account cash balance","1082406746":"Please enter a stake amount that's at least {{min_stake}}.","1083781009":"Tax identification number*","1083826534":"Enable Block","1086118495":"Traders Hub","1088138125":"Tick {{current_tick}} - ","1089085289":"Mobile number","1096078516":"We’ll review your documents and notify you of its status within 3 days.","1096175323":"You’ll need a Deriv account","1098147569":"Purchase commodities or shares of a company.","1098622295":"\"i\" starts with the value of 1, and it will be increased by 2 at every iteration. The loop will repeat until \"i\" reaches the value of 12, and then the loop is terminated.","1100870148":"To learn more about account limits and how they apply, please go to the <0>Help Centre.","1101560682":"stack","1101712085":"Buy Price","1102420931":"Next, upload the front and back of your driving licence.","1102995654":"Calculates Exponential Moving Average (EMA) list from a list of values with a period","1103309514":"Target","1103452171":"Cookies help us to give you a better experience and personalised content on our site.","1104912023":"Pending verification","1107474660":"Submit proof of address","1107555942":"To","1109217274":"Success!","1110102997":"Statement","1112582372":"Interval duration","1113119682":"This block gives you the selected candle value from a list of candles.","1113292761":"Less than 8MB","1113433728":"Resubmit your proof of identity and address","1117863275":"Security and safety","1118294625":"You have chosen to exclude yourself from trading on our website until {{exclusion_end}}. If you are unable to place a trade or deposit after your self-exclusion period, please contact us via live chat.","1119887091":"Verification","1119986999":"Your proof of address was submitted successfully","1120985361":"Terms & conditions updated","1122910860":"Please complete your <0>financial assessment.","1123927492":"You have not selected your account currency","1125090693":"Must be a number","1126075317":"Add your Deriv MT5 <0>{{account_type_name}} STP account under Deriv (FX) Ltd regulated by Labuan Financial Services Authority (Licence no. MB/18/0024).","1126934455":"Length of token name must be between 2 and 32 characters.","1127149819":"Make sure§","1128139358":"How many CFD trades have you placed in the past 12 months?","1128404172":"Undo","1129124569":"If you select \"Under\", you will win the payout if the last digit of the last tick is less than your prediction.","1129842439":"Please enter a take profit amount.","1130744117":"We shall try to resolve your complaint within 10 business days. We will inform you of the outcome together with an explanation of our position and propose any remedial measures we intend to take.","1130791706":"N","1133651559":"Live chat","1134879544":"Example of a document with glare","1139483178":"Enable stack","1143730031":"Direction is {{ direction_type }}","1144028300":"Relative Strength Index Array (RSIA)","1145927365":"Run the blocks inside after a given number of seconds","1146064568":"Go to Deposit page","1147269948":"Barrier cannot be zero.","1147625645":"Please proceed to withdraw all your funds from your account before <0>30 November 2021.","1151964318":"both sides","1152294962":"Upload the front of your driving licence.","1154021400":"list","1154239195":"Title and name","1155011317":"This block converts the date and time to the number of seconds since the Unix Epoch (1970-01-01 00:00:00).","1158678321":"<0>b.The Head of the Dispute Resolution Committee (DRC) will contact both you and us within 5 business days to obtain all necessary information and see if there is a chance to settle the complaint during the investigation phase.","1160761178":"No payout if exit spot is below or equal to the lower barrier.","1161924555":"Please select an option","1163836811":"Real Estate","1164773983":"Take profit and/or stop loss are not available while deal cancellation is active.","1166128807":"Choose one of your accounts or add a new cryptocurrency account","1166377304":"Increment value","1168029733":"Win payout if exit spot is also equal to entry spot.","1169201692":"Create {{platform}} password","1170228717":"Stay on {{platform_name_trader}}","1174542625":"- Find the chat ID property in the response, and copy the value of the id property","1174748431":"Payment channel","1175183064":"Vanuatu","1176926166":"Experience with trading other financial instruments","1177396776":"If you select \"Asian Fall\", you will win the payout if the last tick is lower than the average of the ticks.","1177723589":"There are no transactions to display","1178582280":"The number of contracts you have lost since you last cleared your stats.","1178800778":"Take a photo of the back of your license","1178942276":"Please try again in a minute.","1179704370":"Please enter a take profit amount that's higher than the current potential profit.","1180619731":"Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts, up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts, and up to {{ allowed_dxtrade }} transfers between your Deriv and {{platform_name_dxtrade}} accounts.","1181396316":"This block gives you a random number from within a set range","1181770592":"Profit/loss from selling","1183007646":"- Contract type: the name of the contract type such as Rise, Fall, Touch, No Touch, etс.","1188316409":"To receive your funds, contact the payment agent with the details below","1188980408":"5 minutes","1189368976":"Please complete your personal details before you verify your identity.","1189886490":"Please create another Deriv, {{platform_name_mt5}}, or {{platform_name_dxtrade}} account.","1191429031":"Please click on the link in the email to change your <0>{{platform_name_dxtrade}} password.","1191644656":"Predict the market direction and select either “Up” or “Down” to open a position. We will charge a commission when you open a position.","1192708099":"Duration unit","1195393249":"Notify {{ notification_type }} with sound: {{ notification_sound }} {{ input_message }}","1196006480":"Profit threshold","1197326289":"You are no longer able to trade digital options on any of our platforms. Also, you can’t make deposits into your Options account.","1198368641":"Relative Strength Index (RSI)","1199281499":"Last Digits List","1201533528":"Contracts won","1201773643":"numeric","1203297580":"This block sends a message to a Telegram channel.","1204223111":"In this example, the open prices from a list of candles are assigned to a variable called \"candle_list\".","1206227936":"How to mask your card?","1206821331":"Armed Forces","1208729868":"Ticks","1208903663":"Invalid token","1211912982":"Bot is starting","1214893428":"Account creation is currently unavailable for mobile. Please log in with your computer to create a new account.","1216408337":"Self-Employed","1217159705":"Bank account number","1217481729":"Tether as an ERC20 token (eUSDT) is a version of Tether that is hosted on Ethereum.","1218546232":"What is Fiat onramp?","1219844088":"do %1","1221250438":"To enable withdrawals, please submit your <0>Proof of Identity (POI) and <1>Proof of Address (POA) and also complete the <2>financial assessment in your account settings.","1222096166":"Deposit via bank wire, credit card, and e-wallet","1222521778":"Making deposits and withdrawals is difficult.","1222544232":"We’ve sent you an email","1225150022":"Number of assets","1227074958":"random fraction","1227240509":"Trim spaces","1228534821":"Some currencies may not be supported by payment agents in your country.","1229883366":"Tax identification number","1230884443":"State/Province (optional)","1231282282":"Use only the following special characters: {{permitted_characters}}","1232291311":"Maximum withdrawal remaining","1232353969":"0-5 transactions in the past 12 months","1233300532":"Payout","1234292259":"Source of wealth","1234764730":"Upload a screenshot of your name and email address from the personal details section.","1235426525":"50%","1237330017":"Pensioner","1238311538":"Admin","1239760289":"Complete your trading assessment","1239940690":"Restarts the bot when an error is encountered.","1240027773":"Please Log in","1241238585":"You may transfer between your Deriv fiat, cryptocurrency, and {{platform_name_mt5}} accounts.","1243064300":"Local","1246207976":"Enter the authentication code generated by your 2FA app:","1246443703":"Financial Assessment","1246880072":"Select issuing country","1247280835":"Our cryptocurrency cashier is temporarily down due to system maintenance. You can make cryptocurrency deposits and withdrawals in a few minutes when the maintenance is complete.","1248018350":"Source of income","1248161058":"You can create your account on {{real_account_unblock_date}}. <0/>Please click ‘OK’ to continue.","1248940117":"<0>a.The decisions made by the DRC are binding on us. DRC decisions are binding on you only if you accept them.","1250495155":"Token copied!","1254565203":"set {{ variable }} to create list with","1255909792":"last","1255963623":"To date/time {{ input_timestamp }} {{ dummy }}","1258097139":"What could we do to improve?","1258198117":"positive","1259598687":"GBP/JPY","1260259925":"Phone is not in a proper format.","1263387702":"All {{count}} account types use market execution. This means you agree with the broker's price in advance and will place orders at the broker's price.","1264096613":"Search for a given string","1265704976":"","1270581106":"If you select \"No Touch\", you win the payout if the market never touches the barrier at any time during the contract period.","1272012156":"GBP/CHF","1272337240":"Days","1272681097":"Hours","1274819385":"3. Complaints and Disputes","1275474387":"Quick","1281045211":"Sorts the items in a given list, by their numeric or alphabetical value, in either ascending or descending order.","1281290230":"Select","1282951921":"Only Downs","1284522768":"If \"Loss\" is selected, it will return \"True\" if your last trade was unsuccessful. Otherwise, it will return an empty string.","1286094280":"Withdraw","1286507651":"Close identity verification screen","1288965214":"Passport","1289646209":"Margin call","1290525720":"Example: ","1291887623":"Digital options trading frequency","1292188546":"Reset Deriv MT5 investor password","1292891860":"Notify Telegram","1293660048":"Max. total loss per day","1294756261":"This block creates a function, which is a group of instructions that can be executed at any time. Place other blocks in here to perform any kind of action that you need in your strategy. When all the instructions in a function have been carried out, your bot will continue with the remaining blocks in your strategy. Click the “do something” field to give it a name of your choice. Click the plus icon to send a value (as a named variable) to your function.","1295284664":"Please accept our <0>updated Terms and Conditions to proceed.","1296380713":"Close my contract","1299479533":"8 hours","1300576911":"Please resubmit your proof of address or we may restrict your account.","1302691457":"Occupation","1303016265":"Yes","1303530014":"We’re processing your withdrawal.","1304083330":"copy","1304272843":"Please submit your proof of address.","1304620236":"Enable camera","1304788377":"<0/><1/>If your complaint relates to our data processing practices, you can submit a formal complaint to the <2>Information and Data Protection Commissioner (Malta) on their website or make a complaint to any supervisory authority within the European Union.","1305217290":"Upload the back of your identity card.","1308625834":"Sets the default time interval for blocks that read list of candles.","1309017029":"Enabling this allows you to save your blocks as one collection which can be easily integrated into other bots.","1309044871":"Returns the value of the latest tick in string format","1310483610":"Results for \"{{ search_term }}\"","1311680770":"payout","1311799109":"We do not support Binance Smart Chain tokens to deposit, please use only Ethereum ({{token}}).","1312767038":"Exit Trader's hub","1313167179":"Please log in","1313302450":"The bot will stop trading if your total loss exceeds this amount.","1316216284":"You can use this password for all your {{platform}} accounts.","1319217849":"Check your mobile","1320750775":"Front and back","1322804930":"Restart the process on the latest version of Google Chrome","1323327633":"Our complaints process comprises the following 4 steps:","1323476617":"Changes the capitalisation of a string of text to Upper case, Lower case, Title case.","1323996051":"Profile","1324110809":"Address information","1324922837":"2. The new variable will appear as a block under Set variable.","1327181172":"Financial Vanuatu","1327494533":"{{sell_value}} (Sell)","1329136554":"Jump 200 Index","1329325646":"The content of this block is called on every tick","1331199417":"Please enter the correct format. ","1331367811":"Client account number","1332168410":"Learn more","1332168769":"Disconnect","1333576137":"Please update your {{details}} to continue.","1333839457":"Submit identity card (front)","1334326985":"It may take a few minutes to arrive","1335967988":"Notice","1337846406":"This block gives you the selected candle value from a list of candles within the selected time interval.","1337864666":"Photo of your document","1338496204":"Ref. ID","1341840346":"View in Journal","1346204508":"Take profit","1346339408":"Managers","1347071802":"{{minutePast}}m ago","1348009461":"Please close your positions in the following Deriv X account(s):","1349133669":"Try changing your search criteria.","1349289354":"Great, that's everything we need","1349295677":"in text {{ input_text }} get substring from {{ position1 }} {{ index1 }} to {{ position2 }} {{ index2 }}","1351906264":"This feature is not available for payment agents.","1353197182":"Please select","1354288636":"Based on your answers, it looks like you have insufficient knowledge and experience in trading CFDs. CFD trading is risky and you could potentially lose all of your capital.<0/><0/>","1355250245":"{{ calculation }} of list {{ input_list }}","1356574493":"Returns a specific portion of a given string of text.","1356607862":"Deriv password","1357129681":"{{num_day}} days {{num_hour}} hours {{num_minute}} minutes","1357213116":"Identity card","1358543466":"Not available","1359424217":"You have sold this contract at <0 />","1360929368":"Add a Deriv account","1362578283":"High","1363060668":"Your trading statistics since:","1363675688":"Duration is a required field.","1364958515":"Stocks","1366244749":"Limits","1367023655":"To ensure your loss does not exceed your stake, your contract will be closed automatically when your loss equals to <0/>.","1367488817":"4. Restart trading conditions","1367990698":"Volatility 10 Index","1369709538":"Our terms of use","1371193412":"Cancel","1371555192":"Choose your preferred payment agent and enter your withdrawal amount. If your payment agent is not listed, <0>search for them using their account number.","1371641641":"Open the link on your mobile","1371911731":"Financial products in the EU are offered by {{legal_entity_name}}, licensed as a Category 3 Investment Services provider by the Malta Financial Services Authority (<0>Licence no. IS/70156).","1374627690":"Max. account balance","1376329801":"Last 60 days","1378419333":"Ether","1383017005":"You have switched accounts.","1384127719":"You should enter {{min}}-{{max}} numbers.","1384222389":"Please submit valid identity documents to unlock the cashier.","1385418910":"Please set a currency for your existing real account before creating another account.","1387503299":"Log in","1388770399":"Proof of identity required","1389197139":"Import error","1390792283":"Trade parameters","1391174838":"Potential payout:","1392966771":"Mrs","1392985917":"This is similar to a commonly used password","1393559748":"Invalid date/time: {{ datetime_string }}","1393901361":"There’s an app for that","1393903598":"if true {{ return_value }}","1396179592":"Commission","1396417530":"Bear Market Index","1397628594":"Insufficient funds","1399620764":"We're legally obliged to ask for your financial information.","1400341216":"We’ll review your documents and notify you of its status within 1 to 3 days.","1400637999":"(All fields are required)","1400732866":"View from camera","1400962248":"High-Close","1402208292":"Change text case","1403376207":"Update my details","1405584799":"with interval: {{ candle_interval_type }}","1408844944":"Click the plus icon to extend the functionality of this block.","1410320737":"Go to Deriv MT5 dashboard","1412535872":"You can check the result of the last trade with this block. It can only be placed within the \"Restart trading conditions\" root block.","1413047745":"Assigns a given value to a variable","1413359359":"Make a new transfer","1414205271":"prime","1415006332":"get sub-list from first","1415974522":"If you select \"Differs\", you will win the payout if the last digit of the last tick is not the same as your prediction.","1417558007":"Max. total loss over 7 days","1417914636":"Login ID","1418115525":"This block repeats instructions as long as a given condition is true.","1421749665":"Simple Moving Average (SMA)","1422060302":"This block replaces a specific item in a list with another given item. It can also insert the new item in the list at a specific position.","1422129582":"All details must be clear — nothing blurry","1423082412":"Last Digit","1424741507":"See more","1424779296":"If you've recently used bots but don't see them in this list, it may be because you:","1430396558":"5. Restart buy/sell on error","1430632931":"To get trading, please confirm who you are, and where you live.","1433367863":"Sorry, an error occured while processing your request.","1434382099":"Displays a dialog window with a message","1434976996":"Announcement","1435363248":"This block converts the number of seconds since the Unix Epoch to a date and time format such as 2019-08-01 00:00:00.","1435380105":"Minimum deposit","1437396005":"Add comment","1438247001":"A professional client receives a lower degree of client protection due to the following.","1438340491":"else","1439168633":"Stop loss:","1441208301":"Total<0 />profit/loss","1442747050":"Loss amount: <0>{{profit}}","1442840749":"Random integer","1443478428":"Selected proposal does not exist","1445592224":"You accidentally gave us another email address (Usually a work or a personal one instead of the one you meant).","1449462402":"In review","1452260922":"Too many failed attempts","1452941569":"This block delays execution for a given number of seconds. You can place any blocks within this block. The execution of other blocks in your strategy will be paused until the instructions in this block are carried out.","1453317405":"This block gives you the balance of your account either as a number or a string of text.","1453362009":"Deriv Accounts","1454648764":"deal reference id","1454865058":"Do not enter an address linked to an ICO purchase or crowdsale. If you do, the ICO tokens will not be credited into your account.","1455741083":"Upload the back of your driving licence.","1457341530":"Your proof of identity verification has failed","1457603571":"No notifications","1459761348":"Submit proof of identity","1461323093":"Display messages in the developer’s console.","1464190305":"This block will transfer the control back to the Purchase conditions block, enabling you to purchase another contract without manually stopping and restarting your bot.","1464253511":"You already have an account for each of the cryptocurrencies available on {{deriv}}.","1465084972":"How much experience do you have with other financial instruments?","1465919899":"Pick an end date","1466430429":"Should be between {{min_value}} and {{max_value}}","1466900145":"Doe","1467017903":"This market is not yet available on {{platform_name_trader}}, but it is on {{platform_name_smarttrader}}.","1467421920":"with interval: %1","1467661678":"Cryptocurrency trading","1468308734":"This block repeats instructions as long as a given condition is true","1468419186":"Deriv currently supports withdrawals of Tether USDT to Omni wallet. To ensure a successful transaction, enter a wallet address compatible with the tokens you wish to withdraw. <0>Learn more","1468937050":"Trade on {{platform_name_trader}}","1469150826":"Take Profit","1469764234":"Cashier Error","1469814942":"- Division","1470319695":"Returns either True or False","1471070549":"Can contract be sold?","1471741480":"Severe error","1475513172":"Size","1476301886":"Similar to SMA, this block gives you the entire SMA line containing a list of all values for a given period.","1478030986":"Create or delete API tokens for trading and withdrawals","1481977420":"Please help us verify your withdrawal request.","1484336612":"This block is used to either terminate or continue a loop, and can be placed anywhere within a loop block.","1487086154":"Your documents were submitted successfully","1488548367":"Upload again","1490583127":"DBot isn't quite ready for real accounts","1491392301":"<0>Sold for: {{sold_for}}","1492686447":"Your MT5 Financial STP account will be opened through Deriv (FX) Ltd. All trading in this account is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA). None of your other accounts, including your Deriv account, is subject to the regulations and guidelines of the Labuan Financial Service Authority (LFSA).","1493673429":"Change email","1493866481":"Run Deriv X on your browser","1496810530":"GBP/AUD","1497773819":"Deriv MT5 accounts","1499074768":"Add a real Deriv Multipliers account","1499080621":"Tried to perform an invalid operation.","1501691227":"Add Your Deriv MT5 <0>{{account_type_name}} account under Deriv (V) Ltd, regulated by the Vanuatu Financial Services Commission.","1502039206":"Over {{barrier}}","1502325741":"Your password cannot be the same as your email address.","1503618738":"- Deal reference ID: the reference ID of the contract","1505420815":"No payment agents found for your search","1505898522":"Download stack","1509570124":"{{buy_value}} (Buy)","1509678193":"Education","1510075920":"Gold/USD","1510357015":"Tax residence is required.","1510735345":"This block gives you a list of the last digits of the last 1000 tick values.","1512469749":"In the above example it is assumed that variable candle_open_price is processed somewhere within other blocks.","1516537408":"You can no longer trade on Deriv or deposit funds into your account.","1516559721":"Please select one file only","1516676261":"Deposit","1517503814":"Drop file or click here to upload","1519124277":"Derived SVG","1519336051":"Try a different phone number","1520332426":"Net annual income","1524636363":"Authentication failed","1527251898":"Unsuccessful","1527906715":"This block adds the given number to the selected variable.","1529440614":"Use the <0>Deriv password to log in to {{brand_website_name}}, {{platform_name_go}}, {{platform_name_trader}}, {{platform_name_smarttrader}}, and {{platform_name_dbot}}.","1531017969":"Creates a single text string from combining the text value of each attached item, without spaces in between. The number of items can be added accordingly.","1533177906":"Fall","1534569275":"As part of the changes in our markets, we will be closing our UK clients’ accounts.","1534796105":"Gets variable value","1537711064":"You need to make a quick identity verification before you can access the Cashier. Please go to your account settings to submit your proof of identity.","1539108340":"EUR Index","1540585098":"Decline","1541969455":"Both","1544642951":"If you select \"Only Ups\", you win the payout if consecutive ticks rise successively after the entry spot. No payout if any tick falls or is equal to any of the previous ticks.","1547148381":"That file is too big (only up to 8MB allowed). Please upload another file.","1548765374":"Verification of document number failed","1549098835":"Total withdrawn","1551172020":"AUD Basket","1552162519":"View onboarding","1552918367":"Send only {{currency}} ({{currency_symbol}}) to this address.","1557426040":"Demo Derived SVG","1557682012":"Account Settings","1558972889":"set {{ variable }} to Simple Moving Average {{ dummy }}","1560302445":"Copied","1562374116":"Students","1564392937":"When you set your limits or self-exclusion, they will be aggregated across all your account types in {{platform_name_trader}} and {{platform_name_dbot}}. For example, the losses made on both platforms will add up and be counted towards the loss limit you set.","1566037033":"Bought: {{longcode}} (ID: {{transaction_id}})","1567076540":"Only use an address for which you have proof of residence - ","1567586204":"Self-exclusion","1569624004":"Dismiss alert","1570484627":"Ticks list","1571575776":"Accepted formats: pdf, jpeg, jpg, and png. Max file size: 8MB","1572504270":"Rounding operation","1572982976":"Server","1575556189":"Tether on the Ethereum blockchain, as an ERC20 token, is a newer transport layer, which now makes Tether available in Ethereum smart contracts. As a standard ERC20 token, it can also be sent to any Ethereum address.","1577480486":"Your mobile link will expire in one hour","1577527507":"Account opening reason is required.","1577612026":"Select a folder","1579839386":"Appstore","1580498808":"Multiple faces found","1584109614":"Ticks String List","1584578483":"50+ assets: forex, stocks, stock indices, synthetics indices, and cryptocurrencies.","1584936297":"XML file contains unsupported elements. Please check or modify file.","1585859194":"We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts, your Deriv fiat and {{platform_name_derivez}} accounts, and your Deriv fiat and {{platform_name_dxtrade}} accounts.","1587046102":"Documents from that country are not currently supported — try another document type","1589640950":"Resale of this contract is not offered.","1589702653":"Proof of address","1591933071":"Resubmit document","1593010588":"Login now","1594147169":"Please come back in","1594322503":"Sell is available","1596378630":"You have added a real Gaming account.<0/>Make a deposit now to start trading.","1597672660":"Deriv MT5 Password","1598009247":"<0>a.You may file a complaint with the Financial Commission up to 45 days after the incident.","1598386296":"Town/City is required.","1598443642":"Transaction hash","1602894348":"Create a password","1604171868":"Please withdraw all your funds as soon as possible.","1604916224":"Absolute","1605222432":"I have no knowledge and experience in trading at all.","1605292429":"Max. total loss","1612105450":"Get substring","1613633732":"Interval should be between 10-60 minutes","1615897837":"Signal EMA Period {{ input_number }}","1618809782":"Maximum withdrawal","1619070150":"You are being redirected to an external website.","1620278321":"Names and surnames by themselves are easy to guess","1620346110":"Set currency","1621024661":"Tether as a TRC20 token (tUSDT) is a version of Tether that is hosted on Tron.","1622662457":"Date from","1623706874":"Use this block when you want to use multipliers as your trade type.","1630372516":"Try our Fiat onramp","1630417358":"Please go to your account settings and complete your personal details to enable withdrawals.","1631281562":"GBP Basket","1634594289":"Select language","1634903642":"Only your face can be in the selfie","1634969163":"Change currency","1635266650":"It seems that your name in the document is not the same as your Deriv profile. Please update your name in the <0>Personal details page to solve this issue.","1636605481":"Platform settings","1636782601":"Multipliers","1638321777":"Your demo account balance is low. Reset your balance to continue trading from your demo account.","1639262461":"Pending withdrawal request:","1639304182":"Please click on the link in the email to reset your password.","1641395634":"Last digits list","1641635657":"New proof of identity document needed","1641980662":"Salutation is required.","1644908559":"Digit code is required.","1647186767":"The bot encountered an error while running.","1651513020":"Display remaining time for each interval","1651951220":"Repeats like \"abcabcabc\" are only slightly harder to guess than \"abc\"","1652366857":"get and remove","1652968048":"Define your trade options such as multiplier and stake.","1652976865":"In this example, this block is used with another block to get the open prices from a list of candles. The open prices are then assigned to the variable called \"cl\".","1653136377":"copied!","1653180917":"We cannot verify you without using your camera","1654365787":"Unknown","1654496508":"Our system will finish any DBot trades that are running, and DBot will not place any new trades.","1654721858":"Upload anyway","1655627840":"UPPER CASE","1656155124":"Resend in <0 /> seconds","1658954996":"Plant and Machine Operators and Assemblers","1659074761":"Reset Put","1665272539":"Remember: You cannot log in to your account until the selected date.","1665738338":"Balance","1665756261":"Go to live chat","1668138872":"Modify account settings","1670016002":"Multiplier: {{ multiplier }}","1670426231":"End Time","1671232191":"You have set the following limits:","1675030608":"To create this account first we need you to resubmit your proof of address.","1677027187":"Forex","1677990284":"My apps","1680666439":"Upload your bank statement showing your name, account number, and transaction history.","1682409128":"Untitled Strategy","1682636566":"Resend email in","1683963454":"Your contract will be closed automatically at the next available asset price on {{date}} at {{timestamp}}.","1684148009":"Total assets in your Deriv and {{platform_name_mt5}} real accounts.","1684419981":"What's this?","1686800117":"{{error_msg}}","1689103988":"Second Since Epoch","1689258195":"We were unable to verify your address with the details you provided. Please check and resubmit or choose a different document type.","1689738742":"Gold Index","1691335819":"To continue trading with us, please confirm who you are.","1691765860":"- Negation","1693614409":"Start time","1694331708":"You can switch between CFDs, digital options, and multipliers at any time.","1694517345":"Enter a new email address","1695807119":"Could not load Google Drive blocks","1700233813":"Transfer from {{selected_value}} is not allowed, Please choose another account from dropdown","1701447705":"Please update your address","1704656659":"How much experience do you have in CFD trading?","1708413635":"For your {{currency_name}} ({{currency}}) account","1709859601":"Exit Spot Time","1710662619":"If you have the app, launch it to start trading.","1711013665":"Anticipated account turnover","1711676335":"square root","1711929663":"Your funds have been transferred","1712357617":"Invalid email address.","1714255392":"To enable withdrawals, please complete your financial assessment.","1715011380":"Jump 25 Index","1715630945":"Returns the total profit in string format","1719248689":"EUR/GBP/USD","1720451994":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv fiat and Deriv cryptocurrency accounts.","1720968545":"Upload passport photo page from your computer","1722401148":"The amount that you may add to your stake after each successful trade.","1723589564":"Represents the maximum number of outstanding contracts in your portfolio. Each line in your portfolio counts for one open position. Once the maximum is reached, you will not be able to open new positions without closing an existing position first.","1724696797":"You are limited to one fiat account only.","1725958461":"Account number","1726472773":"Function with no return value","1726565314":"Close my account","1727681395":"Total assets in your Deriv and {{platform_name_mt5}} demo accounts.","1728121741":"Transactions.csv","1728183781":"About Tether","1729145421":"Risk warning","1731747596":"The block(s) highlighted in red are missing input values. Please update them and click \"Run bot\".","1732891201":"Sell price","1734185104":"Balance: %1","1734264460":"Disclaimer","1736292549":"Update postal code","1737352280":"Bot.init is not called","1738681493":"Remove your glasses, if necessary","1739384082":"Unemployed","1739668049":"Close your account","1740371444":"Underlying market is not selected","1740843997":"Buy cryptocurrencies in an instant. Enjoy easy, quick, and secure exchanges using your local payment methods.","1742256256":"Please upload one of the following documents:","1743448290":"Payment agents","1743902050":"Complete your financial assessment","1745523557":"- Square root","1746051371":"Download the app","1746273643":"Moving Average Convergence Divergence","1747501260":"Sell conditions","1747523625":"Go back","1747674345":"Please use `.` as a decimal separator for fractional numbers.","1747682136":"Contract was cancelled.","1748754976":"Run","1749675724":"Deriv charges no commission across all account types.","1750065391":"Login time:","1753226544":"remove","1753975551":"Upload passport photo page","1756678453":"break out","1758386013":"Do not get lured to fake \"Deriv\" pages!","1761038852":"Let’s continue with providing proofs of address and identity.","1761762171":"Restart last trade on error (bot ignores the unsuccessful trade): {{ checkbox }}","1762707297":"Phone number","1763123662":"Upload your NIMC slip.","1766212789":"Server maintenance starts at 06:00 GMT every Sunday and may last up to 2 hours. You may experience service disruption during this time.","1766993323":"Only letters, numbers, and underscores are allowed.","1767429330":"Add a Derived account","1768861315":"Minute","1768918213":"Only letters, space, hyphen, period, and apostrophe are allowed.","1769068935":"Choose any of these exchanges to buy cryptocurrencies:","1771037549":"Add a Deriv real account","1771592738":"Conditional block","1772532756":"Create and edit","1777847421":"This is a very common password","1778893716":"Click here","1779144409":"Account verification required","1779519903":"Should be a valid number.","1780770384":"This block gives you a random fraction between 0.0 to 1.0.","1781393492":"We do not charge a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts, your Deriv fiat and {{platform_name_derivez}} accounts and your Deriv fiat and {{platform_name_dxtrade}} accounts.","1782308283":"Quick strategy","1782395995":"Last Digit Prediction","1782690282":"Blocks menu","1782703044":"Sign up","1783740125":"Upload your selfie","1787135187":"Postal/ZIP code is required","1787492950":"Indicators on the chart tab are for indicative purposes only and may vary slightly from the ones on the {{platform_name_dbot}} workspace.","1788966083":"01-07-1999","1789497185":"Make sure your passport details are clear to read, with no blur or glare","1790770969":"FX-majors (standard/micro lots), FX-minors, Commodities, Cryptocurrencies","1791017883":"Check out this <0>user guide.","1791432284":"Search for country","1791971912":"Recent","1793913365":"To deposit money, please switch to your {{currency_symbol}} account.","1794815502":"Download your transaction history.","1796787905":"Please upload the following document(s).","1798943788":"You can only make deposits.","1801093206":"Get candle list","1801927731":"{{platform_name_dxtrade}} accounts","1803338729":"Choose what type of contract you want to trade. For example, for the Rise/Fall trade type you can choose one of three options: Rise, Fall, or Both. Selected option will determine available options for the Purchase block.","1804620701":"Expiration","1804789128":"{{display_value}} Ticks","1806355993":"No commission","1806503050":"Please note that some payment methods might not be available in your country.","1808058682":"Blocks are loaded successfully","1808393236":"Login","1808867555":"This block uses the variable “i” to control the iterations. With each iteration, the value of “i” is determined by the items in a given list.","1810217569":"Please refresh this page to continue.","1811109068":"Jurisdiction","1811972349":"Market","1811973475":"Returns a specific character from a given string","1812582011":"Connecting to server","1813700208":"Boom 300 Index","1813958354":"Remove comment","1815034361":"alphabetic","1815995250":"Buying contract","1816126006":"Trade on Deriv MT5 ({{platform_name_dmt5}}), the all-in-one FX and CFD trading platform.","1817154864":"This block gives you a random number from within a set range.","1820242322":"e.g. United States","1820332333":"Top up","1823177196":"Most popular","1824193700":"This block gives you the last digit of the latest tick value.","1827607208":"File not uploaded.","1828370654":"Onboarding","1830520348":"{{platform_name_dxtrade}} Password","1833481689":"Unlock","1833499833":"Proof of identity documents upload failed","1836767074":"Search payment agent name","1837762008":"Please submit your proof of identity and proof of address to verify your account in your account settings to access the cashier.","1838639373":"Resources","1839021527":"Please enter a valid account number. Example: CR123456789","1840865068":"set {{ variable }} to Simple Moving Average Array {{ dummy }}","1841788070":"Palladium/USD","1841996888":"Daily loss limit","1842266423":"back","1842862156":"Welcome to your Deriv X dashboard","1843658716":"If you select \"Only Downs\", you win the payout if consecutive ticks fall successively after the entry spot. No payout if any tick rises or is equal to any of the previous ticks.","1845892898":"(min: {{min_stake}} - max: {{max_payout}})","1846266243":"This feature is not available for demo accounts.","1846587187":"You have not selected your country of residence","1846664364":"{{platform_name_dxtrade}}","1849484058":"Any unsaved changes will be lost.","1850031313":"- Low: the lowest price","1850132581":"Country not found","1850659345":"- Payout: the payout of the contract","1850663784":"Submit proofs","1851052337":"Place of birth is required.","1851776924":"upper","1851951013":"Please switch to your demo account to run your DBot.","1854480511":"Cashier is locked","1854874899":"Back to list","1855566768":"List item position","1856485118":"Please <0>resubmit your proof of address to transfer funds between MT5 and Deriv accounts.","1858251701":"minute","1859308030":"Give feedback","1863053247":"Please upload your identity document.","1863731653":"To receive your funds, contact the payment agent","1866811212":"Deposit in your local currency via an authorised, independent payment agent in your country.","1866836018":"<0/><1/>If your complaint relates to our data processing practices, you can submit a formal complaint to your local supervisory authority.","1867217564":"Index must be a positive integer","1867783237":"High-to-Close","1869315006":"See how we protect your funds to unlock the cashier.","1869787212":"Even","1870933427":"Crypto","1871196637":"True if the result of the last trade matches the selection","1871664426":"Note","1871804604":"Regulated by the British Virgin Islands Financial Services Commission (License no. SIBA/L/18/1114)","1873838570":"Please verify your address","1874481756":"Use this block to purchase the specific contract you want. You may add multiple Purchase blocks together with conditional blocks to define your purchase conditions. This block can only be used within the Purchase conditions block.","1874756442":"BVI","1876325183":"Minutes","1877225775":"Your proof of address is verified","1877410120":"What you need to do now","1877832150":"# from end","1879042430":"Appropriateness Test, WARNING:","1879412976":"Profit amount: <0>{{profit}}","1880029566":"Australian Dollar","1880097605":"prompt for {{ string_or_number }} with message {{ input_text }}","1880875522":"Create \"get %1\"","1881018702":"hour","1881587673":"Total stake since you last cleared your stats.","1882825238":"Restart trading conditions","1883531976":"Clerks","1885708031":"#","1887852176":"Site is being updated","1889357660":"Enter a value in minutes, up to 60480 minutes (equivalent to 6 weeks).","1890171328":"By clicking Accept below and proceeding with the Account Opening you should note that you may be exposing yourself to risks (which may be significant, including the risk of loss of the entire sum invested) that you may not have the knowledge and experience to properly assess or mitigate.","1890332321":"Returns the number of characters of a given string of text, including numbers, spaces, punctuation marks, and symbols.","1894667135":"Please verify your proof of address","1898670234":"{{formatted_opening_time}} (GMT) on {{opening_day}},<0> {{opening_date}}.","1902547203":"MetaTrader 5 MacOS app","1903437648":"Blurry photo detected","1905032541":"We're now ready to verify your identity","1905589481":"If you want to change your account currency, please contact us via <0>live chat.","1906639368":"If this is the first time you try to create a password, or you have forgotten your password, please reset it.","1907884620":"Add a real Deriv Gaming account","1908239019":"Make sure all of the document is in the photo","1908686066":"Appropriateness Test Warning","1909647105":"TRX/USD","1909769048":"median","1913777654":"Switch account","1914014145":"Today","1914270645":"Default Candle Interval: {{ candle_interval_type }}","1914725623":"Upload the page that contains your photo.","1917523456":"This block sends a message to a Telegram channel. You will need to create your own Telegram bot to use this block.","1917804780":"You will lose access to your Options account when it gets closed, so be sure to withdraw all your funds. (If you have a CFDs account, you can also transfer the funds from your Options account to your CFDs account.)","1918633767":"Second line of address is not in a proper format.","1918796823":"Please enter a stop loss amount.","1918832194":"No experience","1919030163":"Tips to take a good selfie","1919594496":"{{website_name}} is not affiliated with any payment agents. Customers deal with payment agents at their sole risk. Customers are advised to check the credentials of payment agents and the accuracy of any information about payment agents (on {{website_name}} or elsewhere) before using their services.","1919694313":"To start trading, transfer funds from your Deriv account into this account.","1920217537":"Compare","1920468180":"How to use the SMA block","1921634159":"A few personal details","1921914669":"Deposit with Deriv P2P","1922529883":"Boom 1000 Index","1922955556":"Use a longer keyboard pattern with more turns","1923431535":"“Stop loss” is deactivated and will only be available when “Deal cancellation” expires.","1924365090":"Maybe later","1924765698":"Place of birth*","1925090823":"Sorry, trading is unavailable in {{clients_country}}.","1927244779":"Use only the following special characters: . , ' : ; ( ) @ # / -","1928930389":"GBP/NOK","1929309951":"Employment Status","1929694162":"Compare accounts","1930899934":"Tether","1931659123":"Run on every tick","1931884033":"It seems that your date of birth in the document is not the same as your Deriv profile. Please update your date of birth in the <0>Personal details page to solve this issue.","1939902659":"Signal","1940408545":"Delete this token","1941915555":"Try later","1942091675":"Cryptocurrency trading is not available for clients residing in the United Kingdom.","1943440862":"Calculates Bollinger Bands (BB) list from a list with a period","1944204227":"This block returns current account balance.","1947527527":"1. This link was sent by you","1948092185":"GBP/CAD","1949719666":"Here are the possible reasons:","1950413928":"Submit identity documents","1952580688":"Submit passport photo page","1955219734":"Town/City*","1957759876":"Upload identity document","1958807602":"4. 'Table' takes an array of data, such as a list of candles, and displays it in a table format.","1959678342":"Highs & Lows","1960240336":"first letter","1964097111":"USD","1964165648":"Connection lost","1965916759":"Asian options settle by comparing the last tick with the average spot over the period.","1966023998":"2FA enabled","1966281100":"Console {{ message_type }} value: {{ input_message }}","1968025770":"Bitcoin Cash","1968077724":"Agriculture","1968368585":"Employment status","1971898712":"Add or manage account","1973536221":"You have no open positions yet.","1973564194":"You are limited to one fiat account. You won’t be able to change your account currency if you have already made your first deposit or created a real {{dmt5_label}} or {{platform_name_dxtrade}} account.","1974273865":"This scope will allow third-party apps to view your account activity, settings, limits, balance sheets, trade purchase history, and more.","1981940238":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}} and {{legal_entity_name_v}}.","1982912252":"Relative Strength Index (RSI) from a list with a period","1983001416":"Define your trade options such as multiplier and stake. This block can only be used with the multipliers trade type. If you select another trade type, this block will be replaced with the Trade options block.","1983387308":"Preview","1983544897":"P.O. Box is not accepted in address","1983676099":"Please check your email for details.","1984700244":"Request an input","1984742793":"Uploading documents","1985366224":"Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts and up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts.","1985637974":"Any blocks placed within this block will be executed at every tick. If the default candle interval is set to 1 minute in the Trade Parameters root block, the instructions in this block will be executed once every minute. Place this block outside of any root block.","1986498784":"BTC/LTC","1987080350":"Demo","1987447369":"Your cashier is locked","1988153223":"Email address","1988302483":"Take profit:","1988601220":"Duration value","1990331072":"Proof of ownership","1990735316":"Rise Equals","1991448657":"Don't know your tax identification number? Click <0>here to learn more.","1991524207":"Jump 100 Index","1994023526":"The email address you entered had a mistake or typo (happens to the best of us).","1994558521":"The platforms aren’t user-friendly.","1994600896":"This block requires a list of candles as an input parameter.","1995023783":"First line of address*","1996767628":"Please confirm your tax information.","1997138507":"If the last tick is equal to the average of the ticks, you don't win the payout.","1998199587":"You can also exclude yourself entirely for a specified duration. If, at any time, you decide to trade again, you must then contact our Customer Support to remove this self-exclusion. There will be a 24-hour-cooling-off period before you can resume trading. ","2001222130":"Check your spam or junk folder. If it's not there, try resending the email.","2004395123":"New trading tools for MT5","2004792696":"If you are a UK resident, to self-exclude from all online gambling companies licensed in Great Britain, go to <0>www.gamstop.co.uk.","2007028410":"market, trade type, contract type","2007092908":"Trade with leverage and low spreads for better returns on successful trades.","2008809853":"Please proceed to withdraw your funds before 30 November 2021.","2009620100":"DBot will not proceed with any new trades. Any ongoing trades will be completed by our system. Any unsaved changes will be lost.<0>Note: Please check your statement to view completed transactions.","2009770416":"Address:","2010759971":"Uploads successful","2010866561":"Returns the total profit/loss","2011609940":"Please input number greater than 0","2011808755":"Purchase Time","2014536501":"Card number","2014590669":"Variable '{{variable_name}}' has no value. Please set a value for variable '{{variable_name}}' to notify.","2017672013":"Please select the country of document issuance.","2020545256":"Close your account?","2021037737":"Please update your details to continue.","2023659183":"Student","2023762268":"I prefer another trading website.","2025339348":"Move away from direct light — no glare","2027625329":"Simple Moving Average Array (SMAA)","2027696535":"Tax information","2028163119":"EOS/USD","2029237955":"Labuan","2030018735":"RSI is a technical analysis tool that helps you identify the market trend. It will give you a value from 0 to 100. An RSI value of 70 and above means that the asset is overbought and the current trend may reverse, while a value of 30 and below means that the asset is oversold.","2030045667":"Message","2033648953":"This block gives you the specified candle value for a selected time interval.","2034803607":"You must be 18 years old and above.","2035258293":"Start trading with us","2035925727":"sort {{ sort_type }} {{ sort_direction }} {{ input_list }}","2036578466":"Should be {{value}}","2037481040":"Choose a way to fund your account","2037665157":"Expand All Blocks","2037906477":"get sub-list from #","2042023623":"We’re reviewing your documents. This should take about 5 minutes.","2042050260":"- Purchase price: the purchase price (stake) of the contract","2042115724":"Upload a screenshot of your account and personal details page with your name, account number, phone number, and email address.","2042778835":"This complaints policy, which may change from time to time, applies to your account registered with {{legal_entity_name}}.","2044086432":"The close is the latest tick at or before the end time. If you selected a specific end time, the end time is the selected time.","2046273837":"Last tick","2048110615":"Email address*","2048134463":"File size exceeded.","2050080992":"Tron","2050170533":"Tick list","2051558666":"View transaction history","2053617863":"Please proceed to withdraw all your funds from your account.","2054889300":"Create \"%1\"","2055317803":"Copy the link to your mobile browser","2057082550":"Accept our updated <0>terms and conditions","2057419639":"Exit Spot","2060873863":"Your order {{order_id}} is complete","2062912059":"function {{ function_name }} {{ function_params }}","2063655921":"By purchasing the \"Close-to-Low\" contract, you'll win the multiplier times the difference between the close and low over the duration of the contract.","2063812316":"Text Statement","2063890788":"Cancelled","2065278286":"Spread","2067903936":"Driving licence","2070002739":"Don’t accept","2070752475":"Regulatory Information","2071043849":"Browse","2074235904":"Last name is required.","2074497711":"The Telegram notification could not be sent","2080553498":"3. Get the chat ID using the Telegram REST API (read more: https://core.telegram.org/bots/api#getupdates)","2080829530":"Sold for: {{sold_for}}","2082533832":"Yes, delete","2084693624":"Converts a string representing a date/time string into seconds since Epoch. Example: 2019-01-01 21:03:45 GMT+0800 will be converted to 1546347825. Time and time zone offset are optional.","2084925123":"Use our fiat onramp services to buy and deposit cryptocurrency into your Deriv account.","2085387371":"Must be numbers, letters, and special characters . , ' -","2085602195":"- Entry value: the value of the first tick of the contract","2086742952":"You have added a real Options account.<0/>Make a deposit now to start trading.","2086792088":"Both barriers should be relative or absolute","2088735355":"Your session and login limits","2089087110":"Basket indices","2089299875":"Total assets in your Deriv real accounts.","2089581483":"Expires on","2091671594":"Status","2093167705":"You can only make deposits. Please contact us via live chat for more information.","2093675079":"- Close: the closing price","2096014107":"Apply","2096456845":"Date of birth*","2097170986":"About Tether (Omni)","2097381850":"Calculates Simple Moving Average line from a list with a period","2097932389":"Upload 2 separate screenshots from the personal details page and the account page via <0>https://app.astropay.com/profile","2100713124":"account","2101972779":"This is the same as the above example, using a tick list.","2102572780":"Length of digit code must be 6 characters.","2104115663":"Last login","2104397115":"Please go to your account settings and complete your personal details to enable deposits and withdrawals.","2107381257":"Scheduled cashier system maintenance","2109312805":"The spread is the difference between the buy price and sell price. A variable spread means that the spread is constantly changing, depending on market conditions. A fixed spread remains constant but is subject to alteration, at the Broker's absolute discretion.","2110365168":"Maximum number of trades reached","2111015970":"This block helps you check if your contract can be sold. If your contract can be sold, it returns “True”. Otherwise, it returns an empty string.","2111528352":"Creating a variable","2112119013":"Take a selfie showing your face","2112175277":"with delimiter","2113321581":"Add a Deriv Gaming account","2115007481":"Total assets in your Deriv demo accounts.","2115223095":"Loss","2117073379":"Our cryptocurrency cashier is temporarily down due to system maintenance. You can access the Cashier in a few minutes when the maintenance is complete.","2117165122":"1. Create a Telegram bot and get your Telegram API token. Read more on how to create bots in Telegram here: https://core.telegram.org/bots#6-botfather","2117489390":"Auto update in {{ remaining }} seconds","2118315870":"Where do you live?","2119449126":"Example output of the below example will be:","2120617758":"Set up your trade","2121227568":"NEO/USD","2127564856":"Withdrawals are locked","2131963005":"Please withdraw your funds from the following Deriv MT5 account(s):","2133451414":"Duration","2133470627":"This block returns the potential payout for the selected trade type. This block can be used only in the \"Purchase conditions\" root block.","2135563258":"Forex trading frequency","2136246996":"Selfie uploaded","2137901996":"This will clear all data in the summary, transactions, and journal panels. All counters will be reset to zero.","2137993569":"This block compares two values and is used to build a conditional structure.","2138861911":"Scans and photocopies are not accepted","2139171480":"Reset Up/Reset Down","2139362660":"left side","2141055709":"New {{type}} password","2141873796":"Get more info on <0>CFDs, <1>multipliers, and <2>options.","2143803283":"Purchase Error","2144609616":"If you select \"Reset-Down”, you win the payout if the exit spot is strictly lower than either the entry spot or the spot at reset time.","2145690912":"Income Earning","2145995536":"Create new account","2146336100":"in text %1 get %2","2146892766":"Binary options trading experience","-153346659":"Upload your selfie.","-602131304":"Passport number","-1051213440":"Upload the front and back of your identity card.","-1600807543":"First, enter your identity card number and the expiry date.","-1139923664":"Next, upload the front and back of your identity card.","-783705755":"Upload the front of your identity card.","-566750665":"NIMC slip and proof of age","-1465944279":"NIMC slip number","-429612996":"Next, upload both of the following documents.","-376981174":"Upload your proof of age: birth certificate or age declaration document.","-612174191":"First line of address is required","-242734402":"Only {{max}} characters, please.","-378415317":"State is required","-1784470716":"State is not in a proper format","-1699820408":"Please enter a {{field_name}} under {{max_number}} characters.","-1575567374":"postal/ZIP code","-1497654315":"Our accounts and services are unavailable for the Jersey postal code.","-755626951":"Complete your address details","-1024240099":"Address","-584911871":"Select wallet currency","-1461267236":"Please choose your currency","-1352330125":"CURRENCY","-1027595143":"Less than $25,000","-40491332":"$25,000 - $50,000","-1139806939":"$50,001 - $100,000","-626752657":"0-1 year","-532014689":"1-2 years","-1001024004":"Over 3 years","-790513277":"6-10 transactions in the past 12 months","-580085300":"11-39 transactions in the past 12 months","-654781670":"Primary","-1717373258":"Secondary","-996132458":"Construction","-915003867":"Health","-1430012453":"Information & Communications Technology","-987824916":"Science & Engineering","-146630682":"Social & Cultural","-761306973":"Manufacturing","-739367071":"Employed","-1156937070":"$500,001 - $1,000,000","-315534569":"Over $1,000,000","-2068544539":"Salaried Employee","-531314998":"Investments & Dividends","-1235114522":"Pension","-1298056749":"State Benefits","-449943381":"Savings & Inheritance","-1631552645":"Professionals","-474864470":"Personal Care, Sales and Service Workers","-1129355784":"Agricultural, Forestry and Fishery Workers","-1242914994":"Craft, Metal, Electrical and Electronics Workers","-1317824715":"Cleaners and Helpers","-1592729751":"Mining, Construction, Manufacturing and Transport Workers","-2137323480":"Company Ownership","-1590574533":"Divorce Settlement","-1667683002":"Inheritance","-1237843731":"Investment Income","-777506574":"Sale of Property","-1161338910":"First name is required.","-1161818065":"Last name should be between 2 and 50 characters.","-1281693513":"Date of birth is required.","-26599672":"Citizenship is required","-912174487":"Phone is required.","-673765468":"Letters, numbers, spaces, periods, hyphens and forward slashes only.","-1356204661":"This Tax Identification Number (TIN) is invalid. You may continue with account creation, but to facilitate future payment processes, valid tax information will be required.","-1823540512":"Personal details","-1227878799":"Speculative","-1174064217":"Mr","-855506127":"Ms","-621555159":"Identity information","-204765990":"Terms of use","-231863107":"No","-870902742":"How much knowledge and experience do you have in relation to online trading?","-1929477717":"I have an academic degree, professional certification, and/or work experience related to financial services.","-1540148863":"I have attended seminars, training, and/or workshops related to trading.","-922751756":"Less than a year","-542986255":"None","-1337206552":"In your understanding, CFD trading allows you to","-456863190":"Place a position on the price movement of an asset where the outcome is a fixed return or nothing at all.","-1314683258":"Make a long-term investment for a guaranteed profit.","-1546090184":"How does leverage affect CFD trading?","-1636427115":"Leverage helps to mitigate risk.","-800221491":"Leverage guarantees profits.","-811839563":"Leverage lets you open large positions for a fraction of trade value, which may result in increased profit or loss.","-1185193552":"Close your trade automatically when the loss is equal to or more than a specified amount, as long as there is adequate market liquidity.","-1046354":"Close your trade automatically when the profit is equal to or more than a specified amount, as long as there is adequate market liquidity.","-1842858448":"Make a guaranteed profit on your trade.","-659266366":"When opening a leveraged CFD trade","-1078152772":"When trading multipliers","-1507432523":"When buying shares of a company","-1847406474":"All of the above","-931052769":"Submit verification","-1004605898":"Tips","-1938142055":"Documents uploaded","-448090287":"The link only works on mobile devices","-1244287721":"Something's gone wrong","-241258681":"You'll need to restart your verification on your computer","-929254273":"Get secure link","-2021867851":"Check back here to finish the submission","-1547069149":"Open the link and complete the tasks","-1767652006":"Here's how to do it:","-277611959":"You can now return to your computer to continue","-724178625":"Make sure full document is visible","-1519380038":"Glare detected","-1895280620":"Make sure your card details are clear to read, with no blur or glare","-1464447919":"Make sure your permit details are clear to read, with no blur or glare","-1436160506":"Make sure details are clear to read, with no blur or glare","-759124288":"Close","-759118956":"Redo","-753375398":"Enlarge image","-1042933881":"Driver's license","-1503134764":"Face photo page","-1335343167":"Sorry, no mobile phone bills","-699045522":"Documents you can use to verify your identity","-543666102":"It must be an official photo ID","-903877217":"These are the documents most likely to show your current home address","-1356835948":"Choose document","-1364375936":"Select a %{country} document","-401586196":"or upload photo – no scans or photocopies","-3110517":"Take a photo with your phone","-2033894027":"Submit identity card (back)","-20684738":"Submit license (back)","-1359585500":"Submit license (front)","-106779602":"Submit residence permit (back)","-1287247476":"Submit residence permit (front)","-1954762444":"Restart the process on the latest version of Safari","-261174676":"Must be under 10MB.","-685885589":"An error occurred while loading the component","-502539866":"Your face is needed in the selfie","-1377968356":"Please try again","-1226547734":"Try using a JPG or PNG file","-849068301":"Loading...","-1730346712":"Loading","-1849371752":"Check that your number is correct","-309848900":"Copy","-1424436001":"Send link","-1093833557":"How to scan a QR code","-1408210605":"Point your phone’s camera at the QR code","-1773802163":"If it doesn’t work, download a QR code scanner from Google Play or the App Store","-109026565":"Scan QR code","-1644436882":"Get link via SMS","-1667839246":"Enter mobile number","-1533172567":"Enter your mobile number:","-1352094380":"Send this one-time link to your phone","-28974899":"Get your secure link","-359315319":"Continue","-1279080293":"2. Your desktop window stays open","-102776692":"Continue with the verification","-89152891":"Take a photo of the back of your card","-1646367396":"Take a photo of the front of your card","-1350855047":"Take a photo of the front of your license","-2119367889":"Take a photo using the basic camera mode instead","-342915396":"Take a photo","-419040068":"Passport photo page","-1354983065":"Refresh","-1925063334":"Recover camera access to continue face verification","-54784207":"Camera access is denied","-1392699864":"Allow camera access","-269477401":"Provide the whole document page for best results","-864639753":"Upload back of card from your computer","-1309771027":"Upload front of license from your computer","-1722060225":"Take photo","-565732905":"Selfie","-1703181240":"Check that it is connected and functional. You can also continue verification on your phone","-2043114239":"Camera not working?","-2029238500":"It may be disconnected. Try using your phone instead.","-468928206":"Make sure your device's camera works","-466246199":"Camera not working","-698978129":"Remember to press stop when you're done. Redo video actions","-538456609":"Looks like you took too long","-781816433":"Photo of your face","-1471336265":"Make sure your selfie clearly shows your face","-1375068556":"Check selfie","-1914530170":"Face forward and make sure your eyes are clearly visible","-776541617":"We'll compare it with your document","-478752991":"Your link will expire in one hour","-1859729380":"Keep this window open while using your mobile","-1283761937":"Resend link","-629011256":"Don't refresh this page","-1005231905":"Once you've finished we'll take you to the next step","-542134805":"Upload photo","-1462975230":"Document example","-1472844935":"The photo should clearly show your document","-189310067":"Account closed","-849320995":"Assessments","-773766766":"Email and passwords","-1466827732":"Self exclusion","-1498206510":"Account limits","-241588481":"Login history","-966136867":"Connected apps","-213009361":"Two-factor authentication","-1214803297":"Dashboard-only path","-526636259":"Error 404","-1030759620":"Government Officers","-1196936955":"Upload a screenshot of your name and email address from the personal information section.","-1286823855":"Upload your mobile bill statement showing your name and phone number.","-1309548471":"Upload your bank statement showing your name and account details.","-1410396115":"Upload a photo showing your name and the first six and last four digits of your card number. If the card does not display your name, upload the bank statement showing your name and card number in the transaction history.","-3805155":"Upload a screenshot of either of the following to process the transaction:","-1523487566":"- your account profile section on the website","-613062596":"- the Account Information page on the app","-1718304498":"User ID","-609424336":"Upload a screenshot of your name, account number, and email address from the personal details section of the app or profile section of your account on the website.","-1954436643":"Upload a screenshot of your username on the General Information page at <0>https://onlinenaira.com/members/index.htm","-79853954":"Upload a screenshot of your account number and phone number on the Bank Account/Mobile wallet page at <0>https://onlinenaira.com/members/bank.htm","-1192882870":"Upload a screenshot of your name and account number from the personal details section.","-612752984":"These are default limits that we apply to your accounts.","-1598263601":"To learn more about trading limits and how they apply, please go to the <0>Help Centre.","-1340125291":"Done","-1786659798":"Trading limits - Item","-1101543580":"Limit","-858297154":"Represents the maximum amount of cash that you may hold in your account. If the maximum is reached, you will be asked to withdraw funds.","-976258774":"Not set","-1182362640":"Represents the maximum aggregate payouts on outstanding contracts in your portfolio. If the maximum is attained, you may not purchase additional contracts without first closing out existing positions.","-1781293089":"Maximum aggregate payouts on open positions","-1412690135":"*Any limits in your Self-exclusion settings will override these default limits.","-1598751496":"Represents the maximum volume of contracts that you may purchase in any given trading day.","-1359847094":"Trading limits - Maximum daily turnover","-1502578110":"Your account is fully authenticated and your withdrawal limits have been lifted.","-138380129":"Total withdrawal allowed","-854023608":"To increase limit please verify your identity","-1500958859":"Verify","-1662154767":"a recent utility bill (e.g. electricity, water, gas, landline, or internet), bank statement, or government-issued letter with your name and this address.","-190838815":"We need this for verification. If the information you provide is fake or inaccurate, you won’t be able to deposit and withdraw.","-223216785":"Second line of address*","-594456225":"Second line of address","-1315410953":"State/Province","-1940457555":"Postal/ZIP Code*","-1964954030":"Postal/ZIP Code","-1541554430":"Next","-71696502":"Previous","-1437206131":"JPEG JPG PNG PDF GIF","-820458471":"1 - 6 months old","-155705811":"A clear colour photo or scanned image","-587941902":"Issued under your name with your current address","-438669274":"JPEG JPG PNG PDF GIF","-723198394":"File size should be 8MB or less","-1948369500":"File uploaded is not supported","-1040865880":"Drop files here..","-1437017790":"Financial information","-39038029":"Trading experience","-1416797980":"Please enter your {{ field_name }} as in your official identity documents.","-1466268810":"Please remember that it is your responsibility to keep your answers accurate and up to date. You can update your personal details at any time in your <0>account settings.","-32386760":"Name","-1120954663":"First name*","-1659980292":"First name","-766265812":"first name","-1857534296":"John","-1282749116":"last name","-1485480657":"Other details","-1784741577":"date of birth","-1315571766":"Place of birth","-2040322967":"Citizenship","-1692219415":"Tax residence","-1903720068":"The country in which you meet the criteria for paying taxes. Usually the country in which you physically reside.","-651516152":"Tax Identification Number","-1543016582":"I hereby confirm that the tax information I provided is true and complete. I will also inform {{legal_entity_name}} about any changes to this information.","-1387062433":"Account opening reason","-1088324715":"We’ll review your documents and notify you of its status within 1 - 3 working days.","-329713179":"Ok","-1176889260":"Please select a document type.","-1515286538":"Please enter your document number. ","-1785463422":"Verify your identity","-78467788":"Please select the document type and enter the ID number.","-1117345066":"Choose the document type","-651192353":"Sample:","-1263033978":"Please ensure all your personal details are the same as in your chosen document. If you wish to update your personal details, go to account settings.","-937707753":"Go Back","-1926456107":"The ID you submitted is expired.","-555047589":"It looks like your identity document has expired. Please try again with a valid document.","-841187054":"Try Again","-2097808873":"We were unable to verify your ID with the details you provided. ","-228284848":"We were unable to verify your ID with the details you provided.","-1391934478":"Your ID is verified. You will also need to submit proof of your address.","-118547687":"ID verification passed","-200989771":"Go to personal details","-1358357943":"Please check and update your postal code before submitting proof of identity.","-1401994581":"Your personal details are missing","-2004327866":"Please select a valid country of document issuance.","-1664159494":"Country","-1874113454":"Please check and resubmit or choose a different document type.","-1044962593":"Upload Document","-749870311":"Please contact us via <0>live chat.","-1084991359":"Proof of identity verification not required","-1981334109":"Your account does not need identity verification at this time. We will inform you if identity verification is required in the future.","-182918740":"Your proof of identity submission failed because:","-246893488":"JPEG, JPG, PNG, PDF, or GIF","-1454880310":"Must be valid for at least 6 months","-100534371":"Before uploading, please ensure that you’re facing forward in the selfie, your face is within the frame, and your eyes are clearly visible even if you’re wearing glasses.","-1529523673":"Confirm and upload","-705047643":"Sorry, an error occured. Please select another file.","-1664309884":"Tap here to upload","-1725454783":"Failed","-839094775":"Back","-856213726":"You must also submit a proof of address.","-987011273":"Your proof of ownership isn't required.","-808299796":"You are not required to submit proof of ownership at this time. We will inform you if proof of ownership is required in the future.","-179726573":"We’ve received your proof of ownership.","-813779897":"Proof of ownership verification passed.","-1389323399":"You should enter {{min_number}}-{{max_number}} characters.","-1313806160":"Please request a new password and check your email for the new token.","-1598167506":"Success","-1077809489":"You have a new {{platform}} password to log in to your {{platform}} accounts on the web and mobile apps.","-2068479232":"{{platform}} password","-1332137219":"Strong passwords contain at least 8 characters that include uppercase and lowercase letters, numbers, and symbols.","-2005211699":"Create","-1597186502":"Reset {{platform}} password","-638756912":"Black out digits 7 to 12 of the card number that’s shown on the front of your debit/credit card.⁤","-848721396":"These trading limits are optional, and you can strengthen them at any time. If you don’t wish to set a specific limit, leave the field blank. If you live in the United Kingdom, Customer Support can only remove or weaken your trading limits after 24 hours of receiving the request. If you live in the Isle of Man, Customer Support can only remove or weaken your trading limits after your trading limit period has expired.","-469096390":"These trading limits are optional, and you can strengthen them at any time. If you don’t wish to set a specific limit, leave the field blank. Customer Support can only remove or weaken your trading limits after 24 hours of receiving the request.","-42808954":"You can also exclude yourself entirely for a specified duration. This can only be removed once your self-exclusion has expired. If you wish to continue trading once your self-exclusion period expires, you must contact Customer Support by calling <0>+447723580049 to lift this self-exclusion. Requests by chat or email shall not be entertained. There will be a 24-hour cooling-off period before you can resume trading.","-1088698009":"These self-exclusion limits help you control the amount of money and time you spend trading on {{platform_name_trader}}, {{platform_name_dbot}}, {{platform_name_smarttrader}} and {{platform_name_bbot}} on Deriv. The limits you set here will help you exercise <0>responsible trading.","-1702324712":"These limits are optional, and you can adjust them at any time. You decide how much and how long you’d like to trade. If you don’t wish to set a specific limit, leave the field blank.","-1819875658":"You can also exclude yourself entirely for a specified duration. Once the self-exclusion period has ended, you can either extend it further or resume trading immediately. If you wish to reduce or remove the self-exclusion period, contact our <0>Customer Support.","-1031814119":"About trading limits and self-exclusion","-183468698":"Trading limits and self-exclusion","-933963283":"No, review my limits","-1759860126":"Yes, log me out immediately","-572347855":"{{value}} mins","-313333548":"You’ll be able to adjust these limits at any time. You can reduce your limits from the <0>self-exclusion page. To increase or remove your limits, please contact our <1>Customer Support team.","-1265833982":"Accept","-2123139671":"Your stake and loss limits","-1250802290":"24 hours","-2070080356":"Max. total stake","-1545823544":"7 days","-180147209":"You will be automatically logged out from each session after this time limit.","-374553538":"Your account will be excluded from the website until this date (at least 6 months, up to 5 years).","-2121421686":"To self-exclude from all online gambling companies licensed in Great Britain, go to <0>www.gamstop.co.uk.","-2105708790":"Your maximum account balance and open positions","-1960600163":"Once your account balance reaches this amount, you will not be able to deposit funds into your account.","-1073845224":"No. of open position(s)","-288196326":"Your maximum deposit limit","-568749373":"Max. deposit limit","-1884902844":"Max. deposit limit per day","-545085253":"Max. deposit limit over 7 days","-1031006762":"Max. deposit limit over 30 days","-1116871438":"Max. total loss over 30 days","-2134714205":"Time limit per session","-1884271702":"Time out until","-1265825026":"Timeout time must be greater than current time.","-1332882202":"Timeout time cannot be more than 6 weeks.","-1635977118":"Exclude time cannot be less than 6 months.","-2073934245":"The financial trading services offered on this site are only suitable for customers who accept the possibility of losing all the money they invest and who understand and have experience of the risk involved in the purchase of financial contracts. Transactions in financial contracts carry a high degree of risk. If the contracts you purchased expire as worthless, you will lose all your investment, which includes the contract premium.","-1166068675":"Your account will be opened with {{legal_entity_name}}, regulated by the UK Gaming Commission (UKGC), and will be subject to the laws of the Isle of Man.","-975118358":"Your account will be opened with {{legal_entity_name}}, regulated by the Malta Financial Services Authority (MFSA), and will be subject to the laws of Malta.","-680528873":"Your account will be opened with {{legal_entity_name}} and will be subject to the laws of Samoa.","-1125193491":"Add account","-2068229627":"I am not a PEP, and I have not been a PEP in the last 12 months.","-684271315":"OK","-1720468017":"In providing our services to you, we are required to obtain information from you in order to assess whether a given product or service is appropriate for you.","-186841084":"Change your login email","-907403572":"To change your email address, you'll first need to unlink your email address from your {{identifier_title}} account.","-1850792730":"Unlink from {{identifier_title}}","-2139303636":"You may have followed a broken link, or the page has moved to a new address.","-1448368765":"Error code: {{error_code}} page not found","-2145244263":"This field is required","-254792921":"You can only make deposits at the moment. To enable withdrawals, please complete your financial assessment.","-70342544":"We’re legally obliged to ask for your financial information.","-1100235269":"Industry of employment","-684388823":"Estimated net worth","-601903492":"Forex trading experience","-1012699451":"CFD trading experience","-1894668798":"Other trading instruments experience","-1026468600":"Other trading instruments frequency","-179005984":"Save","-307865807":"Risk Tolerance Warning","-690100729":"Yes, I understand the risk.","-2010628430":"CFDs and other financial instruments come with a high risk of losing money rapidly due to leverage. You should consider whether you understand how CFDs and other financial instruments work and whether you can afford to take the high risk of losing your money. <0/><0/> To continue, you must confirm that you understand your capital is at risk.","-863770104":"Please note that by clicking ‘OK’, you may be exposing yourself to risks. You may not have the knowledge or experience to properly assess or mitigate these risks, which may be significant, including the risk of losing the entire sum you have invested.","-1292808093":"Trading Experience","-789291456":"Tax residence*","-1651554702":"Only alphabet is allowed","-1458676679":"You should enter 2-50 characters.","-1166111912":"Use only the following special characters: {{ permitted_characters }}","-884768257":"You should enter 0-35 characters.","-2113555886":"Only letters, numbers, space, and hyphen are allowed.","-874280157":"This Tax Identification Number (TIN) is invalid. You may continue using it, but to facilitate future payment processes, valid tax information will be required.","-1037916704":"Miss","-1113902570":"Details","-634958629":"We use the information you give us only for verification purposes. All information is kept confidential.","-731992635":"Title*","-352888977":"Title","-136976514":"Country of residence*","-945104751":"We’re legally obliged to ask for your tax information.","-1702919018":"Second line of address (optional)","-1124948631":"Professional Client","-259515058":"By default, all {{brand_website_name}} clients are retail clients but anyone can request to be treated as a professional client.","-1463348492":"I would like to be treated as a professional client.","-1958764604":"Email preference","-2121071263":"Check this box to receive updates via email.","-2068064150":"Get updates about Deriv products, services and events.","-1558679249":"Please make sure your information is correct or it may affect your trading experience.","-1822545742":"Ether Classic","-1334641066":"Litecoin","-1214036543":"US Dollar","-1782590355":"No currency has been set for this account","-2116332353":"Please close your positions in the following Deriv account(s):","-2048005267":"{{number_of_positions}} position(s)","-1923892687":"Please withdraw your funds from the following Deriv X account(s):","-1629894615":"I have other financial priorities.","-844051272":"I want to stop myself from trading.","-1113965495":"I’m no longer interested in trading.","-1224285232":"Customer service was unsatisfactory.","-9323953":"Remaining characters: {{remaining_characters}}","-2061895474":"Closing your account will automatically log you out. We shall delete your personal information as soon as our legal obligations are met.","-203298452":"Close account","-1219849101":"Please select at least one reason","-484540402":"An error occurred","-1911549768":"Inaccessible MT5 account(s)","-1869355019":"Action required","-1030102424":"You can't trade on Deriv.","-448385353":"You can't make transactions.","-1058447223":"Before closing your account:","-912764166":"Withdraw your funds.","-60139953":"We shall delete your personal information as soon as our legal obligations are met, as mentioned in the section on Data Retention in our <0>Security and privacy policy","-536187647":"Confirm revoke access?","-1357606534":"Permission","-570222048":"Revoke access","-1076138910":"Trade","-488597603":"Trading information","-1666909852":"Payments","-506510414":"Date and time","-1708927037":"IP address","-80717068":"Apps you have linked to your <0>Deriv password:","-2143208677":"Click the <0>Change password button to change your Deriv MT5 password.","-9570380":"Use the {{platform_name_dxtrade}} password to log in to your {{platform_name_dxtrade}} accounts on the web and mobile apps.","-412891493":"Disable 2FA","-200487676":"Enable","-1840392236":"That's not the right code. Please try again.","-307075478":"6 digit code","-790444493":"Protect your account with 2FA. Each time you log in to your account, you will need to enter your password and an authentication code generated by a 2FA app on your smartphone.","-368010540":"You have enabled 2FA for your Deriv account.","-403552929":"To disable 2FA, please enter the six-digit authentication code generated by your 2FA app below:","-752939584":"How to set up 2FA for your Deriv account","-90649785":"Click here to copy key","-206376148":"Key copied!","-650175948":"A recent bank statement or government-issued letter with your name and address.","-2006895756":"1. Address","-716361389":"An accurate and complete address helps to speed up your verification process.","-890084320":"Save and submit","-902076926":"Before uploading your document, please ensure that your personal details are updated to match your proof of identity. This will help to avoid delays during the verification process.","-1592318047":"See example","-1376950117":"That file format isn't supported. Please upload .pdf, .png, .jpg, or .jpeg files only.","-1272489896":"Please complete this field.","-397487797":"Enter your full card number","-1411635770":"Learn more about account limits","-516397235":"Be careful who you share this token with. Anyone with this token can perform the following actions on your account behalf","-989216986":"Add accounts","-617480265":"Delete token","-316749685":"Are you sure you want to delete this token?","-786372363":"Learn more about API token","-55560916":"To access our mobile apps and other third-party apps, you'll first need to generate an API token.","-198329198":"API Token","-955038366":"Copy this token","-1668692965":"Hide this token","-1661284324":"Show this token","-605778668":"Never","-1628008897":"Token","-1238499897":"Last Used","-1171226355":"Length of token name must be between {{MIN_TOKEN}} and {{MAX_TOKEN}} characters.","-1803339710":"Maximum {{MAX_TOKEN}} characters.","-408613988":"Select scopes based on the access you need.","-5605257":"This scope will allow third-party apps to withdraw to payment agents and make inter-account transfers for you.","-1373485333":"This scope will allow third-party apps to view your trading history.","-758221415":"This scope will allow third-party apps to open accounts for you, manage your settings and token usage, and more. ","-1117963487":"Name your token and click on 'Create' to generate your token.","-2115275974":"CFDs","-1879666853":"Deriv MT5","-460645791":"You are limited to one fiat account. You won’t be able to change your account currency if you have already made your first deposit or created a real {{dmt5_label}} account.","-1146960797":"Fiat currencies","-1959484303":"Cryptocurrencies","-561724665":"You are limited to one fiat currency only","-2087317410":"Oops, something went wrong.","-509054266":"Anticipated annual turnover","-164448351":"Show less","-1361653502":"Show more","-337620257":"Switch to real account","-2120454054":"Add a real account","-38915613":"Unsaved changes","-2137450250":"You have unsaved changes. Are you sure you want to discard changes and leave this page?","-1067082004":"Leave Settings","-1982432743":"It appears that the address in your document doesn’t match the address\n in your Deriv profile. Please update your personal details now with the\n correct address.","-1451334536":"Continue trading","-1525879032":"Your documents for proof of address is expired. Please submit again.","-1425489838":"Proof of address verification not required","-1008641170":"Your account does not need address verification at this time. We will inform you if address verification is required in the future.","-60204971":"We could not verify your proof of address","-1944264183":"To continue trading, you must also submit a proof of identity.","-1617352279":"The email is in your spam folder (Sometimes things get lost there).","-547557964":"We can’t deliver the email to this address (Usually because of firewalls or filtering).","-142444667":"Please click on the link in the email to change your Deriv MT5 password.","-742748008":"Check your email and click the link in the email to proceed.","-84068414":"Still didn't get the email? Please contact us via <0>live chat.","-428335668":"You will need to set a password to complete the process.","-1517325716":"Deposit via the following payment methods:","-1547606079":"We accept the following cryptocurrencies:","-42592103":"Deposit cryptocurrencies","-639677539":"Buy cryptocurrencies","-1560098002":"Buy cryptocurrencies via fiat onramp","-541870313":"Deposit via payment agents","-58126117":"Your simple access to crypto. Fast and secure way to exchange and purchase cryptocurrencies. 24/7 live chat support.","-1705887186":"Your deposit is successful.","-142361708":"In process","-1582681840":"We’ve received your request and are waiting for more blockchain confirmations.","-1626218538":"You’ve cancelled your withdrawal request.","-1062841150":"Your withdrawal is unsuccessful due to an error on the blockchain. Please <0>contact us via live chat for more info.","-630780094":"We’re awaiting confirmation from the blockchain.","-1525882769":"Your withdrawal is unsuccessful. We've sent you an email with more information.","-298601922":"Your withdrawal is successful.","-2021135479":"This field is required.","-1975494965":"Cashier","-1870909526":"Our server cannot retrieve an address.","-582721696":"The current allowed withdraw amount is {{format_min_withdraw_amount}} to {{format_max_withdraw_amount}} {{currency}}","-1957498244":"more","-197251450":"Don't want to trade in {{currency_code}}? You can open another cryptocurrency account.","-1900848111":"This is your {{currency_code}} account.","-749765720":"Your fiat account currency is set to {{currency_code}}.","-803546115":"Manage your accounts ","-1463156905":"Learn more about payment methods","-1309258714":"From account number","-1247676678":"To account number","-816476007":"Account holder name","-1995606668":"Amount","-344403983":"Description","-922432739":"Please enter a valid client login ID.","-1024241603":"Insufficient balance.","-1979554765":"Please enter a valid description.","-1186807402":"Transfer","-1254233806":"You've transferred","-1491457729":"All payment methods","-142563298":"Contact your preferred payment agent for payment instructions and make your deposit.","-1023961762":"Commission on deposits","-552873274":"Commission on withdrawal","-880645086":"Withdrawal amount","-118683067":"Withdrawal limits: <0 />-<1 />","-1125090734":"Important notice to receive your funds","-1924707324":"View transaction","-1474202916":"Make a new withdrawal","-511423158":"Enter the payment agent account number","-2059278156":"Note: {{website_name}} does not charge any transfer fees.","-1201279468":"To withdraw your funds, please choose the same payment method you used to make your deposits.","-8892474":"Start assessment","-1787304306":"Deriv P2P","-60779216":"Withdrawals are temporarily unavailable due to system maintenance. You can make your withdrawals when the maintenance is complete.","-215186732":"You’ve not set your country of residence. To access Cashier, please update your country of residence in the Personal details section in your account settings.","-1392897508":"The identification documents you submitted have expired. Please submit valid identity documents to unlock Cashier. ","-1321645628":"Your cashier is currently locked. Please contact us via live chat to find out how to unlock it.","-1158467524":"Your account is temporarily disabled. Please contact us via live chat to enable deposits and withdrawals again.","-929148387":"Please set your account currency to enable deposits and withdrawals.","-541392118":"Your account has not been authenticated. Please submit your <0>proof of identity and <1>proof of address to authenticate your account and access your cashier.","-247122507":"Your cashier is locked. Please complete the <0>financial assessment to unlock it.","-1443721737":"Your cashier is locked. See <0>how we protect your funds before you proceed.","-901712457":"Your access to Cashier has been temporarily disabled as you have not set your 30-day turnover limit. Please go to <0>Self-exclusion and set your 30-day turnover limit.","-166472881":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable deposits and withdrawals.","-666905139":"Deposits are locked","-378858101":"Your <0>personal details are incomplete. Please go to your account settings and complete your personal details to enable deposits.","-1037495888":"You have chosen to exclude yourself from trading on our website until {{exclude_until}}. If you are unable to place a trade or deposit after your self-exclusion period, please contact us via live chat.","-949074612":"Please contact us via live chat.","-1318742415":"Your account has not been authenticated. Please submit your <0>proof of identity and <1>proof of address to authenticate your account and request for withdrawals.","-127614820":"Unfortunately, you can only make deposits. Please contact us via live chat to enable withdrawals.","-172277021":"Cashier is locked for withdrawals","-1624999813":"It seems that you've no commissions to withdraw at the moment. You can make withdrawals once you receive your commissions.","-1077304626":"Amount ({{currency}})","-1559994981":"Approximate value","-190084602":"Transaction","-811190405":"Time","-1272778997":"We've sent you an email.","-89973258":"Resend email in {{seconds}}s","-1332236294":"Please verify your identity","-1675848843":"Error","-283017497":"Retry","-1196049878":"First line of home address","-1326406485":"Postal Code/ZIP","-939625805":"Telephone","-442575534":"Email verification failed","-1459042184":"Update your personal details","-1603543465":"We can't validate your personal details because there is some information missing.","-614516651":"Need help? <0>Contact us.","-203002433":"Deposit now","-720315013":"You have no funds in your {{currency}} account","-2052373215":"Please make a deposit to use this feature.","-379487596":"{{selected_percentage}}% of available balance ({{format_amount}} {{currency__display_code}})","-299033842":"Recent transactions","-348296830":"{{transaction_type}} {{currency}}","-1929538515":"{{amount}} {{currency}} on {{submit_date}}","-1534990259":"Transaction hash:","-1612346919":"View all","-1059419768":"Notes","-316545835":"Please ensure <0>all details are <0>correct before making your transfer.","-949073402":"I confirm that I have verified the client’s transfer information.","-1752211105":"Transfer now","-598073640":"About Tether (Ethereum)","-275902914":"Tether on Ethereum (eUSDT)","-1188009792":"Tether on Omni Layer (USDT)","-1239329687":"Tether was originally created to use the bitcoin network as its transport protocol ‒ specifically, the Omni Layer ‒ to allow transactions of tokenised traditional currency.","-2013448791":"Want to exchange between e-wallet currencies? Try <0>Ewallet.Exchange","-2061807537":"Something’s not right","-1068036170":"We do not charge a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts and between your Deriv fiat and {{platform_name_dxtrade}} accounts.","-2056016338":"You’ll not be charged a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts.","-599632330":"We’ll charge a 1% transfer fee for transfers in different currencies between your Deriv fiat and {{platform_name_mt5}} accounts and between your Deriv fiat and {{platform_name_dxtrade}} accounts.","-1196994774":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency accounts.","-1361372445":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts, your Deriv cryptocurrency and {{platform_name_derivez}} accounts, and your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.","-993556039":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts and between your Deriv cryptocurrency and {{platform_name_dxtrade}} accounts.","-1382702462":"We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv cryptocurrency and Deriv MT5 accounts.","-1995859618":"You may transfer between your Deriv fiat, cryptocurrency, {{platform_name_mt5}}, {{platform_name_derivez}} and {{platform_name_dxtrade}} accounts.","-545616470":"Each day, you can make up to {{ allowed_internal }} transfers between your Deriv accounts, up to {{ allowed_mt5 }} transfers between your Deriv and {{platform_name_mt5}} accounts, up to {{ allowed_derivez }} transfers between your Deriv and {{platform_name_derivez}} accounts, and up to {{ allowed_dxtrade }} transfers between your Deriv and {{platform_name_dxtrade}} accounts.","-1151983985":"Transfer limits may vary depending on the exchange rates.","-1747571263":"Please bear in mind that some transfers may not be possible.","-757062699":"Transfers may be unavailable due to high volatility or technical issues and when the exchange markets are closed.","-1344870129":"Deriv accounts","-1156059326":"You have {{number}} transfer remaining for today.","-1109729546":"You will be able to transfer funds between MT5 accounts and other accounts once your address is verified.","-1593609508":"Transfer between your accounts in Deriv","-464965808":"Transfer limits: <0 /> - <1 />","-553249337":"Transfers are locked","-1638172550":"To enable this feature you must complete the following:","-1157701227":"You need at least two accounts","-417711545":"Create account","-1232852916":"We’re switching over to your {{currency}} account to view the transaction.","-993393818":"Binance Smart Chain","-561858764":"Polygon (Matic)","-410890127":"Ethereum (ERC20)","-1059526741":"Ethereum (ETH)","-1615615253":"We do not support Tron, to deposit please use only Ethereum ({{token}}).","-1831000957":"Please select the network from where your deposit will come from.","-314177745":"Unfortunately, we couldn't get the address since our server was down. Please click Refresh to reload the address or try again later.","-1345040662":"Looking for a way to buy cryptocurrency?","-759000391":"We were unable to verify your information automatically. To enable this function, you must complete the following:","-1632668764":"I accept","-544232635":"Please go to the Deposit page to generate an address. Then come back here to continue with your transaction.","-1161069724":"Please copy the crypto address you see below. You'll need it to deposit your cryptocurrency.","-1388977563":"Copied!","-1962894999":"This address can only be used ONCE. Please copy a new one for your next transaction.","-451858550":"By clicking 'Continue' you will be redirected to {{ service }}, a third-party payment service provider. Please note that {{ website_name }} is not responsible for the content or services provided by {{ service }}. If you encounter any issues related to {{ service }} services, you must contact {{ service }} directly.","-2005265642":"Fiat onramp is a cashier service that allows you to convert fiat currencies to crypto to top up your Deriv crypto accounts. Listed here are third-party crypto exchanges. You’ll need to create an account with them to use their services.","-1593063457":"Select payment channel","-953082600":"Some payment methods may not be listed here but payment agents may still offer them. If you can’t find your favourite method, contact the payment agents directly to check further.","-2004264970":"Your wallet address should have 25 to 64 characters.","-1707299138":"Your {{currency_symbol}} wallet address","-38063175":"{{account_text}} wallet","-705272444":"Upload a proof of identity to verify your identity","-2024958619":"This is to protect your account from unauthorised withdrawals.","-130833284":"Please note that your maximum and minimum withdrawal limits aren’t fixed. They change due to the high volatility of cryptocurrency.","-1531269493":"We'll send you an email once your transaction has been processed.","-113940416":"Current stake:","-1999539705":"Deal cancel. fee:","-447037544":"Buy price:","-1342699195":"Total profit/loss:","-1511825574":"Profit/Loss:","-726626679":"Potential profit/loss:","-338379841":"Indicative price:","-1525144993":"Payout limit:","-1167474366":"Tick ","-555886064":"Won","-529060972":"Lost","-571642000":"Day","-155989831":"Decrement value","-1192773792":"Don't show this again","-1769852749":"N/A","-1572746946":"Asian Up","-686840306":"Asian Down","-2141198770":"Higher","-816098265":"Lower","-1646655742":"Spread Up","-668987427":"Spread Down","-912577498":"Matches","-1862940531":"Differs","-808904691":"Odd","-556230215":"Ends Outside","-1268220904":"Ends Between","-703542574":"Up","-1127399675":"Down","-768425113":"No Touch","-1163058241":"Stays Between","-1354485738":"Reset Call","-376148198":"Only Ups","-1337379177":"High Tick","-328036042":"Please enter a stop loss amount that's higher than the current potential loss.","-2127699317":"Invalid stop loss. Stop loss cannot be more than stake.","-1150099396":"We’re working to have this available for you soon. If you have another account, switch to that account to continue trading. You may add a Deriv MT5 Financial.","-1940333322":"DBot is not available for this account","-1223145005":"Loss amount: {{profit}}","-1062922595":"Reference ID (buy)","-2068574600":"Reference ID (sell)","-994038153":"Start Time","-1979852400":"Entry Spot","-427802309":"Profit/Loss","-668558002":"Journal.csv","-746652890":"Notifications","-824109891":"System","-507620484":"Unsaved","-764102808":"Google Drive","-1109191651":"Must be a number higher than 0","-1917772100":"Invalid number format","-1553945114":"Value must be higher than 2","-689786738":"Minimum duration: {{ min }}","-184183432":"Maximum duration: {{ max }}","-749186458":"Account switching is disabled while your bot is running. Please stop your bot before switching accounts.","-662836330":"Would you like to keep your current contract or close it? If you decide to keep it running, you can check and close it later on the <0>Reports page.","-597939268":"Keep my contract","-1322453991":"You need to log in to run the bot.","-1483938124":"This strategy is currently not compatible with DBot.","-236548954":"Contract Update Error","-1428017300":"THE","-1450728048":"OF","-255051108":"YOU","-1845434627":"IS","-931434605":"THIS","-740712821":"A","-187634388":"This block is mandatory. Here is where you can decide if your bot should continue trading. Only one copy of this block is allowed.","-2105473795":"The only input parameter determines how block output is going to be formatted. In case if the input parameter is \"string\" then the account currency will be added.","-1800436138":"2. for \"number\": 1325.68","-2046396241":"This block is mandatory. Only one copy of this block is allowed. It is added to the canvas by default when you open DBot.","-530632460":"This block is used to determine if the market price moves in the selected direction or not. It gives you a value of \"True\" or \"False\".","-1875717842":"Examples:","-890079872":"1. If the selected direction is \"Rise\", and the previous tick value is less than the current tick value, the output will be \"True\". Otherwise, the output will be an empty string.","-489739641":"2. If the selected direction is \"Fall\", and the previous tick value is more than the current tick value, the output will be \"True\". Otherwise, the output will be an empty string.","-2116076360":"There are 4 message types:","-1421941045":"2. 'Warn' displays a message in yellow to highlight something that needs attention.","-277850921":"If \"Win\" is selected, it will return \"True\" if your last trade was successful. Otherwise, it will return an empty string.","-1918487001":"Example:","-2139916657":"1. In the below example the loop is terminated in case \"x\" is \"False\" even though only one iteration is complete","-1238900333":"2. In the below example the loop jumps to the next iteration without executing below block in case if \"x\" is \"False\"","-1729479576":"You can use \"i\" inside the loop, for example to access list items","-1474636594":"In this example, the loop will repeat three times, as that is the number of items in the given list. During each iteration, the variable \"i\" will be assigned a value from the list. ","-908772734":"This block evaluates a statement and will perform an action only when the statement is true.","-334040831":"2. In this example, the instructions are repeated as long as the value of x is greater than or equal to 10. Once the value of x drops below 10, the loop is terminated.","-444267958":"\"Seconds Since Epoch\" block returns the number of seconds since January 1st, 1970.","-447522129":"You might need it when you want to repeat an actions after certain amount of time.","-1488259879":"The term \"candle\" refers to each bar on the candlestick chart. Each candle represents four market prices for the selected time interval:","-2020693608":"Each candlestick on the chart represents 4 market prices for the selected time interval:","-62728852":"- Open price: the opening price","-1247744334":"- Low price: the lowest price","-1386365697":"- Close price: the closing price","-1498732382":"A black (or red) candle indicates that the open price is higher than the close price. This represents a downward movement of the market price.","-1871864755":"This block gives you the last digit of the latest tick value of the selected market. If the latest tick value is 1410.90, this block will return 0. It’s useful for digit-based contracts such as Even/Odd, Matches/Differs, or Higher/Lower.","-1029671512":"In case if the \"OR\" operation is selected, the block returns \"True\" in case if one or both given values are \"True\"","-210295176":"Available operations:","-1385862125":"- Addition","-983721613":"- Subtraction","-854750243":"- Multiplication","-1394815185":"In case if the given number is less than the lower boundary of the range, the block returns the lower boundary value. Similarly, if the given number is greater than the higher boundary, the block will return the higher boundary value. In case if the given value is between boundaries, the block will return the given value unchanged.","-1034564248":"In the below example the block returns the value of 10 as the given value (5) is less than the lower boundary (10)","-2009817572":"This block performs the following operations to a given number","-671300479":"Available operations are:","-514610724":"- Absolute","-1923861818":"- Euler’s number (2.71) to the power of a given number","-1556344549":"Here’s how:","-1061127827":"- Visit the following URL, make sure to replace with the Telegram API token you created in Step 1: https://api.telegram.org/bot/getUpdates","-70949308":"4. Come back to DBot and add the Notify Telegram block to the workspace. Paste the Telegram API token and chat ID into the block fields accordingly.","-311389920":"In this example, the open prices from a list of candles are assigned to a variable called \"cl\".","-1460794449":"This block gives you a list of candles within a selected time interval.","-1634242212":"Used within a function block, this block returns a value when a specific condition is true.","-2012970860":"This block gives you information about your last contract.","-1504783522":"You can choose to see one of the following:","-10612039":"- Profit: the profit you’ve earned","-555996976":"- Entry time: the starting time of the contract","-1391071125":"- Exit time: the contract expiration time","-1961642424":"- Exit value: the value of the last tick of the contract","-111312913":"- Barrier: the barrier value of the contract (applicable to barrier-based trade types such as stays in/out, touch/no touch, etc.)","-674283099":"- Result: the result of the last contract: \"win\" or \"loss\"","-704543890":"This block gives you the selected candle value such as open price, close price, high price, low price, and open time. It requires a candle as an input parameter.","-482281200":"In the example below, the open price is assigned to the variable \"op\".","-364621012":"This block gives you the specified candle value for a selected time interval. You can choose which value you want:","-232477769":"- Open: the opening price","-610736310":"Use this block to sell your contract at the market price. Selling your contract is optional. You may choose to sell if the market trend is unfavourable.","-1307657508":"This block gives you the potential profit or loss if you decide to sell your contract. It can only be used within the \"Sell conditions\" root block.","-1921072225":"In the example below, the contract will only be sold if the potential profit or loss is more than the stake.","-955397705":"SMA adds the market price in a list of ticks or candles for a number of time periods, and divides the sum by that number of time periods.","-1424923010":"where n is the number of periods.","-1835384051":"What SMA tells you","-749487251":"SMA serves as an indicator of the trend. If the SMA points up then the market price is increasing and vice versa. The larger the period number, the smoother SMA line is.","-1996062088":"In this example, each point of the SMA line is an arithmetic average of close prices for the last 10 days.","-1866751721":"Input list accepts a list of ticks or candles, while period is the specified time period.","-1097076512":"You may compare SMA values calculated on every bot run to identify the market trend direction. Alternatively, you may also use a variation of the SMA block, the Simple Moving Average Array block. ","-1254849504":"If a period of 10 is entered, the Simple Moving Average Array block will return a list of SMA values calculated based on period of 10.","-1190046167":"This block displays a dialog box with a customised message. When the dialog box is displayed, your strategy is paused and will only resume after you click \"OK\".","-859028989":"In this example, the date and time will be displayed in a green notification box.","-1452086215":"In this example, a Rise contract will be purchased at midnight on 1 August 2019.","-1765276625":"Click the multiplier drop-down menu and choose the multiplier value you want to trade with.","-1872233077":"Your potential profit will be multiplied by the multiplier value you’ve chosen.","-614454953":"To learn more about multipliers, please go to the <0>Multipliers page.","-2078588404":"Select your desired market and asset type. For example, Forex > Major pairs > AUD/JPY","-2037446013":"2. Trade Type","-533927844":"Select your desired trade type. For example, Up/Down > Rise/Fall","-1192411640":"4. Default Candle Interval","-485434772":"8. Trade Options","-1827646586":"This block assigns a given value to a variable, creating the variable if it doesn't already exist.","-254421190":"List: ({{message_length}})","-1616649196":"results","-90107030":"No results found","-984140537":"Add","-786915692":"You are connected to Google Drive","-1150107517":"Connect","-1759213415":"Find out how this app handles your data by reviewing Deriv's <0>Privacy policy, which is part of Deriv's <1>Terms and conditions.","-934909826":"Load strategy","-1121028020":"or, if you prefer...","-254025477":"Select an XML file from your device","-1131095838":"Please upload an XML file","-523928088":"Create one or upload one from your local drive or Google Drive.","-1684205190":"Why can't I see my recent bots?","-2050879370":"1. Logged in from a different device","-811857220":"3. Cleared your browser cache","-1016171176":"Asset","-621128676":"Trade type","-671128668":"The amount that you pay to enter a trade.","-447853970":"Loss threshold","-410856998":"The bot will stop trading if your total profit exceeds this amount.","-1823621139":"Quick Strategy","-625024929":"Leaving already?","-584289785":"No, I'll stay","-1435060006":"If you leave, your current contract will be completed, but your bot will stop running immediately.","-783058284":"Total stake","-2077494994":"Total payout","-1073955629":"No. of runs","-1729519074":"Contracts lost","-42436171":"Total profit/loss","-1856204727":"Reset","-224804428":"Transactions","-1137823888":"Total payout since you last cleared your stats.","-992662695":"The number of times your bot has run since you last cleared your stats. Each run includes the execution of all the root blocks.","-1382491190":"Your total profit/loss since you last cleared your stats. It is the difference between your total payout and your total stake.","-305283152":"Strategy name","-1003476709":"Save as collection","-636521735":"Save strategy","-1373954791":"Should be a valid number","-1278608332":"Please enter a number between 0 and {{api_max_losses}}.","-287597204":"Enter limits to stop your bot from trading when any of these conditions are met.","-1445989611":"Limits your potential losses for the day across all Deriv platforms.","-152878438":"Maximum number of trades your bot will execute for this run.","-1490942825":"Apply and run","-1696412885":"Import","-250192612":"Sort","-1566369363":"Zoom out","-2060170461":"Load","-1200116647":"Click here to start building your DBot.","-1040972299":"Purchase contract","-600546154":"Sell contract (optional)","-985351204":"Trade again","-112876186":"Analysis","-1769584466":"Stats","-1133736197":"Utility","-1682372359":"Text","-907562847":"Lists","-1646497683":"Loops","-251326965":"Miscellaneous","-1285759343":"Search","-1058262694":"Stopping the bot will prevent further trades. Any ongoing trades will be completed by our system.","-1473283434":"Please be aware that some completed transactions may not be displayed in the transaction table if the bot is stopped while placing trades.","-397015538":"You may refer to the statement page for details of all completed transactions.","-1442034178":"Contract bought","-2020280751":"Bot is stopping","-1436403979":"Contract closed","-1711732508":"Reference IDs","-386141434":"(Buy)","-482272687":"(Sell)","-1983189496":"ticks","-694277729":"(High)","-2028564707":"(Low)","-627895223":"Exit spot","-596238067":"Entry/Exit spot","-558594655":"The bot is not running","-478946875":"The stats are cleared","-9461328":"Security and privacy","-563774117":"Dashboard","-418247251":"Download your journal.","-870004399":"<0>Bought: {{longcode}} (ID: {{transaction_id}})","-1211474415":"Filters","-186972150":"There are no messages to display","-999254545":"All messages are filtered out","-686334932":"Build a bot from the start menu then hit the run button to run the bot.","-1717650468":"Online","-1825471709":"A whole new trading experience on a powerful yet easy to use platform.","-981017278":"Automated trading at your fingertips. No coding needed.","-1768586966":"Trade CFDs on a customizable, easy-to-use trading platform.","-1309011360":"Open positions","-883103549":"Account deactivated","-821418875":"Trader","-679102561":"Contract Details","-430118939":"Complaints policy","-744999940":"Deriv account","-568280383":"Deriv Gaming","-1308346982":"Derived","-1546927062":"Deriv Financial","-895331276":"Complete your proof of address","-782679300":"Complete your proof of identity","-1596515467":"Derived BVI","-328128497":"Financial","-533935232":"Financial BVI","-565431857":"Financial Labuan","-1290112064":"Deriv EZ","-1669418686":"AUD/CAD","-1548588249":"AUD/CHF","-1552890620":"AUD/JPY","-681231560":"AUD/PLN","-64938413":"AUD/USD","-1430522808":"EUR/AUD","-2020477069":"EUR/CAD","-1201853162":"EUR/CHF","-1318070255":"EUR/GBP","-1197505739":"EUR/JPY","-405907358":"EUR/USD","-1536293064":"NZD/JPY","-79700881":"NZD/USD","-642323838":"USD/CAD","-428199705":"USD/CHF","-424108348":"USD/JPY","-548255282":"USD/NOK","-1834131208":"USD/PLN","-524302516":"Silver/USD","-764731776":"Platinum/USD","-700966800":"Dutch Index","-1863229260":"Australian Index","-946336619":"Wall Street Index","-945048133":"French Index","-1093355162":"UK Index","-932734062":"Hong Kong Index","-2030624691":"Japanese Index","-354063409":"US Index","-232855849":"Euro 50 Index","-1925264914":"Volatility 25 Index","-708579504":"Volatility 50 Index","-975255670":"Volatility 75 Index","-1736314513":"Crash 300 Index","-342128411":"Crash 500 Index","-9704319":"Crash 1000 Index","-465860988":"Bull Market Index","-390528194":"Step Index","-280323742":"EUR Basket","-563812039":"Volatility 10 (1s) Index","-764111252":"Volatility 100 (1s) Index","-1374309449":"Volatility 200 (1s) Index","-1164978320":"Jump 10 Index","-575272887":"BCH/USD","-295406873":"BTC/ETH","-1713556301":"ZMR/USD","-2046638412":"XRP/USD","-1263203461":"BTC/USD","-1112522776":"DSH/USD","-460689370":"LTC/USD","-841561409":"Put Spread","-144803045":"Only numbers and these special characters are allowed: {{permitted_characters}}","-1450516268":"Only letters, numbers, space, hyphen, period, and apostrophe are allowed.","-1072358250":"Letters, spaces, periods, hyphens, apostrophes only","-1966032552":"The length of token should be 8.","-2128137611":"Should start with letter or number, and may contain hyphen and underscore.","-1590869353":"Up to {{decimal_count}} decimal places are allowed.","-2061307421":"Should be more than {{min_value}}","-1099941162":"Should be less than {{max_value}}","-1528188268":"Straight rows of keys are easy to guess","-1339903234":"Short keyboard patterns are easy to guess","-23980798":"Repeats like \"aaa\" are easy to guess","-235760680":"Avoid repeated words and characters","-1568933154":"Sequences like abc or 6543 are easy to guess","-725663701":"Avoid sequences","-1450768475":"Recent years are easy to guess","-1804838610":"Avoid years that are associated with you","-64849469":"Dates are often easy to guess","-2006915194":"Avoid dates and years that are associated with you","-2124205211":"A word by itself is easy to guess","-1095202689":"All-uppercase is almost as easy to guess as all-lowercase","-2137856661":"Reversed words aren't much harder to guess","-1885413063":"Predictable substitutions like '@' instead of 'a' don't help very much","-369258265":"This password is on the blacklist","-681468758":"Your web browser is out of date and may affect your trading experience. Please <0>update your browser.","-577777971":"You have reached the rate limit of requests per second. Please try later.","-206321775":"Fiat","-522767852":"DEMO","-433761292":"Switching to default account.","-405439829":"Sorry, you can't view this contract because it doesn't belong to this account.","-1590712279":"Gaming","-16448469":"Virtual","-540474806":"Your Options account is scheduled to be closed","-618539786":"Your account is scheduled to be closed","-945275490":"Withdraw all funds from your Options account.","-2093768906":"{{name}} has released your funds.
Would you like to give your feedback?","-705744796":"Your demo account balance has reached the maximum limit, and you will not be able to place new trades. Reset your balance to continue trading from your demo account.","-800774345":"Power up your Financial trades with intuitive tools from Acuity.","-279582236":"Learn More","-1211460378":"Power up your trades with Acuity","-703292251":"Download intuitive trading tools to keep track of market events. The Acuity suite is only available for Windows, and is most recommended for financial assets.","-1585069798":"Please click the following link to complete your Appropriateness Test.","-1287141934":"Find out more","-367759751":"Your account has not been verified","-596690079":"Enjoy using Deriv?","-265932467":"We’d love to hear your thoughts","-1815573792":"Drop your review on Trustpilot.","-823349637":"Go to Trustpilot","-1204063440":"Set my account currency","-1751632759":"Get a faster mobile trading experience with the <0>{{platform_name_go}} app!","-1164554246":"You submitted expired identification documents","-219846634":"Let’s verify your ID","-529038107":"Install","-1738575826":"Please switch to your real account or create one to access the cashier.","-1329329028":"You’ve not set your 30-day turnover limit","-132893998":"Your access to the cashier has been temporarily disabled as you have not set your 30-day turnover limit. Please go to Self-exclusion and set the limit.","-1852207910":"MT5 withdrawal disabled","-764323310":"MT5 withdrawals have been disabled on your account. Please check your email for more details.","-1902997828":"Refresh now","-753791937":"A new version of Deriv is available","-1775108444":"This page will automatically refresh in 5 minutes to load the latest version.","-1175685940":"Please contact us via live chat to enable withdrawals.","-1125797291":"Password updated.","-157145612":"Please log in with your updated password.","-1728185398":"Resubmit proof of address","-612396514":"Please resubmit your proof of address.","-1519764694":"Your proof of address is verified.","-1961967032":"Resubmit proof of identity","-117048458":"Please submit your proof of identity.","-1196422502":"Your proof of identity is verified.","-136292383":"Your proof of address verification is pending","-386909054":"Your proof of address verification has failed","-430041639":"Your proof of address did not pass our verification checks, and we’ve placed some restrictions on your account. Please resubmit your proof of address.","-87177461":"Please go to your account settings and complete your personal details to enable deposits.","-904632610":"Reset your balance","-470018967":"Reset balance","-156611181":"Please complete the financial assessment in your account settings to unlock it.","-1925176811":"Unable to process withdrawals in the moment","-980696193":"Withdrawals are temporarily unavailable due to system maintenance. You can make withdrawals when the maintenance is complete.","-1647226944":"Unable to process deposit in the moment","-488032975":"Deposits are temporarily unavailable due to system maintenance. You can make deposits when the maintenance is complete.","-67021419":"Our cashier is temporarily down due to system maintenance. You can access the cashier in a few minutes when the maintenance is complete.","-849587074":"You have not provided your tax identification number","-47462430":"This information is necessary for legal and regulatory requirements. Please go to your account settings, and fill in your latest tax identification number.","-2067423661":"Stronger security for your Deriv account","-1719731099":"With two-factor authentication, you’ll protect your account with both your password and your phone - so only you can access your account, even if someone knows your password.","-2087822170":"You are offline","-1669693571":"Check your connection.","-1706642239":"<0>Proof of ownership <1>required","-553262593":"<0><1>Your account is currently locked <2><3>Please upload your proof of <4>ownership to unlock your account. <5>","-1834929362":"Upload my document","-1043638404":"<0>Proof of ownership <1>verification failed","-1766760306":"<0><1>Please upload your document <2>with the correct details. <3>","-1330929685":"Please submit your proof of identity and proof of address to verify your account and continue trading.","-99461057":"Please submit your proof of address to verify your account and continue trading.","-577279362":"Please submit your proof of identity to verify your account and continue trading.","-197134911":"Your proof of identity is expired","-152823394":"Your proof of identity has expired. Please submit a new proof of identity to verify your account and continue trading.","-2142540205":"It appears that the address in your document doesn’t match the address in your Deriv profile. Please update your personal details now with the correct address.","-482715448":"Go to Personal details","-2072411961":"Your proof of address has been verified","-384887227":"Update the address in your profile.","-1998049070":"If you agree to our use of cookies, click on Accept. For more information, <0>see our policy.","-402093392":"Add Deriv Account","-277547429":"A Deriv account will allow you to fund (and withdraw from) your MT5 account(s).","-1721181859":"You’ll need a {{deriv_account}} account","-1989074395":"Please add a {{deriv_account}} account first before adding a {{dmt5_account}} account. Deposits and withdrawals for your {{dmt5_label}} account are done by transferring funds to and from your {{deriv_label}} account.","-689237734":"Proceed","-1642457320":"Help centre","-1966944392":"Network status: {{status}}","-594209315":"Synthetic indices in the EU are offered by {{legal_entity_name}}, W Business Centre, Level 3, Triq Dun Karm, Birkirkara BKR 9033, Malta, licensed and regulated by the Malta Gaming Authority (<0>licence no. MGA/B2C/102/2000) and by the Revenue Commissioners for clients in Ireland (<2>licence no. 1010285).","-181484419":"Responsible trading","-650505513":"Full screen","-1823504435":"View notifications","-1954045170":"No currency assigned","-583559763":"Menu","-1922462747":"Trader's hub","-1591792668":"Account Limits","-34495732":"Regulatory information","-1496158755":"Go to Deriv.com","-2094580348":"Thanks for verifying your email","-1396326507":"Unfortunately, {{website_name}} is not available in your country.","-1019903756":"Synthetic","-288996254":"Unavailable","-122970184":"Total assets in your Deriv and {{platform_name_dxtrade}} demo accounts.","-97270814":"Total assets in your Deriv and {{platform_name_dxtrade}} real accounts.","-1607445331":"Deriv MT5 Accounts","-1844355483":"{{platform_name_dxtrade}} Accounts","-1740162250":"Manage account","-1277942366":"Total assets","-1556699568":"Choose your citizenship","-1310654342":"As part of the changes in our product line-up, we will be closing Gaming accounts belonging to our UK clients.","-626152766":"As part of the changes in our product line-up, we are closing Options accounts belonging to our clients in Europe.","-490100162":"As part of the changes in our product line-up, we will be closing accounts belonging to our Isle of Man clients.","-1208958060":"You can no longer trade digital options on any of our platforms. You also can’t deposit funds into your account.<0/><1/>Any open positions on digital options have been closed with full payout.","-2050417883":"You’ll lose access to your Gaming account when it gets closed, so make sure to withdraw your funds as soon as possible.","-1950045402":"Withdraw all your funds","-168971942":"What this means for you","-905560792":"OK, I understand","-1308593541":"You will lose access to your account when it gets closed, so be sure to withdraw all your funds.","-2024365882":"Explore","-1197864059":"Create free demo account","-1602122812":"24-hour Cool Down Warning","-740157281":"Trading Experience Assessment","-399816343":"Trading Experience Assessment<0/>","-1822498621":"As per our regulatory obligations, we are required to assess your trading knowledge and experience.<0/><0/>Please click ‘OK’ to continue","-71049153":"Keep your account secure with a password","-1861974537":"Strong passwords contain at least 8 characters, combine uppercase and lowercase letters, numbers, and symbols.","-1965920446":"Start trading","-1485242688":"Step {{step}}: {{step_title}} ({{step}} of {{steps}})","-1829842622":"You can open an account for each cryptocurrency.","-987221110":"Choose a currency you would like to trade with.","-1066574182":"Choose a currency","-1914534236":"Choose your currency","-200560194":"Please switch to your {{fiat_currency}} account to change currencies.","-1829493739":"Choose the currency you would like to trade with.","-1814647553":"Add a new","-1269362917":"Add new","-650480777":"crypto account","-175638343":"Choose an account or add a new one","-1768223277":"Your account is ready","-1215717784":"<0>You have successfully changed your currency to {{currency}}.<0>Make a deposit now to start trading.","-786091297":"Trade on demo","-228099749":"Please verify your identity and address","-1041852744":"We're processing your personal information","-1775006840":"Make a deposit now to start trading.","-983734304":"We need proof of your identity and address before you can start trading.","-917733293":"To get trading, please confirm where you live.","-1282628163":"You'll be able to get trading as soon as verification is complete.","-952649119":"Log In","-3815578":"Sign Up","-1456176427":"Set a currency for your real account","-1557011219":"Add a real Deriv Options account","-241733171":"Add a Deriv Financial account","-1329687645":"Create a cryptocurrency account","-1429178373":"Create a new account","-1016775979":"Choose an account","-1519791480":"CFDs and other financial instruments come with a high risk of losing money rapidly due to leverage. You should consider whether you understand how CFDs and other financial instruments work and whether you can afford to take the risk of losing your money. <0/><0/>\n As you have declined our previous warning, you would need to wait 24 hours before you can proceed further.","-1010875436":"CFDs and other financial instruments come with a high risk of losing money rapidly due to leverage. You should consider whether you understand how CFDs and other financial instruments work and whether you can afford to take the high risk of losing your money. <0/><0/> To continue, kindly note that you would need to wait 24 hours before you can proceed further.","-1725418054":"By clicking ‘Accept’ and proceeding with the account opening, you should note that you may be exposing yourself to risks. These risks, which may be significant, include the risk of losing the entire sum invested, and you may not have the knowledge and experience to properly assess or mitigate them.","-1369294608":"Already signed up?","-617844567":"An account with your details already exists.","-292363402":"Trading statistics report","-1656860130":"Options trading can become a real addiction, as can any other activity pushed to its limits. To avoid the danger of such an addiction, we provide a reality-check that gives you a summary of your trades and accounts on a regular basis.","-28080461":"Would like to check your statement first? <0>Check Statement","-611059051":"Please specify your preferred interval reality check in minutes:","-1876891031":"Currency","-11615110":"Turnover","-1370419052":"Profit / Loss","-437320982":"Session duration:","-3959715":"Current time:","-1534648620":"Your password has been changed","-596199727":"We will now redirect you to the login page.","-310434518":"The email input should not be empty.","-437918412":"No currency assigned to your account","-707550055":"We need this to make sure our service complies with laws and regulations in your country.","-280139767":"Set residence","-601615681":"Select theme","-1152511291":"Dark","-1428458509":"Light","-1976089791":"Your Deriv account has been unlinked from your {{social_identity_provider}} account. You can now log in to Deriv using your new email address and password.","-505449293":"Enter a new password for your Deriv account.","-703818088":"Only log in to your account at this secure link, never elsewhere.","-1235799308":"Fake links often contain the word that looks like \"Deriv\" but look out for these differences.","-2102997229":"Examples","-82488190":"I've read the above carefully.","-97775019":"Do not trust and give away your credentials on fake websites, ads or emails.","-2142491494":"OK, got it","-611136817":"Beware of fake links.","-1787820992":"Platforms","-1793883644":"Trade FX and CFDs on a customisable, easy-to-use trading platform.","-184713104":"Earn fixed payouts with options, or trade multipliers to amplify your gains with limited risk.","-1571775875":"Our flagship options and multipliers trading platform.","-1107320163":"Automate your trading, no coding needed.","-820028470":"Options & Multipliers","-895091803":"If you're looking for CFDs","-1447215751":"Not sure? Try this","-2338797":"<0>Maximise returns by <0>risking more than you put in.","-1682067341":"Earn <0>fixed returns by <0>risking only what you put in.","-1744351732":"Not sure where to start?","-943710774":"This complaints policy, which may change from time to time, applies to your account registered with {{legal_entity_name}}, having its registered office address at First Floor, Millennium House, Victoria Road, Douglas, Isle of Man, IM2 4RW, licensed and regulated respectively by (1) the Gambling Supervision Commission in the Isle of Man (current <0>licence issued on 31 August 2017) and (2) the Gambling Commission in the UK (<1>licence no. 39172).","-255056078":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name}}, having its registered office address at W Business Centre, Level 3, Triq Dun Karm, Birkirkara, BKR 9033, Malta, licensed and regulated by the Malta Gaming Authority in Malta for gambling products only, <0>licence no. MGA/B2C/102/2000, and for clients residing in the UK by the UK Gambling Commission (account number 39495).","-1941013000":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}}, {{legal_entity_name_fx}}, and {{legal_entity_name_v}}.","-594812204":"This complaints policy, which may change from time to time, applies to your account(s) registered with {{legal_entity_name_svg}}.","-1639808836":"If you are not satisfied with the outcome, you can escalate your complaint to the <0>Independent Betting Adjudication Service (IBAS) by filling the IBAS adjudication form. Please note that IBAS only deals with disputes that result from transactions.","-1505742956":"<0/><1/>You can also refer your dispute to the Malta Gaming Authority via the <2>Player Support Unit.","-1406192787":"If you are not satisfied with the outcome, you can escalate your complaint to the <0>Financial Commission.","-1776547326":"<0/><1/>If you reside in the UK and you are unhappy with our response you may escalate your complaint to the <2>Financial Ombudsman Service.","-2115348800":"1. Introduction","-744009523":"2. Fair treatment","-866831420":"3.1. Submission of a complaint","-1102904026":"3.2. Handling your complaint","-603378979":"3.3. Resolving your complaint","-697569974":"3.4. Your decision","-993572476":"<0>b.The Financial Commission has 5 days to acknowledge that your complaint was received and 14 days to answer the complaint through our Internal Dispute Resolution (IDR) procedure.","-1769159081":"<0>c.You will be able to file a complaint with the Financial Commission only if you are not satisfied with our decision or the decision wasn’t made within 14 days.","-58307244":"3. Determination phase","-356618087":"<0>b.The DRC may request additional information from you or us, who must then provide the requested information within 7 days.","-945718602":"<0>b.If you agree with a DRC decision, you will need to accept it within 14 days. If you do not respond to the DRC decision within 14 days, the complaint is considered closed.","-1500907666":"<0>d.If the decision is made in our favour, you must provide a release for us within 7 days of when the decision is made, and the complaint will be considered closed.","-429248139":"5. Disclaimer","-818926350":"The Financial Commission accepts appeals for 45 days following the date of the incident and only after the trader has tried to resolve the issue with the company directly.","-358055541":"Power up your trades with cool new tools","-29496115":"We've partnered with Acuity to give you a suite of intuitive trading tools for MT5 so you can keep track of market events and trends, free of charge!<0/><0/>","-648669944":"Download the Acuity suite and take advantage of the <1>Macroeconomic Calendar, Market Alerts, Research Terminal, and <1>Signal Centre Trade Ideas without leaving your MT5 terminal.<0/><0/>","-794294380":"This suite is only available for Windows, and is most recommended for financial assets.","-922510206":"Need help using Acuity?","-815070480":"Disclaimer: The trading services and information provided by Acuity should not be construed as a solicitation to invest and/or trade. Deriv does not offer investment advice. The past is not a guide to future performance, and strategies that have worked in the past may not work in the future.","-2111521813":"Download Acuity","-175369516":"Welcome to Deriv X","-939154994":"Welcome to Deriv MT5 dashboard","-1667427537":"Run Deriv X on your browser or download the mobile app","-305915794":"Run MT5 from your browser or download the MT5 app for your devices","-404375367":"Trade forex, basket indices, commodities, and cryptocurrencies with high leverage.","-243985555":"Trade CFDs on forex, stocks, stock indices, synthetic indices, cryptocurrencies, and commodities with leverage.","-2030107144":"Trade CFDs on forex, stocks & stock indices, commodities, and crypto.","-781132577":"Leverage","-1264604378":"Up to 1:1000","-637908996":"100%","-1420548257":"20+","-1373949478":"50+","-1686150678":"Up to 1:100","-1382029900":"70+","-1493055298":"90+","-1056874273":"25+ assets: synthetics","-223956356":"Leverage up to 1:1000","-1340877988":"Registered with the Financial Commission","-879901180":"170+ assets: forex (standard/micro), stocks, stock indices, commodities, basket indices, and cryptocurrencies","-1020615994":"Better spreads","-1789823174":"Regulated by the Vanuatu Financial Services Commission","-1040269115":"30+ assets: forex and commodities","-1372141447":"Straight-through processing","-318390366":"Regulated by the Labuan Financial Services Authority (Licence no. MB/18/0024)","-1556783479":"80+ assets: forex and cryptocurrencies","-875019707":"Leverage up to 1:100","-1752249490":"Malta Financial","-2068980956":"Leverage up to 1:30","-2098459063":"British Virgin Islands","-1434036215":"Demo Financial","-1416247163":"Financial STP","-1882063886":"Demo CFDs","-1347908717":"Demo Financial SVG","-1780324582":"SVG","-785625598":"Use these credentials to log in to your {{platform}} account on the website and mobile apps.","-997127433":"Change Password","-162753510":"Add real account","-1300381594":"Get Acuity trading tools","-860609405":"Password","-742647506":"Fund transfer","-1972393174":"Trade CFDs on our synthetics, baskets, and derived FX.","-1357917360":"Web terminal","-1454896285":"The MT5 desktop app is not supported by Windows XP, Windows 2003, and Windows Vista.","-810388996":"Download the Deriv X mobile app","-1727991510":"Scan the QR code to download the Deriv X Mobile App","-1302404116":"Maximum leverage","-511301450":"Indicates the availability of cryptocurrency trading on a particular account.","-2102641225":"At bank rollover, liquidity in the forex markets is reduced and may increase the spread and processing time for client orders. This happens around 21:00 GMT during daylight saving time, and 22:00 GMT non-daylight saving time.","-495364248":"Margin call and stop out level will change from time to time based on market condition.","-536189739":"To protect your portfolio from adverse market movements due to the market opening gap, we reserve the right to decrease leverage on all offered symbols for financial accounts before market close and increase it again after market open. Please make sure that you have enough funds available in your {{platform}} account to support your positions at all times.","-712681566":"Peer-to-peer exchange","-1267880283":"{{field_name}} is required","-2084509650":"{{field_name}} is not properly formatted.","-222283483":"Account opening reason*","-1779241732":"First line of address is not in a proper format.","-188222339":"This should not exceed {{max_number}} characters.","-1673422138":"State/Province is not in a proper format.","-1580554423":"Trade CFDs on our synthetic indices that simulate real-world market movements.","-1385484963":"Confirm to change your {{platform}} password","-1990902270":"This will change the password to all of your {{platform}} accounts.","-673424733":"Demo account","-1986258847":"Server maintenance starts at 01:00 GMT every Sunday, and this process may take up to 2 hours to complete. Service may be disrupted during this time.","-1199152768":"Please explore our other platforms.","-205020823":"Explore {{platform_name_trader}}","-1982499699":"Explore {{platform_name_dbot}}","-1567989247":"Submit your proof of identity and address","-184453418":"Enter your {{platform}} password","-393388362":"We’re reviewing your documents. This should take about 1 to 3 days.","-790488576":"Forgot password?","-926547017":"Enter your {{platform}} password to add a {{platform}} {{account}} {{jurisdiction_shortcode}} account.","-1190393389":"Enter your {{platform}} password to add a {{platform}} {{account}} account.","-2057918502":"Hint: You may have entered your Deriv password, which is different from your {{platform}} password.","-1769158315":"real","-700260448":"demo","-1936102840":"Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} {{jurisdiction_selected_shortcode}} account. ","-1570793523":"Congratulations, you have successfully created your {{category}} <0>{{platform}} <1>{{type}} account.","-1928229820":"Reset Deriv X investor password","-1087845020":"main","-1950683866":"investor","-1874242353":"Fund top up","-89838213":"You can top up your demo account with an additional <0> if your balance is <1> or less.","-1211122723":"{{ platform }} {{ account_title }} account","-78895143":"Current balance","-149993085":"New current balance","-490244964":"Forex, stocks, stock indices, cryptocurrencies","-1368041210":", synthetic indices","-877064208":"EUR","-1284221303":"You’ll get a warning, known as margin call, if your account balance drops down close to the stop out level.","-1848799829":"To understand stop out, first you need to learn about margin level, which is the ratio of your equity (the total balance you would have if you close all your positions at that point) to the margin you're using at the moment. If your margin level drops below our stop out level, your positions may be closed automatically to protect you from further losses.","-224051432":"24/7","-1591882610":"Synthetics","-70716111":"FX-majors (standard/micro lots), FX-minors, basket indices, commodities, cryptocurrencies, and stocks and stock indices","-1041629137":"FX-majors, FX-minors, FX-exotics, and cryptocurrencies","-287097947":"FX-majors (standard/micro lots), FX-minors, Commodities, Cryptocurrencies (except UK)","-1225160479":"Compare available accounts","-2042845290":"Your investor password has been changed.","-1882295407":"Your password has been changed.","-254497873":"Use this password to grant viewing access to another user. While they may view your trading account, they will not be able to trade or take any other actions.","-161656683":"Current investor password","-374736923":"New investor password","-1793894323":"Create or reset investor password","-1271218821":"Account added","-1576792859":"Proof of identity and address are required","-1931257307":"You will need to submit proof of identity","-2026018074":"Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (SVG) LLC (company no. 273 LLC 2020).","-162320753":"Add your Deriv MT5 <0>{{account_type_name}} account under Deriv (BVI) Ltd, regulated by the British Virgin Islands Financial Services Commission (License no. SIBA/L/18/1114).","-1731304187":"Add your Deriv MT5 CFDs account under Deriv Investments (Europe) Limited regulated by the Malta Financial Services Authority (MFSA) (licence no. IS/70156).","-724308541":"Jurisdiction for your Deriv MT5 CFDs account","-479119833":"Choose a jurisdiction for your Deriv MT5 {{account_type}} account","-450424792":"You need a real account (fiat currency or cryptocurrency) in Deriv to create a real Deriv MT5 account.","-1760596315":"Create a Deriv account","-705682181":"Malta","-194969520":"Counterparty company","-1131400885":"Deriv Investments (Europe) Limited","-409563066":"Regulator","-2073451889":"Malta Financial Services Authority (MFSA) (Licence no. IS/70156)","-362324454":"Commodities","-543177967":"Stock indices","-1089385344":"Deriv (SVG) LLC","-2019617323":"Deriv (BVI) Ltd","-112814932":"Deriv (FX) Ltd","-1747078152":"-","-1510474851":"British Virgin Islands Financial Services Commission (licence no. SIBA/L/18/1114)","-199154602":"Vanuatu Financial Services Commission","-761250329":"Labuan Financial Services Authority (Licence no. MB/18/0024)","-251202291":"Broker","-81650212":"MetaTrader 5 web","-2123571162":"Download","-941636117":"MetaTrader 5 Linux app","-2019704014":"Scan the QR code to download Deriv MT5.","-648956272":"Use this password to log in to your Deriv X accounts on the web and mobile apps.","-1814308691":"Please click on the link in the email to change your {{platform}} password.","-1282933308":"Not {{barrier}}","-968190634":"Equals {{barrier}}","-1747377543":"Under {{barrier}}","-337314714":"days","-442488432":"day","-1572548510":"Ups & Downs","-71301554":"Ins & Outs","-952298801":"Look Backs","-763273340":"Digits","-1790089996":"NEW!","-1386326276":"Barrier is a required field.","-1418742026":"Higher barrier must be higher than lower barrier.","-92007689":"Lower barrier must be lower than higher barrier.","-1095538960":"Please enter the start time in the format \"HH:MM\".","-1975910372":"Minute must be between 0 and 59.","-866277689":"Expiry time cannot be in the past.","-1455298001":"Now","-256210543":"Trading is unavailable at this time.","-28115241":"{{platform_name_trader}} is not available for this account","-453920758":"Go to {{platform_name_mt5}} dashboard","-402175529":"History","-902712434":"Deal cancellation","-988484646":"Deal cancellation (executed)","-444882676":"Deal cancellation (active)","-13423018":"Reference ID","-1551639437":"No history","-1214703885":"You have yet to update either take profit or stop loss","-880722426":"Market is closed","-504849554":"It will reopen at","-59803288":"In the meantime, try our synthetic indices. They simulate real-market volatility and are open 24/7.","-1278109940":"See open markets","-694105443":"This market is closed","-439389714":"We’re working on it","-770929448":"Go to {{platform_name_smarttrader}}","-138538812":"Log in or create a free account to place a trade.","-2036388794":"Create free account","-1813736037":"No further trading is allowed on this contract type for the current trading session. For more info, refer to our <0>terms and conditions.","-590131162":"Stay on {{website_domain}}","-1444663817":"Go to Binary.com","-1526466612":"You’ve selected a trade type that is currently unsupported, but we’re working on it.","-1043795232":"Recent positions","-1572796316":"Purchase price:","-153220091":"{{display_value}} Tick","-802374032":"Hour","-2039780875":"Purchase confirmation","-1672470173":"Require confirmation before purchasing a contract","-1342661765":"Lock contract purchase buttons","-939764287":"Charts","-1738427539":"Purchase","-1392065699":"If you select \"Rise\", you win the payout if the exit spot is strictly higher than the entry spot.","-1762566006":"If you select \"Fall\", you win the payout if the exit spot is strictly lower than the entry spot.","-1435306976":"If you select \"Allow equals\", you win the payout if exit spot is higher than or equal to entry spot for \"Rise\". Similarly, you win the payout if exit spot is lower than or equal to entry spot for \"Fall\".","-1959473569":"If you select \"Lower\", you win the payout if the exit spot is strictly lower than the barrier.","-1350745673":"If the exit spot is equal to the barrier, you don't win the payout.","-2089488446":"If you select \"Ends Between\", you win the payout if the exit spot is strictly higher than the Low barrier AND strictly lower than the High barrier.","-1876950330":"If you select \"Ends Outside\", you win the payout if the exit spot is EITHER strictly higher than the High barrier, OR strictly lower than the Low barrier.","-546460677":"If the exit spot is equal to either the Low barrier or the High barrier, you don't win the payout.","-1812957362":"If you select \"Stays Between\", you win the payout if the market stays between (does not touch) either the High barrier or the Low barrier at any time during the contract period","-220379757":"If you select \"Goes Outside\", you win the payout if the market touches either the High barrier or the Low barrier at any time during the contract period.","-1281286610":"If you select \"Matches\", you will win the payout if the last digit of the last tick is the same as your prediction.","-1929209278":"If you select \"Even\", you will win the payout if the last digit of the last tick is an even number (i.e., 2, 4, 6, 8, or 0).","-2038865615":"If you select \"Odd\", you will win the payout if the last digit of the last tick is an odd number (i.e., 1, 3, 5, 7, or 9).","-1416078023":"If you select \"Touch\", you win the payout if the market touches the barrier at any time during the contract period.","-1272255095":"If the exit spot is equal to the barrier or the new barrier (if a reset occurs), you don't win the payout.","-231957809":"Win maximum payout if the exit spot is higher than or equal to the upper barrier.","-464144986":"Win maximum payout if the exit spot is lower than or equal to the lower barrier.","-1031456093":"Win up to maximum payout if exit spot is between lower and upper barrier, in proportion to the difference between upper barrier and exit spot.","-968162707":"No payout if exit spot is above or equal to the upper barrier.","-299450697":"If you select \"High Tick\", you win the payout if the selected tick is the highest among the next five ticks.","-705681870":"By purchasing the \"High-to-Low\" contract, you'll win the multiplier times the difference between the high and low over the duration of the contract.","-420387848":"The high is the highest point ever reached by the market during the contract period.","-1666375348":"By purchasing the \"High-to-Close\" contract, you'll win the multiplier times the difference between the high and close over the duration of the contract.","-2024955268":"If you select “Up”, you will earn a profit by closing your position when the market price is higher than the entry spot.","-1598433845":"If you select “Down”, you will earn a profit by closing your position when the market price is lower than the entry spot.","-1092777202":"The Stop-out level on the chart indicates the price at which your potential loss equals your entire stake. When the market price reaches this level, your position will be closed automatically. This ensures that your loss does not exceed the amount you paid to purchase the contract.","-885323297":"These are optional parameters for each position that you open:","-584696680":"If you select “Take profit” and specify an amount that you’d like to earn, your position will be closed automatically when your profit is more than or equals to this amount. Your profit may be more than the amount you entered depending on the market price at closing.","-178096090":"“Take profit” cannot be updated. You may update it only when “Deal cancellation” expires.","-206909651":"The entry spot is the market price when your contract is processed by our servers.","-149836494":"Your transaction reference number is {{transaction_id}}","-1382749084":"Go back to trading","-1231210510":"Tick","-1239477911":"second","-1585766960":"min","-1652791614":"mins","-1977959027":"hours","-8998663":"Digit: {{last_digit}} ","-1435392215":"About deal cancellation","-2017825013":"Got it","-1280319153":"Cancel your trade anytime within a chosen time-frame. Triggered automatically if your trade reaches the stop out level within the chosen time-frame.","-471757681":"Risk management","-843831637":"Stop loss","-771725194":"Deal Cancellation","-45873457":"NEW","-127118348":"Choose {{contract_type}}","-543478618":"Try checking your spelling or use a different term","-338707425":"Minimum duration is 1 day","-1003473648":"Duration: {{duration}} day","-700280380":"Deal cancel. fee","-741395299":"{{value}}","-1527492178":"Purchase Locked","-725375562":"You can lock/unlock the purchase button from the Settings menu","-1358367903":"Stake","-1513281069":"Barrier 2","-390994177":"Should be between {{min}} and {{max}}","-2055106024":"Toggle between advanced and simple duration settings","-1012793015":"End time","-2037881712":"Your contract will be closed automatically at the next available asset price on <0>.","-629549519":"Commission <0/>","-2131859340":"Stop out <0/>","-1686280757":"<0>{{commission_percentage}}% of (<1/> * {{multiplier}})","-1043117679":"When your current loss equals or exceeds {{stop_out_percentage}}% of your stake, your contract will be closed at the nearest available asset price.","-477998532":"Your contract is closed automatically when your loss is more than or equals to this amount.","-243332856":"Last digit stats for latest 1000 ticks for {{ underlying_name }}","-339236213":"Multiplier","-461955353":"purchase price","-172348735":"profit","-1624674721":"contract type","-1644154369":"entry spot time","-510792478":"entry spot price","-1974651308":"exit spot time","-1600267387":"exit spot price","-514917720":"barrier","-2004386410":"Win","-1072292603":"No Change","-1631669591":"string","-1768939692":"number","-795152863":"green","-1640576332":"blue","-804983649":"yellow","-94281841":"red","-1242470654":"Earned money","-1429914047":"Low","-1893628957":"Open Time","-1896106455":"10 minutes","-999492762":"15 minutes","-1978767852":"30 minutes","-293628675":"1 hour","-385604445":"2 hours","-1965813351":"4 hours","-525321833":"1 day","-1691868913":"Touch/No Touch","-151151292":"Asians","-1048378719":"Reset Call/Reset Put","-1282312809":"High/Low Ticks","-1237186896":"Only Ups/Only Downs","-529846150":"Seconds","-2035315547":"Low barrier","-1635771697":"middle","-1529389221":"Histogram","-1819860668":"MACD","-1750896349":"D'Alembert","-102980621":"The Oscar's Grind Strategy is a low-risk positive progression strategy that first appeared in 1965. By using this strategy, the size of your contract will increase after successful trades, but remains unchanged after unsuccessful trades.","-462715374":"Untitled Bot","-2002533437":"Custom function","-215053350":"with:","-1257232389":"Specify a parameter name:","-1885742588":"with: ","-188442606":"function {{ function_name }} {{ function_params }} {{ dummy }}","-313112159":"This block is similar to the one above, except that this returns a value. The returned value can be assigned to a variable of your choice.","-1783320173":"Prematurely returns a value within a function","-1485521724":"Conditional return","-1482801393":"return","-46453136":"get","-1838027177":"first","-1182568049":"Get list item","-1675454867":"This block gives you the value of a specific item in a list, given the position of the item. It can also remove the item from the list.","-381501912":"This block creates a list of items from an existing list, using specific item positions.","-426766796":"Get sub-list","-1679267387":"in list {{ input_list }} find {{ first_or_last }} occurence of item {{ input_value }}","-2087996855":"This block gives you the position of an item in a given list.","-422008824":"Checks if a given list is empty","-1343887675":"This block checks if a given list is empty. It returns “True” if the list is empty, “False” if otherwise.","-1548407578":"length of {{ input_list }}","-1786976254":"This block gives you the total number of items in a given list.","-2113424060":"create list with item {{ input_item }} repeated {{ number }} times","-1955149944":"Repeat an item","-434887204":"set","-197957473":"as","-851591741":"Set list item","-1874774866":"ascending","-1457178757":"Sorts the items in a given list","-350986785":"Sort list","-324118987":"make text from list","-155065324":"This block creates a list from a given string of text, splitting it with the given delimiter. It can also join items in a list into a string of text.","-459051222":"Create list from text","-977241741":"List Statement","-451425933":"{{ break_or_continue }} of loop","-323735484":"continue with next iteration","-1592513697":"Break out/continue","-713658317":"for each item {{ variable }} in list {{ input_list }}","-1825658540":"Iterates through a given list","-952264826":"repeat {{ number }} times","-887757135":"Repeat (2)","-1608672233":"This block is similar to the block above, except that the number of times it repeats is determined by a given variable.","-533154446":"Repeat (1)","-1059826179":"while","-1893063293":"until","-279445533":"Repeat While/Until","-1003706492":"User-defined variable","-359097473":"set {{ variable }} to {{ value }}","-1588521055":"Sets variable value","-980448436":"Set variable","-1538570345":"Get the last trade information and result, then trade again.","-222725327":"Here is where you can decide if your bot should continue trading.","-1638446329":"Result is {{ win_or_loss }}","-1968029988":"Last trade result","-1588406981":"You can check the result of the last trade with this block.","-1459154781":"Contract Details: {{ contract_detail }}","-1652241017":"Reads a selected property from contract details list","-2082345383":"These blocks transfer control to the Purchase conditions block.","-172574065":"This block will transfer the control back to the Purchase conditions block, enabling you to purchase another contract.","-403103225":"restart","-837044282":"Ask Price {{ contract_type }}","-1033917049":"This block returns the purchase price for the selected trade type.","-1863737684":"2. Purchase conditions","-228133740":"Specify contract type and purchase conditions.","-1291088318":"Purchase conditions","-1098726473":"This block is mandatory. Only one copy of this block is allowed. You can place the Purchase block (see below) here as well as conditional blocks to define your purchase conditions.","-1777988407":"Payout {{ contract_type }}","-511116341":"This block returns the potential payout for the selected trade type","-1943211857":"Potential payout","-813464969":"buy","-53668380":"True if active contract can be sold before expiration at current market price","-43337012":"Sell profit/loss","-2112866691":"Returns the profit/loss from selling at market price","-2132417588":"This block gives you the potential profit or loss if you decide to sell your contract.","-1360483055":"set {{ variable }} to Bollinger Bands {{ band_type }} {{ dummy }}","-20542296":"Calculates Bollinger Bands (BB) from a list with a period","-1951109427":"Bollinger Bands (BB)","-857226052":"BB is a technical analysis indicator that’s commonly used by traders. The idea behind BB is that the market price stays within the upper and lower bands for 95% of the time. The bands are the standard deviations of the market price, while the line in the middle is a simple moving average line. If the price reaches either the upper or lower band, there’s a possibility of a trend reversal.","-325196350":"set {{ variable }} to Bollinger Bands Array {{ band_type }} {{ dummy }}","-199689794":"Similar to BB. This block gives you a choice of returning the values of either the lower band, higher band, or the SMA line in the middle.","-920690791":"Calculates Exponential Moving Average (EMA) from a list with a period","-960641587":"EMA is a type of moving average that places more significance on the most recent data points. It’s also known as the exponentially weighted moving average. EMA is different from SMA in that it reacts more significantly to recent price changes.","-1557584784":"set {{ variable }} to Exponential Moving Average Array {{ dummy }}","-32333344":"Calculates Moving Average Convergence Divergence (MACD) from a list","-628573413":"MACD is calculated by subtracting the long-term EMA (26 periods) from the short-term EMA (12 periods). If the short-term EMA is greater or lower than the long-term EMA than there’s a possibility of a trend reversal.","-1133676960":"Fast EMA Period {{ input_number }}","-883166598":"Period {{ input_period }}","-450311772":"set {{ variable }} to Relative Strength Index {{ dummy }}","-1861493523":"Calculates Relative Strength Index (RSI) list from a list of values with a period","-880048629":"Calculates Simple Moving Average (SMA) from a list with a period","-1150972084":"Market direction","-276935417":"This block is used to determine if the market price moves in the selected direction or not. It gives you a value of “True” or “False”.","-764931948":"in candle list get # from end {{ input_number }}","-924607337":"Returns the last digit of the latest tick","-560033550":"Returns the list of last digits of 1000 recent tick values","-74062476":"Make a List of {{ candle_property }} values in candles list with interval: {{ candle_interval_type }}","-1556495906":"Returns a list of specific values from a candle list according to selected time interval","-166816850":"Create a list of candle values (1)","-1261436901":"Candles List","-1174859923":"Read the selected candle value","-1972165119":"Read candle value (1)","-1956100732":"You can use this block to analyze the ticks, regardless of your trades","-443243232":"The content of this block is called on every tick. Place this block outside of any root block.","-641399277":"Last Tick","-1628954567":"Returns the value of the last tick","-1332756793":"This block gives you the value of the last tick.","-2134440920":"Last Tick String","-1466340125":"Tick value","-467913286":"Tick value Description","-785831237":"This block gives you a list of the last 1000 tick values.","-1546430304":"Tick List String Description","-1788626968":"Returns \"True\" if the given candle is black","-436010611":"Make a list of {{ candle_property }} values from candles list {{ candle_list }}","-1384340453":"Returns a list of specific values from a given candle list","-584859539":"Create a list of candle values (2)","-2010558323":"Read {{ candle_property }} value in candle {{ input_candle }}","-2846417":"This block gives you the selected candle value.","-1587644990":"Read candle value (2)","-1202212732":"This block returns account balance","-1737837036":"Account balance","-1963883840":"Put your blocks in here to prevent them from being removed","-1284013334":"Use this block if you want some instructions to be ignored when your bot runs. Instructions within this block won’t be executed.","-1217253851":"Log","-1987568069":"Warn","-104925654":"Console","-1956819233":"This block displays messages in the developer's console with an input that can be either a string of text, a number, boolean, or an array of data.","-1450461842":"Load block from URL: {{ input_url }}","-1088614441":"Loads blocks from URL","-1747943728":"Loads from URL","-2105753391":"Notify Telegram {{ dummy }} Access Token: {{ input_access_token }} Chat ID: {{ input_chat_id }} Message: {{ input_message }}","-1008209188":"Sends a message to Telegram","-1218671372":"Displays a notification and optionally play selected sound","-2099284639":"This block gives you the total profit/loss of your trading strategy since your bot started running. You can reset this by clicking “Clear stats” on the Transaction Stats window, or by refreshing this page in your browser.","-683825404":"Total Profit String","-718220730":"Total Profit String Description","-1861858493":"Number of runs","-264195345":"Returns the number of runs","-303451917":"This block gives you the total number of times your bot has run. You can reset this by clicking “Clear stats” on the Transaction Stats window, or by refreshing this page in your browser.","-2132861129":"Conversion Helper Block","-74095551":"Seconds Since Epoch","-15528039":"Returns the number of seconds since January 1st, 1970","-729807788":"This block returns the number of seconds since January 1st, 1970.","-1370107306":"{{ dummy }} {{ stack_input }} Run after {{ number }} second(s)","-558838192":"Delayed run","-1975250999":"This block converts the number of seconds since the Unix Epoch (1 January 1970) into a string of text representing the date and time.","-702370957":"Convert to date/time","-982729677":"Convert to timestamp","-311268215":"This block converts a string of text that represents the date and time into seconds since the Unix Epoch (1 January 1970). The time and time zone offset are optional. Example: 2019-01-01 21:03:45 GMT+0800 will be converted to 1546347825.","-1797602591":"Stop Loss: {{ currency }} {{ stop_loss }}","-1214929127":"Stop loss must be a positive number.","-780745489":"If the contract type is “Both”, then the Purchase Conditions should include both Rise and Fall using the “Conditional Block\"","-2142851225":"Multiplier trade options","-625636913":"Amount must be a positive number.","-1466383897":"Duration: {{ duration_unit }} {{ duration_value }}","-440702280":"Trade options","-1193894978":"Define your trade options such as duration and stake. Some options are only applicable for certain trade types.","-46523443":"Duration value is not allowed. To run the bot, please enter a value between {{min}} to {{max}}.","-1483427522":"Trade Type: {{ trade_type_category }} > {{ trade_type }}","-323348124":"1. Trade parameters","-1671903503":"Run once at start:","-783173909":"Trade options:","-376956832":"Here is where you define the parameters of your contract.","-1244007240":"if {{ condition }} then","-1577206704":"else if","-33796979":"true","-1434883449":"This is a single block that returns a boolean value, either true or false.","-1946404450":"Compares two values","-979918560":"This block converts the boolean value (true or false) to its opposite.","-2047257743":"Null","-1274387519":"Performs selected logic operation","-766386234":"This block performs the \"AND\" or the \"OR\" logic operation.","-790995537":"test {{ condition }}","-1860211657":"if false {{ return_value }}","-1643760249":"This block tests if a given value is true or false and returns “True” or “False” accordingly.","-1551875333":"Test value","-52486882":"Arithmetical operations","-1010436425":"This block adds the given number to the selected variable","-999773703":"Change variable","-1272091683":"Mathematical constants","-1396629894":"constrain {{ number }} low {{ low_number }} high {{ high_number }}","-425224412":"This block constrains a given number so that it is within a set range.","-2072551067":"Constrain within a range","-43523220":"remainder of {{ number1 }} ÷ {{ number2 }}","-1291857083":"Returns the remainder after a division","-592154850":"Remainder after division","-736665095":"Returns the remainder after the division of the given numbers.","-1266992960":"Math Number Description","-77191651":"{{ number }} is {{ type }}","-817881230":"even","-142319891":"odd","-1000789681":"whole","-1735674752":"Test a number","-1017805068":"This block tests a given number according to the selection and it returns a value of “True” or “False”. Available options: Even, Odd, Prime, Whole, Positive, Negative, Divisible","-1858332062":"Number","-1053492479":"Enter an integer or fractional number into this block. Please use `.` as a decimal separator for fractional numbers.","-927097011":"sum","-1653202295":"max","-1555878023":"average","-1748351061":"mode","-992067330":"Aggregate operations","-1691561447":"This block gives you a random fraction between 0.0 to 1.0","-523625686":"Random fraction number","-933024508":"Rounds a given number to an integer","-1656927862":"This block rounds a given number according to the selection: round, round up, round down.","-1495304618":"absolute","-61210477":"Operations on a given number","-181644914":"This block performs the selected operations to a given number.","-840732999":"to {{ variable }} append text {{ input_text }}","-1469497908":"Appends a given text to a variable","-1851366276":"Text Append","-1666316828":"Appends a given text to a variable.","-1902332770":"Transform {{ input_text }} to {{ transform_type }}","-1489004405":"Title Case","-904432685":"Changes text case accordingly","-882381096":"letter #","-1027605069":"letter # from end","-2066990284":"random letter","-337089610":"in text {{ input_text1 }} find {{ first_or_last }} occurence of text {{ input_text2 }}","-1966694141":"Searches through a string of text for a specific occurrence of a given character or word, and returns the position.","-697543841":"Text join","-141160667":"length of {{ input_text }}","-1133072029":"Text String Length","-1109723338":"print {{ input_text }}","-736668830":"Print","-1821552998":"trim spaces from {{ side }} of {{ input_text }}","-801766026":"right side","-474779821":"Trims spaces","-1219239717":"One or more mandatory blocks are missing from your workspace. Please add the required block(s) and then try again.","-250761331":"One or more mandatory blocks are disabled in your workspace. Please enable the required block(s) and then try again.","-1687036846":"Download block","-1266781295":"Expand","-894560707":"function","-1867119688":"Duplicate","-610728049":"Rearrange Vertically","-2033146714":"Collapse All Blocks","-958601558":"Delete Block","-1193267384":"Detach Block","-1750478127":"New variable name","-1061878051":"Y","-2047029150":"Unable to load the block file.","-1410769167":"Target must be an XML file","-609157479":"This URL is already loaded","-241945454":"Proposals are not ready","-1087890592":"Maximum loss amount reached","-1030545878":"You are rate limited for: {{ message_type }}, retrying in {{ delay }}s (ID: {{ request }})","-490766438":"You are disconnected, retrying in {{ delay }}s","-1389975609":"unknown","-1900515692":"Duration must be a positive integer","-245297595":"Please login","-1445046468":"Given candle is not valid","-1891622945":"{{hourPast}}h ago","-1723202824":"Please grant permission to view and manage Google Drive folders created with Binary Bot","-210953314":"There was an error retrieving data from Google Drive","-1521930919":"Select a Binary Bot strategy","-845301264":"There was an error listing files from Google Drive","-1452908801":"There was an error retrieving files from Google Drive","-232617824":"There was an error processing your request","-1800672151":"GBP Index","-1904030160":"Transaction performed by (App ID: {{app_id}})","-513103225":"Transaction time","-2066666313":"Credit/Debit","-2140412463":"Buy price","-1981004241":"Sell time","-600828210":"Indicative profit/loss","-706219815":"Indicative price","-3423966":"Take profit<0 />Stop loss","-2082644096":"Current stake","-538215347":"Net deposits","-280147477":"All transactions","-137444201":"Buy","-130601012":"Please select duration","-232254547":"Custom","-1577570698":"Start date","-1251526905":"Last 7 days","-360975483":"You've made no transactions of this type during this period.","-2092611555":"Sorry, this app is unavailable in your current location.","-1488537825":"If you have an account, log in to continue.","-555592125":"Unfortunately, trading options isn't possible in your country","-1571816573":"Sorry, trading is unavailable in your current location.","-1603581277":"minutes","-922253974":"Rise/Fall","-1361254291":"Higher/Lower","-335816381":"Ends In/Ends Out","-1789807039":"Asian Up/Asian Down","-330437517":"Matches/Differs","-657360193":"Over/Under","-558031309":"High Tick/Low Tick","-1714959941":"This chart display is not ideal for tick contracts","-1254554534":"Please change the chart duration to tick for a better trading experience.","-1658230823":"Contract was sold for <0 />.","-1905867404":"Contract cancelled"} \ No newline at end of file diff --git a/packages/translations/src/translations/ach.json b/packages/translations/src/translations/ach.json index 2fe43392b864..08abf23faefa 100644 --- a/packages/translations/src/translations/ach.json +++ b/packages/translations/src/translations/ach.json @@ -378,6 +378,7 @@ "492198410": "crwdns1259665:0crwdne1259665:0", "496680295": "crwdns1259667:0crwdne1259667:0", "497518317": "crwdns1259669:0crwdne1259669:0", + "498144457": "crwdns1574319:0crwdne1574319:0", "498562439": "crwdns1259671:0crwdne1259671:0", "499522484": "crwdns1259673:0crwdne1259673:0", "500855527": "crwdns1259675:0crwdne1259675:0", @@ -492,6 +493,7 @@ "644150241": "crwdns1259889:0crwdne1259889:0", "645016681": "crwdns1259891:0crwdne1259891:0", "645902266": "crwdns1259893:0crwdne1259893:0", + "647039329": "crwdns1555137:0crwdne1555137:0", "647192851": "crwdns1259895:0crwdne1259895:0", "647745382": "crwdns1259897:0{{ input_list }}crwdne1259897:0", "649317411": "crwdns1259899:0crwdne1259899:0", @@ -1102,6 +1104,7 @@ "1384222389": "crwdns1261053:0crwdne1261053:0", "1385418910": "crwdns1261055:0crwdne1261055:0", "1387503299": "crwdns1261057:0crwdne1261057:0", + "1388770399": "crwdns1555139:0crwdne1555139:0", "1389197139": "crwdns1261059:0crwdne1261059:0", "1390792283": "crwdns1261061:0crwdne1261061:0", "1391174838": "crwdns1261063:0crwdne1261063:0", @@ -1164,6 +1167,7 @@ "1455741083": "crwdns1261173:0crwdne1261173:0", "1457341530": "crwdns1261175:0crwdne1261175:0", "1457603571": "crwdns1261177:0crwdne1261177:0", + "1459761348": "crwdns1555141:0crwdne1555141:0", "1461323093": "crwdns1261179:0crwdne1261179:0", "1464190305": "crwdns1261181:0crwdne1261181:0", "1464253511": "crwdns1261183:0{{deriv}}crwdne1261183:0", @@ -1362,7 +1366,6 @@ "1720451994": "crwdns1261549:0{{minimum_fee}}crwdnd1261549:0{{currency}}crwdne1261549:0", "1720968545": "crwdns1261551:0crwdne1261551:0", "1722401148": "crwdns1261553:0crwdne1261553:0", - "1723398114": "crwdns1261555:0crwdne1261555:0", "1723589564": "crwdns1261557:0crwdne1261557:0", "1724696797": "crwdns1261559:0crwdne1261559:0", "1725958461": "crwdns1445513:0crwdne1445513:0", @@ -1415,6 +1418,7 @@ "1772532756": "crwdns1261653:0crwdne1261653:0", "1777847421": "crwdns1261655:0crwdne1261655:0", "1778893716": "crwdns1261657:0crwdne1261657:0", + "1779144409": "crwdns1555143:0crwdne1555143:0", "1779519903": "crwdns1261659:0crwdne1261659:0", "1780770384": "crwdns1261661:0crwdne1261661:0", "1781393492": "crwdns1490895:0{{platform_name_mt5}}crwdnd1490895:0{{platform_name_derivez}}crwdnd1490895:0{{platform_name_dxtrade}}crwdne1490895:0", @@ -2778,6 +2782,11 @@ "-1834929362": "crwdns1445573:0crwdne1445573:0", "-1043638404": "crwdns1445575:0crwdne1445575:0", "-1766760306": "crwdns1445577:0crwdne1445577:0", + "-1330929685": "crwdns1555145:0crwdne1555145:0", + "-99461057": "crwdns1555147:0crwdne1555147:0", + "-577279362": "crwdns1555149:0crwdne1555149:0", + "-197134911": "crwdns1555151:0crwdne1555151:0", + "-152823394": "crwdns1555153:0crwdne1555153:0", "-2142540205": "crwdns1490909:0crwdne1490909:0", "-482715448": "crwdns1490911:0crwdne1490911:0", "-2072411961": "crwdns1490913:0crwdne1490913:0", diff --git a/packages/translations/src/translations/ar.json b/packages/translations/src/translations/ar.json index 3221e6318671..80f297e592a5 100644 --- a/packages/translations/src/translations/ar.json +++ b/packages/translations/src/translations/ar.json @@ -378,6 +378,7 @@ "492198410": "Make sure everything is clear", "496680295": "Choose country", "497518317": "Function that returns a value", + "498144457": "A recent utility bill (e.g. electricity, water or gas)", "498562439": "or", "499522484": "1. for \"string\": 1325.68 USD", "500855527": "Chief Executives, Senior Officials and Legislators", @@ -492,6 +493,7 @@ "644150241": "The number of contracts you have won since you last cleared your stats.", "645016681": "Trading frequency in other financial instruments", "645902266": "EUR/NZD", + "647039329": "Proof of address required", "647192851": "Contract will be sold at the prevailing market price when the request is received by our servers. This price may differ from the indicated price.", "647745382": "Input List {{ input_list }}", "649317411": "On the basis of the information provided in relation to your knowledge and experience, we consider that the investments available via this website are not appropriate for you.<0/><1/>", @@ -1102,6 +1104,7 @@ "1384222389": "Please submit valid identity documents to unlock the cashier.", "1385418910": "Please set a currency for your existing real account before creating another account.", "1387503299": "Log in", + "1388770399": "Proof of identity required", "1389197139": "Import error", "1390792283": "Trade parameters", "1391174838": "Potential payout:", @@ -1164,6 +1167,7 @@ "1455741083": "Upload the back of your driving licence.", "1457341530": "Your proof of identity verification has failed", "1457603571": "No notifications", + "1459761348": "Submit proof of identity", "1461323093": "Display messages in the developer’s console.", "1464190305": "This block will transfer the control back to the Purchase conditions block, enabling you to purchase another contract without manually stopping and restarting your bot.", "1464253511": "You already have an account for each of the cryptocurrencies available on {{deriv}}.", @@ -1362,7 +1366,6 @@ "1720451994": "We’ll charge a 2% transfer fee or {{minimum_fee}} {{currency}}, whichever is higher, for transfers between your Deriv fiat and Deriv cryptocurrency accounts.", "1720968545": "Upload passport photo page from your computer", "1722401148": "The amount that you may add to your stake after each successful trade.", - "1723398114": "A recent utility bill (e.g. electricity, water, gas, phone or internet)", "1723589564": "Represents the maximum number of outstanding contracts in your portfolio. Each line in your portfolio counts for one open position. Once the maximum is reached, you will not be able to open new positions without closing an existing position first.", "1724696797": "You are limited to one fiat account only.", "1725958461": "Account number", @@ -1415,6 +1418,7 @@ "1772532756": "Create and edit", "1777847421": "This is a very common password", "1778893716": "Click here", + "1779144409": "Account verification required", "1779519903": "Should be a valid number.", "1780770384": "This block gives you a random fraction between 0.0 to 1.0.", "1781393492": "We do not charge a transfer fee for transfers in the same currency between your Deriv fiat and {{platform_name_mt5}} accounts, your Deriv fiat and {{platform_name_derivez}} accounts and your Deriv fiat and {{platform_name_dxtrade}} accounts.", @@ -2778,6 +2782,11 @@ "-1834929362": "Upload my document", "-1043638404": "<0>Proof of ownership <1>verification failed", "-1766760306": "<0><1>Please upload your document <2>with the correct details. <3>", + "-1330929685": "Please submit your proof of identity and proof of address to verify your account and continue trading.", + "-99461057": "Please submit your proof of address to verify your account and continue trading.", + "-577279362": "Please submit your proof of identity to verify your account and continue trading.", + "-197134911": "Your proof of identity is expired", + "-152823394": "Your proof of identity has expired. Please submit a new proof of identity to verify your account and continue trading.", "-2142540205": "It appears that the address in your document doesn’t match the address in your Deriv profile. Please update your personal details now with the correct address.", "-482715448": "Go to Personal details", "-2072411961": "Your proof of address has been verified", diff --git a/packages/translations/src/translations/es.json b/packages/translations/src/translations/es.json index e50c65a7684d..f2f314a996c4 100644 --- a/packages/translations/src/translations/es.json +++ b/packages/translations/src/translations/es.json @@ -378,6 +378,7 @@ "492198410": "Asegúrese de que todo esté claro", "496680295": "Elija país", "497518317": "Función que devuelve un valor", + "498144457": "A recent utility bill (e.g. electricity, water or gas)", "498562439": "o", "499522484": "1. para la \"cadena\": 1325.68 USD", "500855527": "Directores ejecutivos, altos funcionarios y legisladores", @@ -492,6 +493,7 @@ "644150241": "La cantidad de contratos que ha ganado desde la última vez que borró sus estadísticas.", "645016681": "Frecuencia de trading en otros instrumentos financieros", "645902266": "EUR/NZD", + "647039329": "Se requiere prueba de domicilio", "647192851": "El contrato se venderá al precio vigente en el mercado en el momento de la recepción de la solicitud de venta por nuestros servidores. Este precio puede ser diferente del precio indicado.", "647745382": "Lista de entrada {{ input_list }}", "649317411": "Sobre la base de la información proporcionada en relación con sus conocimientos y experiencia, consideramos que las inversiones disponibles a través de este sitio web no son adecuadas para usted.<0/><1/>", @@ -1102,6 +1104,7 @@ "1384222389": "Envíe documentos de identidad válidos para desbloquear el cajero.", "1385418910": "Ajuste una moneda para su cuenta real existente antes de crear otra cuenta.", "1387503299": "Iniciar sesión", + "1388770399": "Se requiere prueba de identidad", "1389197139": "Error de importación", "1390792283": "Parámetros comerciales", "1391174838": "Pago potencial:", @@ -1164,6 +1167,7 @@ "1455741083": "Suba el reverso de su carné de conducir.", "1457341530": "Verificación fallida de la prueba de identidad", "1457603571": "Sin notificaciones", + "1459761348": "Enviar prueba de identidad", "1461323093": "Mostrar mensajes en la consola de desarrolladores.", "1464190305": "Este bloque transferirá el control nuevamente al bloque de Condiciones de compra, permitiéndole comprar otro contrato sin detener y reiniciar manualmente su bot.", "1464253511": "Ya tiene una cuenta para cada una de las criptomonedas disponibles en {{deriv}}.", @@ -1244,7 +1248,7 @@ "1562374116": "Estudiantes", "1564392937": "Cuando establezca sus límites o autoexclusión, se agregarán a todos sus tipos de cuenta en {{platform_name_trader}} y {{platform_name_dbot}}. Por ejemplo, las pérdidas realizadas en ambas plataformas se sumarán y se contarán para el límite de pérdidas que establezca.", "1566037033": "Compra: {{longcode}} (ID:{{transaction_id}})", - "1567076540": "Utilice solo una dirección que pueda demostrar mediante un comprobante de residencia - ", + "1567076540": "Utilice solo una dirección que pueda demostrar mediante una prueba de residencia - ", "1567586204": "Autoexclusión", "1569624004": "Descartar alerta", "1570484627": "Lista de ticks", @@ -1362,7 +1366,6 @@ "1720451994": "Cobraremos una tarifa de transferencia del 2% o {{minimum_fee}} {{currency}}, lo que sea mayor, por las transferencias entre sus cuentas de criptomoneda Deriv y Deriv fiat.", "1720968545": "Suba la página con la foto de pasaporte desde su computadora", "1722401148": "La cantidad que puede agregar a su inversión después de cada operación exitosa.", - "1723398114": "Una factura de servicios públicos reciente (por ejemplo, electricidad, agua, gas, teléfono o internet)", "1723589564": "Representa el número máximo de contratos pendientes en su cartera. Cada línea de su cartera cuenta una posición abierta. Una vez que se alcanza el máximo no podrá abrir nuevas posiciones sin cerrar las posiciones existentes primero.", "1724696797": "Está limitado/a a una sola cuenta fiat.", "1725958461": "Número de cuenta", @@ -1400,7 +1403,7 @@ "1753975551": "Subir la página de la foto del pasaporte", "1756678453": "salir", "1758386013": "¡No se deje llevar por páginas \"Deriv\" falsas!", - "1761038852": "Continuemos proporcionando comprobantes de domicilio e identidad.", + "1761038852": "Continuemos proporcionando pruebas de domicilio e identidad.", "1761762171": "Reinicie la última operación con error (el bot ignora la operación fallida): {{ checkbox }}", "1762707297": "Número de teléfono", "1763123662": "Suba su recibo de NIMC.", @@ -1415,6 +1418,7 @@ "1772532756": "Crear y editar", "1777847421": "Esta es una contraseña muy común", "1778893716": "Haga clic aquí", + "1779144409": "Se requiere la verificación de la cuenta", "1779519903": "Debe ser un número válido.", "1780770384": "Este bloque le da una fracción aleatoria entre 0.0 a 1.0.", "1781393492": "No cobramos comisión por las transferencias en la misma moneda entre sus cuentas Deriv fiat y {{platform_name_mt5}}, sus cuentas Deriv fiat y {{platform_name_derivez}}, y entre sus cuentas Deriv fiat y {{platform_name_dxtrade}}.", @@ -1483,7 +1487,7 @@ "1850031313": "- Bajo: el precio más bajo", "1850132581": "País no encontrado", "1850659345": "- Pago: el pago del contrato", - "1850663784": "Enviar comprobantes", + "1850663784": "Enviar pruebas", "1851052337": "Se requiere lugar de nacimiento.", "1851776924": "superior", "1851951013": "Cambie a su cuenta demo para ejecutar su DBot.", @@ -1755,7 +1759,7 @@ "-566750665": "Recibo NIMC y prueba de edad", "-1465944279": "Número de recibo NIMC", "-429612996": "A continuación, suba los siguientes documentos.", - "-376981174": "Suba su comprobante de edad: certificado de nacimiento o documento de declaración de edad.", + "-376981174": "Suba su prueba de edad: certificado de nacimiento o documento de declaración de edad.", "-612174191": "Se requiere la primera línea de dirección", "-242734402": "Solo {{max}} caracteres, por favor.", "-378415317": "Se requiere el estado", @@ -2778,6 +2782,11 @@ "-1834929362": "Subir mi documento", "-1043638404": "<1>Fallo en la verificación de la prueba de <0>titularidad", "-1766760306": "<0><1>Suba su documento <2>con los detalles correctos.<3>", + "-1330929685": "Envíe su prueba de identidad y su prueba de domicilio para verificar su cuenta y seguir operando.", + "-99461057": "Envíe su prueba de domicilio para verificar su cuenta y seguir operando.", + "-577279362": "Envíe su prueba de identidad para verificar su cuenta y seguir operando.", + "-197134911": "Su prueba de identidad está caducada", + "-152823394": "Su prueba de identidad está caducada. Envíe una nueva prueba de identidad para verificar su cuenta y seguir operando.", "-2142540205": "Parece que la dirección en su documento no coincide con la dirección en su perfil Deriv. Actualice sus datos personales con la dirección correcta.", "-482715448": "Ir a Datos personales", "-2072411961": "Su prueba de domicilio ha sido verificada", diff --git a/packages/translations/src/translations/fr.json b/packages/translations/src/translations/fr.json index 86e9c443be4a..7e58dda0faf9 100644 --- a/packages/translations/src/translations/fr.json +++ b/packages/translations/src/translations/fr.json @@ -378,6 +378,7 @@ "492198410": "Assurez-vous que tout est clair", "496680295": "Sélectionnez votre pays", "497518317": "Fonction qui renvoie une valeur", + "498144457": "A recent utility bill (e.g. electricity, water or gas)", "498562439": "ou", "499522484": "1. pour \"chaîne\": 1325,68 USD", "500855527": "Chefs d’entreprise, hauts fonctionnaires et les législateurs", @@ -492,6 +493,7 @@ "644150241": "Le nombre de contrats que vous avez gagnés depuis la dernière fois que vous avez effacé vos statistiques.", "645016681": "Fréquence de négociation d'autres instruments financiers", "645902266": "EUR/NZD", + "647039329": "Preuve d'adresse requise", "647192851": "Le contrat sera vendu au prix du marché en vigueur lorsque la demande sera reçue par nos serveurs. Ce prix peut différer du prix indiqué.", "647745382": "Liste d'entrée {{ input_list }}", "649317411": "Sur la base des informations fournies en relation avec vos connaissances et votre expérience, nous considérons que les investissements disponibles via ce site ne vous conviennent pas. <0/><1/>", @@ -1102,6 +1104,7 @@ "1384222389": "Veuillez présenter des documents d'identité valides pour déverrouiller la caisse.", "1385418910": "Veuillez définir une devise pour votre compte réel existant avant de créer un autre compte.", "1387503299": "Connexion", + "1388770399": "Preuve d'identité requise", "1389197139": "Erreur d'importation", "1390792283": "Paramètres du trade", "1391174838": "Paiement potentiel:", @@ -1164,6 +1167,7 @@ "1455741083": "Téléchargez le verso de votre permis de conduire.", "1457341530": "La vérification de votre document d'identité a échoué", "1457603571": "Pas de notification", + "1459761348": "Soumettre une pièce d'identité", "1461323093": "Affichez les messages dans la console du développeur.", "1464190305": "Ce bloc retransférera le contrôle dans le bloc Conditions d'achat, vous permettant d'acheter un autre contrat sans arrêter et redémarrer manuellement votre bot.", "1464253511": "Vous disposez déjà d'un compte pour chacune des crypto-monnaies disponibles sur {{deriv}}.", @@ -1362,7 +1366,6 @@ "1720451994": "Nous facturons des frais de transfert de 2 % ou de {{minimum_fee}} {{currency}}, le montant le plus élevé étant retenu, pour les transferts entre vos comptes Deriv fiat et Deriv cryptomonnaie.", "1720968545": "Téléchargez la photo de votre passeport depuis votre ordinateur", "1722401148": "Le montant que vous pouvez ajouter à votre mise après chaque transaction réussie.", - "1723398114": "Une facture d'électricité récente (par exemple, électricité, eau, gaz, téléphone ou Internet)", "1723589564": "Représente le nombre maximum de contrats en cours dans votre portefeuille. Chaque ligne de votre portefeuille compte pour une position ouverte. Une fois le maximum atteint, vous ne pourrez plus ouvrir de nouvelles positions sans fermer d'abord une position existante.", "1724696797": "Vous êtes limité à un seul compte fiat.", "1725958461": "Numéro de compte", @@ -1415,6 +1418,7 @@ "1772532756": "Créer et éditer", "1777847421": "C'est un mot de passe très courant", "1778893716": "Cliquez ici", + "1779144409": "Vérification du compte requise", "1779519903": "La saisie doit être un nombre valide.", "1780770384": "Ce bloc vous donne une fraction aléatoire entre 0,0 et 1,0.", "1781393492": "Nous ne facturons pas de frais de transfert pour les virements dans la même devise entre vos comptes Deriv fiat et {{platform_name_mt5}} , vos comptes Deriv fiat et {{platform_name_derivez}} et votre compte Deriv fiat et {{platform_name_dxtrade}} comptes.", @@ -2778,6 +2782,11 @@ "-1834929362": "Téléchargez mon document", "-1043638404": "La <1>vérification <0>de la preuve de propriété a échoué", "-1766760306": "<0><1>Veuillez télécharger votre document <2>avec les informations correctes.<3>", + "-1330929685": "Veuillez soumettre votre preuve d'identité et votre justificatif de domicile pour vérifier votre compte et poursuivre vos transactions.", + "-99461057": "Veuillez soumettre votre justificatif de domicile pour vérifier votre compte et continuer à trader.", + "-577279362": "Veuillez soumettre votre preuve d'identité pour vérifier votre compte et continuer à trader.", + "-197134911": "Votre preuve d'identité est expirée", + "-152823394": "Votre preuve d'identité a expiré. Veuillez soumettre une nouvelle preuve d'identité pour vérifier votre compte et continuer à trader.", "-2142540205": "Il semble que l'adresse dans votre document ne corresponde pas à l'adresse dans votre profil Deriv. Veuillez mettre à jour vos détails personnelles avec l'adresse correcte.", "-482715448": "Aller aux Détails personnels", "-2072411961": "Votre justificatif de domicile a été vérifié", diff --git a/packages/translations/src/translations/id.json b/packages/translations/src/translations/id.json index 44f6c3199359..70fa1a597728 100644 --- a/packages/translations/src/translations/id.json +++ b/packages/translations/src/translations/id.json @@ -378,6 +378,7 @@ "492198410": "Pastikan semuanya jelas", "496680295": "Pilih negara", "497518317": "Fungsi yang memberi nilai", + "498144457": "A recent utility bill (e.g. electricity, water or gas)", "498562439": "atau", "499522484": "1. untuk \"string\": USD 1325,68", "500855527": "Kepala Eksekutif, Pejabat Senior dan Legislator", @@ -492,6 +493,7 @@ "644150241": "Jumlah kontrak untung sejak terakhir kali Anda menghapus statistik.", "645016681": "Trading frekuensi pada instrumen keuangan lainnya", "645902266": "EUR/NZD", + "647039329": "Bukti alamat diperlukan", "647192851": "Kontrak akan dijual pada harga pasar terkini ketika permintaan diterima oleh server kami. Harga ini mungkin berbeda dari harga yang diindikasikan.", "647745382": "Daftar Input {{ input_list }}", "649317411": "Berdasarkan informasi yang diberikan berkaitan dengan pengetahuan dan pengalaman, kami menganggap bahwa investasi yang tersedia melalui website ini tidak sesuai untuk Anda.", @@ -1102,6 +1104,7 @@ "1384222389": "Mohon kirim dokumen identitas yang masih berlaku untuk pengaktifan kasir.", "1385418910": "Harap tetapkan mata uang pada akun riil yang sudah ada sebelum mendaftar akun lain.", "1387503299": "Masuk", + "1388770399": "Bukti identitas yang dibutuhkan", "1389197139": "Impor error", "1390792283": "Parameter kontrak", "1391174838": "Potensi hasil:", @@ -1164,6 +1167,7 @@ "1455741083": "Unggah bagian belakang SIM Anda.", "1457341530": "Verifikasi bukti identitas Anda gagal", "1457603571": "Tidak terdapat pemberitahuan", + "1459761348": "Kirim bukti identitas", "1461323093": "Menampilkan pesan di konsol developer.", "1464190305": "Blok ini akan mengalihkan kontrol kembali ke blok kondisi pembelian, memungkinkan Anda untuk membeli kontrak lain tanpa harus secara manual menghentikan dan merestart bot Anda.", "1464253511": "Anda sudah memiliki semua jenis akun mata uang kripto yang tersedia pada {{deriv}}.", @@ -1362,7 +1366,6 @@ "1720451994": "Kami akan mengenakan biaya transfer sebesar 2% atau {{minimum_fee}} {{currency}}, mana yang lebih tinggi, untuk transfer antara akun fiat Deriv ke akun mata uang kripto Deriv Anda.", "1720968545": "Unggah halaman foto paspor dari komputer Anda", "1722401148": "Jumlah yang dapat Anda tambahkan pada modal Anda pada setiap kontrak yang berhasil.", - "1723398114": "Tagihan listrik, air, telpon rumah atau internet terbaru", "1723589564": "Mewakili jumlah kontrak pada portopolio Anda. Setiap baris pada portopolio Anda dihitung sebagai satu posisi. Jika jumlah maksimum tercapai maka Anda perlu menutup salah satu posisi untuk membeli kontrak atau posisi lainnya.", "1724696797": "Anda hanya dapat memiliki satu akun fiat saja.", "1725958461": "Nomer rekening", @@ -1415,6 +1418,7 @@ "1772532756": "Buat dan edit", "1777847421": "Ini adalah kata sandi yang sangat umum", "1778893716": "Klik di sini", + "1779144409": "Verifikasi akun diperlukan", "1779519903": "Harus nomor yang valid.", "1780770384": "Blok ini memberi Anda pecahan acak antara 0,0 hingga 1,0.", "1781393492": "Kami tidak mengenakan biaya transfer untuk transfer dengan mata uang sama antar fiat Deriv dan akun {{platform_name_mt5}}, fiat Deriv dan akun {{platform_name_derivez}}, serta antar fiat Deriv dan akun {{platform_name_dxtrade}} Anda.", @@ -2778,6 +2782,11 @@ "-1834929362": "Unggah dokumen saya", "-1043638404": "<0>Verifikasi bukti kepemilikan <1>gagal", "-1766760306": "<0><1>Silakan unggah dokumen Anda <2>dengan rincian yang benar.<3>", + "-1330929685": "Harap kirimkan bukti identitas dan bukti alamat Anda untuk memverifikasi akun Anda dan melanjutkan perdagangan.", + "-99461057": "Silakan kirimkan bukti alamat Anda untuk memverifikasi akun Anda dan melanjutkan perdagangan.", + "-577279362": "Harap kirimkan bukti identitas Anda untuk memverifikasi akun Anda dan melanjutkan perdagangan.", + "-197134911": "Bukti identitas Anda kedaluwarsa", + "-152823394": "Bukti identitas Anda telah kedaluwarsa. Silakan kirimkan bukti identitas baru untuk memverifikasi akun Anda dan melanjutkan perdagangan.", "-2142540205": "Sepertinya alamat pada dokumen Anda tidak sesuai dengan alamat pada profil Deriv Anda. Mohon perbarui detail pribadi Anda sekarang dengan alamat yang benar.", "-482715448": "Kunjungi data pribadi", "-2072411961": "Bukti alamat Anda telah diverifikasi", diff --git a/packages/translations/src/translations/it.json b/packages/translations/src/translations/it.json index 7455c8552aff..2cfbb2dcd2ab 100644 --- a/packages/translations/src/translations/it.json +++ b/packages/translations/src/translations/it.json @@ -378,6 +378,7 @@ "492198410": "Assicurati che tutto sia chiaro", "496680295": "Seleziona il Paese", "497518317": "Funzione che restituisce un valore", + "498144457": "A recent utility bill (e.g. electricity, water or gas)", "498562439": "o", "499522484": "1. per \"stringa\": 1325,68 USD", "500855527": "Amministratori delegati, Alti funzionari e Legislatori", @@ -492,6 +493,7 @@ "644150241": "Il numero di contratti ottenuti dall'ultima volta che hai cancellato le statistiche.", "645016681": "Frequenza di trading con altri strumenti finanziari", "645902266": "EUR/NZD", + "647039329": "È richiesta una prova a verifica dell'indirizzo", "647192851": "Il contratto verrà venduto al prezzo di mercato prevalente nel momento in cui i nostri server ricevono la richiesta. Tale prezzo può differire rispetto al prezzo indicato.", "647745382": "Elenco degli input {{ input_list }}", "649317411": "Sulla base delle informazioni fornite in relazione alla tua conoscenza ed esperienza, riteniamo che gli investimenti disponibili su questo sito internet non siano adatti a te.<0/><1/>", @@ -1102,6 +1104,7 @@ "1384222389": "Invia documenti d'identità validi per sbloccare la cassa.", "1385418910": "Seleziona una valuta per il conto reale in tuo possesso prima di creare un nuovo conto.", "1387503299": "Login", + "1388770399": "È richiesto un documento a verifica dell'identità", "1389197139": "Errore d'importazione", "1390792283": "Parametri del trade", "1391174838": "Payout potenziale:", @@ -1164,6 +1167,7 @@ "1455741083": "Carica la parte posteriore della tua patente di guida.", "1457341530": "La verifica dell'identità non è andata a buon fine", "1457603571": "Nessuna notifica", + "1459761348": "Invia documento di verifica dell'identità", "1461323093": "Mostra messaggi nella console dello sviluppatore.", "1464190305": "Questo blocco trasferisce nuovamente il controllo al blocco delle condizioni di acquisto, permettendoti di acquistare un altro contratto senza dover manualmente arrestare e riavviare il bot.", "1464253511": "Hai già un conto per ogni criptovaluta disponibile su {{deriv}}.", @@ -1362,7 +1366,6 @@ "1720451994": "Verrà addebitata una commissione per i trasferimenti 2% oppure {{minimum_fee}} {{currency}}, se ha un valore superiore, per i trasferimenti tra i conti per fiat e per criptovalute di Deriv.", "1720968545": "Carica la pagina del passaporto con la foto dal tuo computer", "1722401148": "L'importo che può essere aggiunto alla puntata dopo ogni trade vincente.", - "1723398114": "Una recente bolletta delle utenze (ad es. elettricità, acqua, gas, telefono o internet)", "1723589564": "Rappresenta il numero massimo di contratti in essere nel tuo portafoglio. Ogni riga presente sul tuo portafoglio vale una posizione aperta. Una volta raggiunto il valore massimo, non potrai aprire nuove posizioni senza prima chiudere una posizione esistente.", "1724696797": "È possibile avere un solo conto fiat.", "1725958461": "Numero del conto", @@ -1415,6 +1418,7 @@ "1772532756": "Crea a modifica", "1777847421": "Questa è una password usata di frequente", "1778893716": "Clicca qui", + "1779144409": "È richiesta la verifica del conto", "1779519903": "Deve essere un numero valido.", "1780770384": "Questo blocco fornisce una frazione casuale compresa tra 0,0 e 1,0.", "1781393492": "Non addebitiamo alcuna commissione di trasferimento per i trasferimenti nella stessa valuta tra i conti Deriv fiat e {{platform_name_mt5}}, i conti Deriv fiat e {{platform_name_derivez}} e i conti fiat Deriv e {{platform_name_dxtrade}}.", @@ -2778,6 +2782,11 @@ "-1834929362": "Carica il documento", "-1043638404": "<0>Verifica della proprietà <1>non riuscita", "-1766760306": "<0><1>Carica il documento <2>con i dati corretti.<3>", + "-1330929685": "Invia la prova di identità e la prova dell'indirizzo per verificare il conto e continuare a fare trading.", + "-99461057": "Invia la prova di indirizzo per verificare il conto e continuare a fare trading.", + "-577279362": "Invia il documento di identità per verificare il conto e continuare a fare trading.", + "-197134911": "Il documento di identità è scaduto", + "-152823394": "Il documento di identità è scaduto. Invia un nuovo documento di identità per verificare il conto e continuare a fare trading.", "-2142540205": "Sembra che l'indirizzo nel documento non corrisponda all'indirizzo nel tuo profilo Deriv. Aggiorna subito i tuoi dati personali con l'indirizzo corretto.", "-482715448": "Vai ai dati personali", "-2072411961": "Il documento di verifica dell'indirizzo è stato verificato", diff --git a/packages/translations/src/translations/ko.json b/packages/translations/src/translations/ko.json index a42c1478fcf6..173918154a9b 100644 --- a/packages/translations/src/translations/ko.json +++ b/packages/translations/src/translations/ko.json @@ -378,6 +378,7 @@ "492198410": "모든 것이 명확한지를 확인하세요", "496680295": "국가 선택", "497518317": "값을 불러오는 함수", + "498144457": "A recent utility bill (e.g. electricity, water or gas)", "498562439": "또는", "499522484": "1. \"문자열\"의 예시: 1325.68 USD", "500855527": "최고 경영자, 고위 임원 및 입법자", @@ -492,6 +493,7 @@ "644150241": "귀하의 스탯을 마지막으로 삭제한 이후로부터 귀하께서 획득한 계약의 수.", "645016681": "다른 금융 상품에서의 거래 빈도", "645902266": "EUR/NZD", + "647039329": "주소증명이 요구됩니다", "647192851": "우리의 서버에 의해 요구가 접수되면 우세한 시장가격으로 계약이 판매될 것입니다. 이 가격은 표시되어 있는 가격과 다를 수 있습니다.", "647745382": "인풋 목록 {{ input_list }}", "649317411": "귀하의 지식과 경험에 대하여 제공된 정보에 근거하여, 우리는 이 웹사이트를 통해 할 수 있는 투자들이 귀하에게는 적합하지 않는다고 생각합니다.<0/><1/>", @@ -1102,6 +1104,7 @@ "1384222389": "캐셔를 활성화하기 위해 유효한 신분증을 제출해 주시기 바랍니다.", "1385418910": "다른 계좌를 생성하기 이전에 귀하께서 현재 가지고 계시는 실제 계좌에 대해 통화를 설정해주시기 바랍니다.", "1387503299": "로그인", + "1388770399": "신분 증명이 필요합니다", "1389197139": "불러오기 오류", "1390792283": "거래 파라미터", "1391174838": "잠재적인 지불금:", @@ -1164,6 +1167,7 @@ "1455741083": "귀하의 운전면허증 뒷면을 업로드하세요.", "1457341530": "귀하의 신분 확인 증명이 실패되었습니다", "1457603571": "공지 없음", + "1459761348": "신분증명 제출", "1461323093": "개발자의 콘솔에서 메시지 보기", "1464190305": "이 블록은 귀하께서 귀하의 봇을 수동으로 멈춤 및 재시작하지 않고 다른 계약을 구매하실 수 있도록 구매 조건 블록으로 컨트롤을 전송할 것입니다.", "1464253511": "귀하께서는 {{deriv}} 에서 가능한 각 암호화폐에 대한 계좌를 보유하고 있습니다.", @@ -1362,7 +1366,6 @@ "1720451994": "귀하의 Deriv fiat과 Deriv 암호화폐 계좌들간의 송금들에 대해서 저희는 2% 송금 비용 또는 {{minimum_fee}} {{currency}} 중에서 더 높은 금액을 청구할 것입니다.", "1720968545": "귀하의 컴퓨터에서 여권 사진 페이지를 업로드해주세요", "1722401148": "각각의 성공적인 거래 이후 귀하께서 귀하의 지분에 추가하실 수 있는 금액.", - "1723398114": "최근의 공과금 (예. 전기, 수도, 가스, 전화 또는 인터넷)", "1723589564": "귀하의 포트폴리오에 있는 처리해야 하는 계약건의 최대 수를 나타냅니다. 귀하의 포트폴리오에서 각각의 줄은 하나의 오픈 포지션을 나타냅니다. 최대 수에 도달되면 귀하께서는 현재 존재하는 포지션을 먼저 닫지 않고서는 새로운 포지션을 열 수 없습니다.", "1724696797": "귀하께서는 하나의 피아트 통화만 소유하실 수 있습니다.", "1725958461": "계좌 번호", @@ -1415,6 +1418,7 @@ "1772532756": "생성 및 편집하기", "1777847421": "너무 흔한 비밀번호입니다", "1778893716": "여기를 클릭하세요", + "1779144409": "계정 인증 필요", "1779519903": "유효한 숫자여야 합니다.", "1780770384": "이 블록은 귀하에게 0.0과 1.0 사이에 있는 한 무작위 분수를 제공합니다.", "1781393492": "Deriv 피아트와 {{platform_name_mt5}} 계정, Deriv 피아트와 {{platform_name_derivez}} 계정, 그리고 Deriv 피아트와 {{platform_name_dxtrade}} 계정 간에 동일한 통화로 이체하는 경우에는 이체 수수료가 부과되지 않습니다.", @@ -2778,6 +2782,11 @@ "-1834929362": "내 문서 업로드", "-1043638404": "<0>소유권 증명 <1>검증이 실패되었습니다", "-1766760306": "<0><2>올바른 세부 정보가 포함되어 있는 <1>문서를 업로드하시기 바랍니다. <3>", + "-1330929685": "계정을 확인하고 거래를 계속하려면 신원 증명과 주소 증명을 제출하십시오.", + "-99461057": "계정을 확인하고 거래를 계속하려면 주소 증명을 제출하세요.", + "-577279362": "계정을 확인하고 거래를 계속하려면 신원 증명을 제출하세요.", + "-197134911": "신분 증명이 만료되었습니다", + "-152823394": "신분 증명이 만료되었습니다. 계정을 확인하고 거래를 계속하려면 새 신분 증명을 제출하세요.", "-2142540205": "귀하의 문서에 나와있는 주소가 귀하의 Deriv 프로필에 있는 주소와 일치하지 않는 것으로 보입니다. 귀하의 개인 세부정보를 지금 올바른 주소로 업데이트하시기 바랍니다.", "-482715448": "개인 세부 정보로 이동", "-2072411961": "귀하의 주소 증명이 인증되었습니다", diff --git a/packages/translations/src/translations/pl.json b/packages/translations/src/translations/pl.json index 2ccc004a5443..58825b4be887 100644 --- a/packages/translations/src/translations/pl.json +++ b/packages/translations/src/translations/pl.json @@ -378,6 +378,7 @@ "492198410": "Upewnij się, że wszystko jest dobrze widoczne", "496680295": "Wybierz kraj", "497518317": "Funkcja, która zwraca wartość", + "498144457": "A recent utility bill (e.g. electricity, water or gas)", "498562439": "lub", "499522484": "1. dla „ciągu”: 1325,68 USD", "500855527": "Dyrektorzy, urzędnicy wysokiego szczebla, prawodawcy", @@ -492,6 +493,7 @@ "644150241": "Liczba wygranych kontraktów od ostatniego zerowania statystyk.", "645016681": "Częstotliwość handlowania innymi instrumentami finansowymi", "645902266": "EUR/NZD", + "647039329": "Wymagane jest potwierdzenie adresu", "647192851": "Kontrakty będą sprzedawane po obowiązującej cenie rynkowej po dotarciu wniosku na nasze serwery. Cena może różnić się od podanej ceny.", "647745382": "Lista wejściowa {{ input_list }}", "649317411": "Na podstawie przedstawionych informacji dotyczących Twojej wiedzy i doświadczenia uznaliśmy, że inwestycje dostępne za pośrednictwem naszej strony są dla Ciebie nieodpowiednie.<0/><1/>", @@ -1102,6 +1104,7 @@ "1384222389": "Aby odblokować sekcję Kasjer, prześlij ważny dokument tożsamości.", "1385418910": "Przed założeniem nowego konta, ustaw walutę swojego istniejącego prawdziwego konta.", "1387503299": "Logowanie", + "1388770399": "Wymagane jest potwierdzenie tożsamości", "1389197139": "Błąd importowania", "1390792283": "Parametry zakładu", "1391174838": "Potencjalna wypłata:", @@ -1164,6 +1167,7 @@ "1455741083": "Prześlij tylną stronę swojego prawa jazdy.", "1457341530": "Weryfikacja potwierdzenia tożsamości nie powiodła się", "1457603571": "Brak powiadomień", + "1459761348": "Dostarcz potwierdzenie tożsamości", "1461323093": "Wyświetlaj wiadomości w konsoli dewelopera.", "1464190305": "Ten blok przeniesie kontrolę z powrotem na blok Warunki zakupu, umożliwiając Ci zakup kolejnego kontraktu bez konieczności ręcznego zatrzymywania i restartowania Twojego bota.", "1464253511": "Masz już konto dla każdej kryptowaluty dostępnej na {{deriv}}.", @@ -1362,7 +1366,6 @@ "1720451994": "Za przelewy między kontem Deriv w walucie fiducjarnej a kontem Deriv w kryptowalucie pobierana jest opłata w wysokości 2% kwoty transferu lub {{minimum_fee}} {{currency}}, w zależności od tego, która kwota jest wyższa.", "1720968545": "Prześlij stronę paszportu ze zdjęciem ze swojego komputera", "1722401148": "Kwota, którą możesz dodać do swojej stawki po każdym skutecznym zakładzie.", - "1723398114": "Rachunek za media z ostatnich miesięcy (np. za prąd, wodę, gaz, telefon lub internet)", "1723589564": "Pokazuje maksymalną liczbę niezapłaconych kontraktów w Twoim portfolio. Każda linia w Twoim portfolio liczy się jako jedna otwarta pozycja. Po osiągnięciu maksimum nie będziesz mieć możliwości otwierania nowych pozycji bez uprzedniego zamknięcia dotychczasowych pozycji.", "1724696797": "Obowiązuje Cię ograniczenie do jednego konta fiducjarnego.", "1725958461": "Numer konta", @@ -1415,6 +1418,7 @@ "1772532756": "Utwórz i edytuj", "1777847421": "To bardzo popularne hasło", "1778893716": "Kliknij tutaj", + "1779144409": "Wymagana weryfikacja konta", "1779519903": "Akceptowane są tylko liczby.", "1780770384": "Ten blok daje losową wartość ułamkową między 0,0 a 1,0.", "1781393492": "Za przelewy w tych samych walutach między kontem Deriv w walucie fiducjarnej a kontem {{platform_name_mt5}} lub kontem Deriv w walucie fiducjarnej a kontami {{platform_name_derivez}} lub {{platform_name_dxtrade}} nie jest pobierana opłata.", @@ -2778,6 +2782,11 @@ "-1834929362": "Prześlij mój dokument", "-1043638404": "<0>Weryfikacja dowodu własności <1>nie powiodła się", "-1766760306": "<0><1>Prześlij dokument <2>z poprawnymi danymi.<3>", + "-1330929685": "Prosimy o przesłanie dowodu tożsamości i adresu, aby zweryfikować swoje konto i kontynuować handel.", + "-99461057": "Prześlij swój dowód adresu, aby zweryfikować swoje konto i kontynuować handel.", + "-577279362": "Prześlij swój dowód tożsamości, aby zweryfikować swoje konto i kontynuować handel.", + "-197134911": "Twój dowód tożsamości wygasł", + "-152823394": "Twój dowód tożsamości wygasł. Prześlij nowy dowód tożsamości, aby zweryfikować swoje konto i kontynuować handel.", "-2142540205": "Wygląda na to, że adres w dokumencie nie pasuje do adresu w Twoim profilu Deriv. Zaktualizuj teraz swoje dane osobowe, podając poprawny adres.", "-482715448": "Przejdź do danych osobowych", "-2072411961": "Twój dowód adresu został zweryfikowany", diff --git a/packages/translations/src/translations/pt.json b/packages/translations/src/translations/pt.json index aaa4e22f98c0..6375795de9f7 100644 --- a/packages/translations/src/translations/pt.json +++ b/packages/translations/src/translations/pt.json @@ -378,6 +378,7 @@ "492198410": "Certifique-se de que tudo está claro", "496680295": "Selecione seu país", "497518317": "Função que retorna um valor", + "498144457": "A recent utility bill (e.g. electricity, water or gas)", "498562439": "ou", "499522484": "1. para \"string\": 1325,68 USD", "500855527": "Principais executivos, altos funcionários e legisladores", @@ -492,6 +493,7 @@ "644150241": "Número de contratos que você ganhou desde a última vez que apagou suas estatísticas.", "645016681": "Frequência de negociação de outros instrumentos financeiros", "645902266": "EUR/NZD", + "647039329": "Comprovante de residência obrigatório", "647192851": "O contrato será vendido ao preço prevalecente do mercado no momento em que o pedido for recebido pelos nossos servidores. Esse preço pode ser diferente do preço indicado.", "647745382": "Lista de entrada {{ input_list }}", "649317411": "Com base nas informações fornecidas em relação aos seus conhecimentos e a sua experiência, consideramos que os investimentos disponíveis neste website não são adequados para você. <0/><1/>", @@ -1102,6 +1104,7 @@ "1384222389": "Envie documentos de identidade válidos para desbloquear o caixa.", "1385418910": "Defina uma moeda para sua conta real existente antes de criar outra conta.", "1387503299": "Conectar-se", + "1388770399": "Comprovante de identidade obrigatório", "1389197139": "Erro de importação", "1390792283": "Parâmetros de Negociação", "1391174838": "Retorno potencial:", @@ -1164,6 +1167,7 @@ "1455741083": "Carregue o verso da sua carteira de habilitação.", "1457341530": "A verificação do comprovante de identidade falhou", "1457603571": "Nenhum notificação", + "1459761348": "Enviar comprovante de identidade", "1461323093": "Exibir mensagens no console do desenvolvedor.", "1464190305": "Este bloco transferirá o controle de volta ao bloco Condições de compra, permitindo que você compre outro contrato sem parar e reiniciar manualmente o seu bot.", "1464253511": "Você já tem uma conta para cada uma das criptomoedas disponíveis na {{deriv}}.", @@ -1362,7 +1366,6 @@ "1720451994": "Cobraremos uma taxa de transferência de 2% ou {{minimum_fee}} {{currency}}, o que for mais alto, para transferências entre suas contas Deriv fiduciária e Deriv criptomoeda.", "1720968545": "Enviar a página do passaporte (a que mostra sua foto) direto do seu computador", "1722401148": "A quantia que você pode adicionar à sua Entrada após cada negociação bem-sucedida.", - "1723398114": "Uma fatura recente de serviços públicos (exemplo, luz, água, gás, telefone fixo ou internet banda larga)", "1723589564": "Representa o número máximo de contratos pendentes em seu portfólio. Cada linha do seu portfólio conta para uma posição aberta. Uma vez atingido o máximo, você não poderá abrir novas posições sem fechar primeiro uma posição existente.", "1724696797": "Você está limitado a apenas uma conta fiduciária.", "1725958461": "Número da conta", @@ -1415,6 +1418,7 @@ "1772532756": "Criar e editar", "1777847421": "Esta é uma senha muito comum", "1778893716": "Clique aqui", + "1779144409": "Verificação de conta obrigatória", "1779519903": "Deve ser um número válido.", "1780770384": "Esse bloco fornece uma fração aleatória entre 0,0 e 1,0.", "1781393492": "Não cobramos uma taxa de transferência para transferências na mesma moeda entre as suas contas Deriv fiduciárias e Deriv {{platform_name_mt5}}, as suas contas Deriv fiduciárias e {{platform_name_derivez}} e as suas contas Deriv fiduciárias e {{platform_name_dxtrade}}.", @@ -2778,6 +2782,11 @@ "-1834929362": "Carregar meu documento", "-1043638404": "<1>Falha na verificação da certidão de <0>propriedade", "-1766760306": "<0><1>Carregue o seu documento <2>com os dados corretos.<3>", + "-1330929685": "Envie o seu comprovante de identidade e o comprovante de residência para verificar a sua conta e continuar negociando.", + "-99461057": "Envie o seu comprovante de residência para verificar a sua conta e continuar negociando.", + "-577279362": "Envie o seu comprovante de identidade para verificar a sua conta e continuar negociando.", + "-197134911": "O seu comprovante de identidade expirou", + "-152823394": "O seu comprovante de identidade expirou. Envie um novo comprovante de identidade para verificar a sua conta e continuar negociando.", "-2142540205": "Parece que o endereço em seu documento não corresponde ao endereço no seu perfil Deriv. Atualize agora os seus dados pessoais com o endereço correto.", "-482715448": "Ir para Dados Pessoais", "-2072411961": "Seu comprovante de residência foi verificado", diff --git a/packages/translations/src/translations/ru.json b/packages/translations/src/translations/ru.json index 40782f060352..dc9b3908394d 100644 --- a/packages/translations/src/translations/ru.json +++ b/packages/translations/src/translations/ru.json @@ -378,6 +378,7 @@ "492198410": "Убедитесь, что все хорошо видно", "496680295": "Выберите страну", "497518317": "Функция, возвращающая значение", + "498144457": "A recent utility bill (e.g. electricity, water or gas)", "498562439": "или", "499522484": "1. в формате строки: 1325.68 USD", "500855527": "Руководители, высокопоставленные чиновники и работники законодательных органов", @@ -492,6 +493,7 @@ "644150241": "Количество успешных контрактов с момента последней очистки статистики.", "645016681": "Частота торговли другими финансовыми инструментами", "645902266": "EUR/NZD", + "647039329": "Необходимо подтверждение адреса", "647192851": "Контракт будет продан по цене, действующей на момент получения запроса нашими серверами. Эта цена может отличаться от указанной в настоящее время.", "647745382": "Список ввода {{ input_list }}", "649317411": "На основе предоставленной информации о ваших знаниях и опыте, мы считаем, что инвестиционные продукты, предложенные на этом сайте, не подходят для вас.<0/><1/>", @@ -1102,6 +1104,7 @@ "1384222389": "Предоставьте действительные документы, удостоверяющие личность, чтобы разблокировать кассу.", "1385418910": "Пожалуйста, установите валюту для существующего реального счета, прежде чем открыть другой счет.", "1387503299": "Вход", + "1388770399": "Необходимо подтверждение личности", "1389197139": "Ошибка импорта", "1390792283": "Параметры контракта", "1391174838": "Потенциальная выплата:", @@ -1164,6 +1167,7 @@ "1455741083": "Загрузите оборотную сторону водительских прав.", "1457341530": "Не удалось подтвердить личность", "1457603571": "Нет уведомлений", + "1459761348": "Отправить подтверждение личности", "1461323093": "Отображает сообщения в консоли разработчика.", "1464190305": "Этот блок вернет контроль блоку условий покупки, что позволит вам приобрести другой контракт без остановки и ручной перезагрузки бота.", "1464253511": "У вас уже есть счет во всех криптовалютах, доступных на {{deriv}}.", @@ -1362,7 +1366,6 @@ "1720451994": "За переводы между вашими фиатными и криптовалютными счетами Deriv мы взимаем комиссию в размере 2% или {{minimum_fee}} {{currency}}, в зависимости от того, какая сумма больше.", "1720968545": "Загрузите страницу паспорта с фото со своего компьютера", "1722401148": "Сумма, которую вы можете добавить к своей ставке после каждого успешного контракта.", - "1723398114": "Недавний счет за коммунальные услуги (т.е. за электричество, воду, газ, телефон или интернет)", "1723589564": "Представляет собой максимальное количество открытых контрактов в вашем портфеле. Каждая строка в портфеле отображает открытую позицию. Когда вы достигнете лимита, вы не сможете открывать новые контракты, пока не закроете текущие.", "1724696797": "Вы можете открыть только один фиатный счет.", "1725958461": "Номер счета", @@ -1415,9 +1418,10 @@ "1772532756": "Создать и редактировать", "1777847421": "Это один из наиболее распространенных паролей", "1778893716": "Нажмите здесь", + "1779144409": "Требуется верификация счета", "1779519903": "Введите правильное число.", "1780770384": "Этот блок дает вам случайную долю от 0.0 до 1.0.", - "1781393492": "Мы не взимаем комиссию за переводы в одной и той же валюте между вашими счетами Deriv fiat и {{platform_name_mt5}}, счетами Deriv fiat и {{platform_name_derivez}} и счетами Deriv fiat и {{platform_name_dxtrade}}.", + "1781393492": "Мы не взимаем комиссию за переводы в одной валюте между вашими фиатными счетами Deriv и {{platform_name_mt5}}, фиатными счетами Deriv и {{platform_name_derivez}}, и фиатными счетами Deriv и {{platform_name_dxtrade}}.", "1782308283": "Быстрая стратегия", "1782395995": "Прогноз последней десятичной", "1782690282": "Меню блоков", @@ -2226,7 +2230,7 @@ "-38915613": "Несохраненные изменения", "-2137450250": "У вас есть несохраненные изменения. Вы уверены, что хотите отменить изменения и покинуть эту страницу?", "-1067082004": "Выйти из Настроек", - "-1982432743": "Похоже, что адрес в вашем документе не совпадает с адресом\n в вашем профиле Deriv. Пожалуйста, обновите свои личные данные сейчас, указав\n правильным адресом.", + "-1982432743": "Похоже, что адрес в вашем документе не совпадает с адресом\n в вашем профиле Deriv. Пожалуйста, обновите свои личные данные сейчас, указав\n правильный адрес.", "-1451334536": "Продолжить торговлю", "-1525879032": "Истек срок действия документа, подтверждающего адрес. Пожалуйста, отправьте новый документ.", "-1425489838": "Верификация подтверждения адреса не требуется", @@ -2346,7 +2350,7 @@ "-2056016338": "Мы не взимаем комиссию за переводы в одной и той же валюте между вашим фиатным счетом Deriv и счетом {{platform_name_mt5}}.", "-599632330": "Мы взимаем комиссию в размере 1% за переводы в разных валютах между вашим фиатным счетом Deriv и счетом {{platform_name_mt5}}, и вашим фиатным счетом Deriv и счетом {{platform_name_dxtrade}}.", "-1196994774": "За переводы между вашими криптовалютными счетами Deriv мы взимаем комиссию в размере 2% или {{minimum_fee}} {{currency}}, в зависимости от того, какая сумма больше.", - "-1361372445": "Мы взимаем комиссию за перевод в размере 2% или {{minimum_fee}} {{currency}}, в зависимости от того, что больше, за переводы между вашими криптовалютными счетами Deriv и Deriv MT5, вашими криптовалютными счетами Deriv и {{platform_name_derivez}}, а также вашими криптовалютными счетами Deriv и {{platform_name_dxtrade}}.", + "-1361372445": "Мы взимаем комиссию за перевод в размере 2% или {{minimum_fee}} {{currency}}, в зависимости от того, что больше, за переводы между вашими криптовалютными счетами Deriv и счетами Deriv MT5, криптовалютными счетами Deriv и счетами {{platform_name_derivez}}, а также криптовалютными счетами Deriv и счетами {{platform_name_dxtrade}}.", "-993556039": "За переводы между вашими криптовалютными счетами Deriv и счетом Deriv MT5, или криптовалютными счетами Deriv и счетом {{platform_name_dxtrade}} мы взимаем комиссию в размере 2% или {{minimum_fee}} {{currency}}, в зависимости от того, какая сумма больше.", "-1382702462": "За переводы между вашими криптовалютными счетами Deriv и счетом Deriv MT5 мы взимаем комиссию в размере 2% или {{minimum_fee}} {{currency}}, в зависимости от того, какая сумма больше.", "-1995859618": "Вы можете переводить средства между своим фиатным и криптовалютными счетами Deriv, счетом {{platform_name_mt5}}, {{platform_name_derivez}} и {{platform_name_dxtrade}}.", @@ -2778,6 +2782,11 @@ "-1834929362": "Загрузить документ", "-1043638404": "<1>Не удалось <0>подтвердить право собственности", "-1766760306": "<0><1>Загрузите документ <2>с правильными данными. <3>", + "-1330929685": "Чтобы верифицировать счет и продолжить торговлю, пожалуйста, предоставьте подтверждение личности и адреса.", + "-99461057": "Пожалуйста, предоставьте подтверждение адреса, чтобы верифицировать счет и продолжить торговлю.", + "-577279362": "Пожалуйста, предоставьте подтверждение личности, чтобы верифицировать счет и продолжить торговлю.", + "-197134911": "Истек срок действия документа, удостоверяющего личность", + "-152823394": "Истек срок действия документа, удостоверяющего личность. Пожалуйста, предоставьте новое удостоверение личности, чтобы верифицировать счет и продолжить торговлю.", "-2142540205": "Похоже, что адрес в вашем документе не совпадает с адресом в вашем профиле Deriv. Пожалуйста, обновите свои личные данные, указав правильный адрес.", "-482715448": "Перейдите в Личные данные", "-2072411961": "Ваше подтверждение адреса принято", @@ -2923,10 +2932,10 @@ "-429248139": "5. Оговорка", "-818926350": "Финансовая комиссия принимает жалобы в течение 45 дней с даты инцидента и только после того, как трейдер попытается решить проблему напрямую с компанией.", "-358055541": "Усильте свои сделки с помощью новых крутых инструментов", - "-29496115": "Мы сотрудничаем с компанией Acuity, чтобы предоставить вам набор интуитивно понятных торговых инструментов для MT5, чтобы вы могли отслеживать события и тенденции рынка бесплатно!<0/><0/>", - "-648669944": "Скачайте пакет Acuity и воспользуйтесь преимуществами <1>Макроэкономического календаря, рыночных оповещений, исследовательского терминала, и <1>Сигнального центра торговых идей, не покидая своего терминала MT5.<0/><0/>", + "-29496115": "Мы сотрудничаем с Acuity, чтобы предоставить вам набор интуитивно понятных торговых инструментов для MT5. Отслеживайте события и тенденции рынка бесплатно!<0/><0/>", + "-648669944": "Скачайте пакет Acuity и добавьте в ваш терминал МТ5 <1>макроэкономический календарь, оповещения с рынков, исследовательский терминал и <1>торговые идеи из Центра сигналов.<0/><0/>", "-794294380": "Этот пакет доступен только для Windows и наиболее рекомендуется для финансовых активов.", - "-922510206": "Нужна помощь в использовании Acuity?", + "-922510206": "Нужна помощь с Acuity?", "-815070480": "Отказ от ответственности: торговые услуги и информация, предоставляемые Acuity, не должны восприниматься как предложение инвестировать и/или торговать. Deriv не предоставляет инвестиционных консультаций. Прошлое не является ориентиром для будущих результатов, а стратегии, успешные в прошлом, могут не сработать в будущем.", "-2111521813": "Скачать Acuity", "-175369516": "Добро пожаловать на Deriv X", diff --git a/packages/translations/src/translations/th.json b/packages/translations/src/translations/th.json index 5acf7fce74dc..e1a577eb2d6d 100644 --- a/packages/translations/src/translations/th.json +++ b/packages/translations/src/translations/th.json @@ -260,7 +260,7 @@ "344418897": "การตั้งขีดจำกัดการซื้อขายและระบบการกันตนเองนั้นช่วยให้คุณควบคุมจำนวนเงินและเวลาที่ใช้ใน {{brand_website_name}} และเป็นการฝึก <0>การซื้อขายอย่างมีความรับผิดชอบ", "345320063": "การประทับเวลาไม่ถูกต้อง", "346994074": "การเลือกตัวนี้จะช่วยให้ท่านเข้าร่วมผ่านทางบริษัท Deriv (SVG) LLC (หมายเลขบริษัท 273 LLC 2020)", - "347029309": "ฟอเร็กซ์: มาตรฐาน/ไมโคร", + "347029309": "Forex: มาตรฐาน/ไมโคร", "347039138": "ทำซ้ำ (2)", "348951052": "แคชเชียร์ของคุณถูกล็อคอยู่ในขณะนี้", "349047911": "สูงกว่า", @@ -316,7 +316,7 @@ "413594348": "อนุญาตให้ใช้เฉพาะตัวอักษร ตัวเลข ช่องว่าง ยัติภังค์ มหัพภาค และเครื่องหมายทับไปข้างหน้าหรือฟอร์เวิร์ดสแลชเท่านั้น", "417714706": "หากระดับเงินประกันหรือมาร์จิ้นของคุณลดลงต่ำกว่าระดับจุดยุติการซื้อขายของ Deriv ตำแหน่งการค้าของคุณอาจจะถูกปิดโดยอัตโนมัติเพื่อปกป้องคุณจากการขาดทุนเพิ่มเติม", "417864079": "คุณจะไม่สามารถเปลี่ยนสกุลเงินได้หลังจากที่คุณทำการฝากเงินไปแล้ว", - "418265501": "บัญชีทดลอง Derived", + "418265501": "Demo Derived", "420072489": "ความถี่ในการซื้อขาย CFD", "422055502": "จาก", "424897068": "คุณเข้าใจหรือไม่ว่าคุณอาจสูญเสียเงินที่คุณใช้ในการเทรด 100%?", @@ -358,7 +358,7 @@ "463361726": "เลือกรายการ", "465993338": "กลยุทธ์ Oscar's Grind", "466369320": "กําไรขั้นต้นของคุณคือเปอร์เซ็นต์ของการเปลี่ยนแปลงราคาในตลาดคูณกับจำนวนเงินทุนทรัพย์ของคุณและตัวคูณที่คุณเลือกใช้ที่นี่", - "467839232": "ฉันเทรด CFDs ของฟอเร็กซ์และตราสารทางการเงินที่ซับซ้อนอื่นๆ อย่างสม่ำเสมอบนแพลตฟอร์มอื่นๆ", + "467839232": "ฉันเทรดสัญญาการซื้อขายส่วนต่างหรือ CFDs ของ Forex และตราสารทางการเงินที่ซับซ้อนอื่นๆ อย่างสม่ำเสมอบนแพลตฟอร์มอื่นๆ", "473154195": "การตั้งค่า", "473863031": "รอผลดำเนินการตรวจสอบหลักฐานที่อยู่", "474306498": "เราเสียใจที่เห็นคุณจากไป บัญชีของคุณนั้นถูกปิดแล้ว", @@ -378,6 +378,7 @@ "492198410": "ตรวจสอบให้แน่ใจว่าทุกอย่างชัดเจน", "496680295": "เลือกประเทศ", "497518317": "ฟังก์ชันที่คืนค่า", + "498144457": "A recent utility bill (e.g. electricity, water or gas)", "498562439": "หรือ", "499522484": "1. สำหรับ \"สตริง\": 1325.68 USD", "500855527": "ผู้บริหารระดับสูง เจ้าหน้าที่อาวุโส และสมาชิกของสภานิติบัญญัติ", @@ -411,7 +412,7 @@ "542038694": "เฉพาะตัวอักษร ตัวเลข เว้นวรรค เส้นใต้ และยัติภังค์เท่านั้นที่ได้รับอนุญาตสำหรับ {{label}}", "542305026": "คุณต้องส่งหลักฐานยืนยันตัวตนของคุณอีกด้วย", "543413346": "คุณไม่มีตำแหน่งการค้าที่เปิดไว้สำหรับสินทรัพย์นี้ หากต้องการดูตำแหน่งการค้าอื่นๆ ที่เปิดอยู่ให้คลิกไปที่รายงาน", - "543915570": "ฟอเร็กซ์, หุ้น, ดัชนีหุ้น, สกุลเงินดิจิทัล, ดัชนีสังเคราะห์", + "543915570": "Forex, หุ้น, ดัชนีหุ้น, สกุลเงินดิจิทัล, ดัชนีสังเคราะห์", "545476424": "เงินถอนทั้งหมด", "546534357": "หากคุณเลือก “การยกเลิกดีลข้อตกลง” คุณสามารถยกเลิกการซื้อขายภายในกรอบเวลาที่เลือกได้หากว่าตลาดไม่เคลื่อนตัวไปตามที่คุณคาดการณ์ไว้ โดยเราจะเรียกเก็บค่าธรรมเนียมเล็กน้อยสำหรับการยกเลิกนี้ แต่เราจะคืนจำนวนเงินทุนทรัพย์ของคุณซึ่งไม่รวมกำไรหรือขาดทุนให้ ทั้งนี้ หากมูลค่าการซื้อขายนั้นได้แตะถึงขีดจำนวนเงินค้ำประกันขั้นต่ำที่อนุญาตหรือ stop out ก่อนที่การยกเลิกข้อตกลงจะหมดอายุ ตำแหน่งการค้าของคุณจะถูกยกเลิกโดยอัตโนมัติและเราจะคืนจำนวนเงินทุนทรัพย์ของคุณซึ่งไม่รวมกำไรหรือขาดทุนให้ ในขณะที่ “การยกเลิกดีลข้อตกลง” ยังมีผลใช้งานอยู่:", "549479175": "ตัวคูณ Deriv", @@ -492,6 +493,7 @@ "644150241": "จำนวนสัญญาที่คุณทำกำไรได้มาตั้งแต่การล้างสถิติครั้งล่าสุดของคุณ", "645016681": "ความถี่ในการซื้อขายในตราสารทางการเงินอื่นๆ", "645902266": "EUR/NZD", + "647039329": "โปรดส่งเอกสารหลักฐานยืนยันที่อยู่ของคุณ", "647192851": "สัญญาจะถูกจำหน่ายที่ราคาทั่วไปของตลาดเมื่อระบบเซิร์ฟเวอร์ของเราได้รับคำขอที่แจ้งความจำนงดังกล่าว โดยราคานี้อาจจะแตกต่างไปจากราคาที่ระบุได้", "647745382": "ลิสต์รายการข้อมูลที่นำเข้า {{ input_list }}", "649317411": "จากพื้นฐานข้อมูลที่สัมพันธ์กับความรู้และประสบการณ์ของคุณ เราได้พิจารณาแล้วว่า การลงทุนที่มีอยู่ในเว็บไซต์นี้ไม่เหมาะสมกับคุณ<0/><1/>", @@ -569,7 +571,7 @@ "731382582": "BNB/USD", "734390964": "ยอดคงเหลือไม่เพียงพอ", "734881840": "เท็จ", - "742676532": "ทำการเทรด CFDs ในฟอเร็กซ์ ดัชนีที่นำมา สกุลเงินดิจิทัล และสินค้าโภคภัณฑ์ โดยใช้เลเวอเรจสูง", + "742676532": "ทำการเทรด CFDs ใน Forex, ดัชนี Derived, สกุลเงินดิจิทัล, และสินค้าโภคภัณฑ์ โดยใช้เลเวอเรจสูง", "744110277": "ตัวชี้วัด Bollinger Bands Array (BBA)", "745656178": "ใช้บล็อกนี้เพื่อขายสัญญาของคุณในราคาตลาด", "745674059": "ส่งคืนอักขระเฉพาะจากสตริงข้อความที่กำหนด ตามตัวเลือกที่ได้เลือกไว้ ", @@ -1102,6 +1104,7 @@ "1384222389": "กรุณาส่งเอกสารประจำตัวที่ถูกต้องเพื่อปลดล็อกแคชเชียร์", "1385418910": "โปรดกำหนดสกุลเงินสำหรับบัญชีจริงที่มีอยู่ของคุณ ก่อนที่จะสร้างบัญชีอันอื่น", "1387503299": "เข้าสู่ระบบ", + "1388770399": "ต้องใช้หลักฐานการยืนยันตัวตน", "1389197139": "เกิดข้อผิดพลาดในการนำเข้า", "1390792283": "พารามิเตอร์การซื้อขาย", "1391174838": "เงินผลตอบแทนที่อาจได้:", @@ -1164,6 +1167,7 @@ "1455741083": "โปรดอัพโหลดด้านหลังของใบขับขี่ของคุณ", "1457341530": "การตรวจสอบหลักฐานการยืนยันตัวตนของคุณนั้นล้มเหลว", "1457603571": "ไม่มีการแจ้งเตือน", + "1459761348": "ส่งหลักฐานยืนยันตัวตน", "1461323093": "แสดงข้อความในคอนโซลแผงควบคุมของนักพัฒนาซอฟต์แวร์", "1464190305": "บล็อกนี้จะถ่ายโอนการควบคุมกลับไปที่บล็อกเงื่อนไขการซื้อ เพื่อทำให้คุณสามารถซื้อสัญญาอื่นได้โดยไม่ต้องหยุดหรือรีสตาร์ทการทำงานบอทของคุณด้วยตัวเอง", "1464253511": "คุณมีบัญชีสำหรับสกุลเงินดิจิทัลแต่ละสกุลที่มีอยู่แล้วใน {{deriv}}", @@ -1258,7 +1262,7 @@ "1579839386": "แอปสโตร์", "1580498808": "ตรวจพบใบหน้าหลายหน้า", "1584109614": "ลิสต์รายการสตริง Tick", - "1584578483": "สินทรัพย์มากกว่า 50 รายการ: ฟอเร็กซ์, หุ้น, ดัชนีหุ้น, ดัชนีสังเคราะห์ และคริปโตเคอเรนซี่", + "1584578483": "สินทรัพย์มากกว่า 50 รายการ: Forex, หุ้น, ดัชนีหุ้น, ดัชนีสังเคราะห์ และคริปโตเคอเรนซี่", "1584936297": "ไฟล์ XML มีองค์ประกอบที่ไม่ได้รับการสนับสนุน โปรดตรวจสอบหรือแก้ไขไฟล์", "1585859194": "เราจะเรียกเก็บค่าธรรมเนียมการโอน 1% สำหรับการโอนเงินในสกุลเงินต่างๆระหว่างบัญชีเงินตรารัฐบาล Deriv กับบัญชี {{platform_name_mt5}} ของคุณ บัญชีเงินตรารัฐบาล Deriv กับบัญชี {{platform_name_derivez}} ของคุณ และบัญชีเงินตรารัฐบาล Deriv กับบัญชี {{platform_name_dxtrade}} ของคุณ", "1587046102": "เอกสารจากประเทศนั้นไม่ได้รับการสนับสนุนในปัจจุบัน — กรุณาลองเอกสารชนิดอื่น", @@ -1327,7 +1331,7 @@ "1670426231": "เวลาสิ้นสุด", "1671232191": "คุณได้กำหนดขีดจำกัดต่อไปนี้:", "1675030608": "ในการสร้างบัญชีนี้ ก่อนอื่นเราจำเป็นต้องให้คุณส่งหลักฐานที่อยู่ของคุณอีกครั้ง", - "1677027187": "ฟอเร็กซ์", + "1677027187": "Forex", "1677990284": "แอปของฉัน", "1680666439": "อัปโหลดใบแจ้งยอดบัญชีธนาคารที่แสดงชื่อ หมายเลขบัญชี และประวัติการทำธุรกรรมของคุณ", "1682409128": "กลยุทธ์ที่ไม่มีชื่อ", @@ -1362,7 +1366,6 @@ "1720451994": "เราจะเรียกเก็บค่าธรรมเนียมการโอน 2% หรือ {{minimum_fee}} {{currency}} แล้วแต่ว่าจำนวนใดจะสูงกว่า สำหรับการโอนเงินระหว่างบัญชีเงินตรารัฐบาล Deriv และบัญชีสกุลเงินดิจิทัล Deriv", "1720968545": "อัปโหลดหนังสือเดินทางหน้าที่มีรูปภาพจากคอมพิวเตอร์ของคุณ", "1722401148": "จำนวนเงินที่คุณเพิ่มเข้าไปได้ในเงินทุนทรัพย์ของคุณหลังจากการซื้อขายที่สำเร็จแต่ละครั้ง", - "1723398114": "ค่าสาธารณูปโภคล่าสุด (เช่น ไฟฟ้า น้ำ แก๊ส โทรศัพท์หรืออินเทอร์เน็ต)", "1723589564": "แสดงถึงจำนวนมากที่สุดของสัญญาที่ยังไม่ยุติและยังคงอยู่ในบัญชีของคุณ โดยแต่ละบรรทัดในพอร์ตของคุณจะแสดงถึงหนึ่งตำแหน่งการค้าที่เปิดอยู่ โดยเมื่อมันขึ้นถึงขีดจำนวนสูงสุดแล้วคุณจะไม่สามารถเปิดตำแหน่งใหม่ได้นอกจากจะดำเนินการปิดตำแหน่งที่มีอยู่เสียก่อน", "1724696797": "คุณถูกจํากัดให้มีเพียงบัญชีเงินตรารัฐบาลอันเดียวเท่านั้น", "1725958461": "หมายเลขบัญชี", @@ -1406,7 +1409,7 @@ "1763123662": "อัพโหลดสลิป NIMC ของคุณ", "1766212789": "การบำรุงรักษาเซิร์ฟเวอร์เริ่มต้นที่ 06:00 GMT ทุกวันอาทิตย์ และอาจใช้เวลาถึง 2 ชั่วโมงจึงจะเสร็จสิ้น คุณอาจประสบกับการบริการที่หยุดชะงักในช่วงเวลานี้", "1766993323": "อนุญาตให้ใช้เฉพาะตัวอักษร ตัวเลข และขีดล่างเท่านั้น", - "1767429330": "เพิ่มบัญชีสินทรัพย์เดริฟ (Derived)", + "1767429330": "เพิ่มบัญชีสินทรัพย์ Derived", "1768861315": "นาที", "1768918213": "อนุญาตให้ใช้เฉพาะตัวอักษร ช่องว่าง ยัติภังค์ มหัพภาค และเครื่องหมายอัญประกาศเดี่ยวเท่านั้น", "1769068935": "เลือกการแลกเปลี่ยนใด ๆ เหล่านี้เพื่อซื้อสกุลเงินดิจิทัล:", @@ -1415,6 +1418,7 @@ "1772532756": "สร้างและแก้ไข", "1777847421": "นี่คือรหัสผ่านที่ใช้กันบ่อยมากๆ", "1778893716": "คลิกที่นี่", + "1779144409": "ต้องมีการยืนยันบัญชี", "1779519903": "ควรเป็นตัวเลขที่ถูกต้อง", "1780770384": "บล็อกนี้จะให้เศษส่วนแบบสุ่มระหว่าง 0.0 ถึง 1.0 แก่คุณ", "1781393492": "เราจะไม่เรียกเก็บค่าธรรมเนียมการโอนสำหรับการโอนเงินในสกุลเงินเดียวกันระหว่างบัญชีเงินตรารัฐบาล Deriv กับบัญชี {{platform_name_mt5}} ของคุณ บัญชีเงินตรารัฐบาล Deriv กับบัญชี {{platform_name_derivez}} ของคุณ และบัญชีเงินตรารัฐบาล Deriv กับบัญชี {{platform_name_dxtrade}} ของคุณ", @@ -1731,7 +1735,7 @@ "2131963005": "โปรดถอนเงินของคุณจากบัญชี Deriv MT5 (เดี่ยวหรือหลายบัญชี) ดังต่อไปนี้:", "2133451414": "ระยะเวลา", "2133470627": "บล็อกนี้คืนค่าเป็นเงินผลตอบแทนประมาณการสำหรับประเภทการเทรดที่เลือกไว้ และสามารถใช้ได้เฉพาะในรูทบล็อก \"เงื่อนไขการซื้อ\"", - "2135563258": "ความถี่ของการซื้อขายฟอเร็กซ์", + "2135563258": "ความถี่ของการซื้อขาย Forex", "2136246996": "ภาพเซลฟี่ถูกอัปโหลดแล้ว", "2137901996": "สิ่งนี้จะล้างข้อมูลทั้งหมดในบทสรุป การทำธุรกรรม และแผงบันทึกรายวัน ตัวนับทั้งหมดจะถูกรีเซ็ตเป็นศูนย์", "2137993569": "บล็อกนี้เปรียบเทียบค่าสองค่าและใช้เพื่อสร้างโครงสร้างแบบมีเงื่อนไข", @@ -2105,7 +2109,7 @@ "-70342544": "เรามีหน้าที่ตามกฎหมายที่จะต้องขอข้อมูลทางการเงินของคุณ", "-1100235269": "อุตสาหกรรมการจ้างงาน", "-684388823": "ประมาณการรายได้สุทธิ", - "-601903492": "ประสบการณ์การซื้อขายฟอเร็กซ์", + "-601903492": "ประสบการณ์การซื้อขาย Forex", "-1012699451": "ประสบการณ์การซื้อขาย CFD", "-1894668798": "ประสบการณ์ซื้อขายตราสารทางการเงินอื่นๆ", "-1026468600": "ความถี่ในการซื้อขายตราสารทางการเงินอื่นๆ", @@ -2527,7 +2531,7 @@ "-1765276625": "คลิกเมนูแบบเลื่อนลงที่แสดงตัวคูณแล้วเลือกค่าตัวคูณที่คุณต้องการใช้ซื้อขาย", "-1872233077": "ผลกำไรที่ประมาณการของคุณจะถูกคูณด้วยค่าตัวคูณที่คุณเลือก", "-614454953": "หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับตัวคูณ โปรดไปที่หน้า <0>ตัวคูณ", - "-2078588404": "เลือกประเภทตลาดและสินทรัพย์ตามที่คุณต้องการ ตัวอย่างเช่น ฟอเร็กซ์ > สกุลเงินคู่หลัก > AUD/JPY", + "-2078588404": "เลือกประเภทตลาดและสินทรัพย์ตามที่คุณต้องการ ตัวอย่างเช่น Forex > สกุลเงินคู่หลัก > AUD/JPY", "-2037446013": "2. ประเภทการซื้อขาย", "-533927844": "เลือกประเภทการซื้อขายที่คุณต้องการ ตัวอย่างเช่น Up/Down > Rise/Fall", "-1192411640": "4. ช่วงเวลาตามที่ตั้งค่าเริ่มต้นของแท่งเทียน", @@ -2778,6 +2782,11 @@ "-1834929362": "อัปโหลดเอกสารของฉัน", "-1043638404": "<0>หลักฐานการเป็นเจ้าของ <1>ไม่ผ่านการตรวจสอบยืนยัน", "-1766760306": "<0><1>กรุณาอัปโหลดเอกสารของคุณ <2>พร้อมรายละเอียดที่ถูกต้อง<3>", + "-1330929685": "กรุณาส่งหลักฐานยืนยันตัวตนและหลักฐานที่อยู่ของคุณเพื่อยืนยันบัญชีของคุณและดำเนินการซื้อขายต่อ", + "-99461057": "กรุณาส่งหลักฐานที่อยู่ของคุณเพื่อยืนยันบัญชีของคุณและดำเนินการซื้อขายต่อไป", + "-577279362": "กรุณาส่งหลักฐานยืนยันตัวตนของคุณเพื่อยืนยันบัญชีของคุณและดำเนินการซื้อขายต่อไป", + "-197134911": "หลักฐานยืนยันตัวตนของคุณหมดอายุแล้ว", + "-152823394": "หลักฐานยืนยันตัวตนของคุณหมดอายุแล้ว กรุณาส่งหลักฐานยืนยันตัวตนใหม่เพื่อยืนยันบัญชีของคุณและดำเนินการซื้อขายต่อไป", "-2142540205": "ดูเหมือนว่าที่อยู่ในเอกสารของคุณไม่ตรงกับที่อยู่ในโปรไฟล์ Deriv ของคุณ โปรดอัปเดตรายละเอียดส่วนตัวของคุณตอนนี้กับที่อยู่ที่ถูกต้อง", "-482715448": "ไปที่รายละเอียดส่วนบุคคล", "-2072411961": "หลักฐานแสดงที่อยู่ของคุณได้รับการยืนยันแล้ว", @@ -2933,9 +2942,9 @@ "-939154994": "ยินดีต้อนรับสู่หน้ากระดาน Deriv MT5", "-1667427537": "เรียกใช้ Deriv X บนเบราว์เซอร์ของคุณหรือดาวน์โหลดแอปมือถือ", "-305915794": "เรียกใช้ MT5 จากเบราว์เซอร์ของคุณ หรือดาวน์โหลดแอป MT5 สําหรับอุปกรณ์ของคุณ", - "-404375367": "ทำการเทรดฟอเร็กซ์ ดัชนีตะกร้า สินค้าโภคภัณฑ์ และสกุลเงินดิจิทัลด้วยเลเวอเรจสูง", - "-243985555": "ทำการเทรดสัญญาการซื้อขายส่วนต่าง (CFDs) ในฟอเร็กซ์ หุ้น ดัชนีหุ้น ดัชนีสังเคราะห์ คริปโตเคอร์เรนซี่ และสินค้าโภคภัณฑ์โดยใช้เลเวอเรจ", - "-2030107144": "เทรดสัญญาการซื้อขายส่วนต่าง (CFDs) ของฟอเร็กซ์, หุ้นและดัชนีหุ้น, สินค้าโภคภัณฑ์, และเงินสกุลดิจิทัล", + "-404375367": "ทำการเทรด Forex ดัชนีตะกร้า สินค้าโภคภัณฑ์ และสกุลเงินดิจิทัลด้วยเลเวอเรจสูง", + "-243985555": "ทำการเทรดสัญญาการซื้อขายส่วนต่าง (CFDs) ใน Forex หุ้น ดัชนีหุ้น ดัชนีสังเคราะห์ คริปโตเคอร์เรนซี่ และสินค้าโภคภัณฑ์โดยใช้เลเวอเรจ", + "-2030107144": "เทรดสัญญาการซื้อขายส่วนต่าง (CFDs) ของ Forex, หุ้นและดัชนีหุ้น, สินค้าโภคภัณฑ์, และเงินสกุลดิจิทัล", "-781132577": "เลเวอเรจ", "-1264604378": "สูงถึง 1:1000", "-637908996": "100%", @@ -2947,13 +2956,13 @@ "-1056874273": "มากกว่า 25 สินทรัพย์: สินทรัพย์สังเคราะห์", "-223956356": "เลเวอเรจสูงถึง 1: 1000", "-1340877988": "จดทะเบียนกับคณะกรรมาธิการการเงิน", - "-879901180": "สินทรัพย์มากกว่า 170 รายการ: ฟอเร็กซ์ (ล็อตมาตรฐาน/ล็อตไมโคร), หุ้น, ดัชนีหุ้น, สินค้าโภคภัณฑ์, ดัชนีตะกร้า, และคริปโตเคอเรนซี่", + "-879901180": "สินทรัพย์มากกว่า 170 รายการ: Forex (ล็อตมาตรฐาน/ล็อตไมโคร), หุ้น, ดัชนีหุ้น, สินค้าโภคภัณฑ์, ดัชนีตะกร้า, และคริปโตเคอเรนซี่", "-1020615994": "ค่าสเปรดที่ดีกว่า", "-1789823174": "กำกับควบคุมโดยคณะกรรมการบริการทางการเงินวานูอาตู", - "-1040269115": "สินทรัพย์มากกว่า 30 รายการ: ฟอเร็กซ์และสินค้าโภคภัณฑ์", + "-1040269115": "สินทรัพย์มากกว่า 30 รายการ: Forex และสินค้าโภคภัณฑ์", "-1372141447": "การประมวลผลโดยตรงทุกขั้นตอน", "-318390366": "กำกับควบคุมโดยหน่วยงานบริการทางการเงินลาบวน (ใบอนุญาตเลขที่ MB/18/0024)", - "-1556783479": "สินทรัพย์มากกว่า 80 รายการ: ฟอเร็กซ์และสกุลเงินดิจิทัล", + "-1556783479": "สินทรัพย์มากกว่า 80 รายการ: Forex และสกุลเงินดิจิทัล", "-875019707": "เลเวอเรจสูงถึง 1: 100", "-1752249490": "การเงินมอลตา", "-2068980956": "เลเวอเรจสูงถึง 1: 30", @@ -2969,14 +2978,14 @@ "-1300381594": "รับเครื่องมือการเทรด Acuity", "-860609405": "รหัสผ่าน", "-742647506": "การโอนเงิน", - "-1972393174": "ทำการเทรด CFDs ในดัชนีสังเคราะห์ ดัชนีตะกร้า และสินทรัพย์เดริฟ​ FX ของเรา", + "-1972393174": "ทำการเทรด CFDs ในดัชนีสังเคราะห์ ดัชนีตะกร้า และสินทรัพย์ Derived​ FX ของเรา", "-1357917360": "เว็บเทอร์มินัล", "-1454896285": "แอป MT5 บนคอมพิวเตอร์เดสก์ท็อปนั้นไม่รองรับ Windows XP, Windows 2003, และ Windows Vista", "-810388996": "ดาวน์โหลดแอป Deriv X ในมือถือ", "-1727991510": "สแกนคิวอาร์โค้ดเพื่อดาวน์โหลดแอป Deriv X ในมือถือ", "-1302404116": "เลเวอเรจสูงสุด", "-511301450": "บ่งบอกถึงความพร้อมในการซื้อขายสกุลเงินดิจิทัลในบัญชีใดบัญชีหนึ่ง", - "-2102641225": "ในช่วงการโรลโอเวอร์ของธนาคาร สภาพคล่องในตลาดฟอเร็กซ์จะลดลงและค่าสเปรดอาจเพิ่มรวมถึงระยะเวลาในการประมวลผลคำสั่งซื้อของลูกค้า สิ่งนี้จะเกิดขึ้นประมาณ 21:00 น. GMT ในช่วงเวลาออมแสงและ 22:00 GMT ในช่วงเวลาปกติ", + "-2102641225": "ในช่วงการโรลโอเวอร์ของธนาคาร สภาพคล่องในตลาด Forex จะลดลงและค่าสเปรดอาจเพิ่มรวมถึงระยะเวลาในการประมวลผลคำสั่งซื้อของลูกค้า สิ่งนี้จะเกิดขึ้นประมาณ 21:00 น. GMT ในช่วงเวลาออมแสงและ 22:00 GMT ในช่วงเวลาปกติ", "-495364248": "ระดับการเรียกหลักประกันหรือมาร์จิ้นคอลและระดับยุติการซื้อขายหรือ stop out นั้นจะเปลี่ยนแปลงบ้างในบางครั้งขึ้นอยู่กับสภาพตลาด", "-536189739": "เพื่อปกป้องพอร์ตการลงทุนของคุณจากการเคลื่อนไหวของตลาดที่ไม่พึงประสงค์เนื่องจากช่องว่างในการเปิดปิดตลาด เราขอสงวนสิทธิ์ในการลดเลเวอเรจจากที่นำเสนอทั้งหมดสำหรับบัญชี financial ก่อนตลาดปิด และในการเพิ่มเลเวอเรจอีกครั้งหลังจากที่ตลาดเปิด ดังนั้นโปรดตรวจสอบให้แน่ใจว่า คุณมีเงินเพียงพอในบัญชี {{platform}} ของคุณเพื่อสนับสนุนตำแหน่งการค้าของคุณอยู่ตลอดเวลา", "-712681566": "การแลกเปลี่ยนจากบุคคลหนึ่งยังอีกคนหรือ P2P", @@ -3013,7 +3022,7 @@ "-1211122723": "บัญชี {{ platform }} {{ account_title }}", "-78895143": "ยอดคงเหลือปัจจุบัน", "-149993085": "ยอดคงเหลือใหม่ในปัจจุบัน", - "-490244964": "ฟอเร็กซ์, หุ้น, ดัชนีหุ้น, คริปโตเคอเรนซี่", + "-490244964": "Forex, หุ้น, ดัชนีหุ้น, คริปโตเคอเรนซี่", "-1368041210": ", ดัชนีสังเคราะห์", "-877064208": "EUR", "-1284221303": "คุณจะได้รับคำเตือนที่เรียกว่ามาร์จิ้นคอล (Margin Call) หากยอดเงินในบัญชีของคุณลดลงใกล้กับระดับการยุติการซื้อขายหรือ Stop Out", diff --git a/packages/translations/src/translations/tr.json b/packages/translations/src/translations/tr.json index 9389b48f94c5..c40c6fdcac28 100644 --- a/packages/translations/src/translations/tr.json +++ b/packages/translations/src/translations/tr.json @@ -378,6 +378,7 @@ "492198410": "Her şeyin apaçık olduğundan emin olun", "496680295": "Ülke seçin", "497518317": "Bir değeri getiren fonksiyon", + "498144457": "A recent utility bill (e.g. electricity, water or gas)", "498562439": "yada", "499522484": "1. \"dize\" için: 1325.68 USD", "500855527": "İcra Kurulu Başkanı, Üst Düzey Yetkililer ve Yasa Koyucular", @@ -492,6 +493,7 @@ "644150241": "İstatistiklerinizi en son temizledikten sonra kazandığınız sözleşme sayısı.", "645016681": "Diğer finansal araçlarda alım satım sıklığı", "645902266": "EUR/NZD", + "647039329": "Adres kanıtı gerekli", "647192851": "Sözleşme, talep sunucularımız tarafından alındığında geçerli piyasa fiyatı üzerinden satılacak. Bu fiyat belirtilen fiyattan farklı olabilir.", "647745382": "Giriş Listesi {{ input_list }}", "649317411": "Bilgi ve tecrübenizle ilgili olarak verilen bilgilere dayanarak, bu web sitesi üzerinden mevcut yatırımların sizin için uygun olmadığını değerlendiriyoruz. <0/><1/>", @@ -1102,6 +1104,7 @@ "1384222389": "Kasiyerin kilidini açmak için lütfen geçerli kimlik belgeleri gönderin.", "1385418910": "Başka bir hesap oluşturmadan önce lütfen mevcut gerçek hesabınız için bir para birimi ayarlayın.", "1387503299": "Oturum açın", + "1388770399": "Kimlik kanıtı gerekli", "1389197139": "İçe aktarma hatası", "1390792283": "Ticaret parametreleri", "1391174838": "Olası ödeme:", @@ -1164,6 +1167,7 @@ "1455741083": "Ehliyetinizin arka sayfasını yükleyin.", "1457341530": "Your proof of identity verification has failed", "1457603571": "Bildirim yok", + "1459761348": "Kimlik kanıtı gönderin", "1461323093": "Geliştirici konsolundaki mesajları görüntüler.", "1464190305": "Bu blok, botunuzu manuel olarak durdurmadan ve yeniden başlatmadan başka bir sözleşme satın almanızı sağlayan Satın Alma koşulları bloğuna geri aktaracaktır.", "1464253511": "{{deriv}} üzerindeki her bir kripto para birimi için zaten bir hesabınız var.", @@ -1362,7 +1366,6 @@ "1720451994": "Deriv fiat ve Deriv kripto para hesaplarınız arasındaki transferler için %2 transfer ücreti veya {{minimum_fee}} {{currency}}, hangisi yüksekse, ücret talep edeceğiz.", "1720968545": "Bilgisayarınızdan pasaport fotoğraf sayfası yükleyin", "1722401148": "Her başarılı ticaretten sonra bahise ekleyebileceğiniz tutar.", - "1723398114": "Yakın zamana ait bir hizmet faturası (örn. elektrik, su, gaz, telefon veya internet)", "1723589564": "Portföyünüzün en fazla bekleyen sözleşme sayısını temsil eder. Portföyünüzün her bir satırı bir açık pozisyon için geçerlidir. Maksimuma ulaşıldığında, mevcut bir konumu kapatmadan yeni pozisyonlar açamayacaksınız.", "1724696797": "Yalnızca bir fiat hesabıyla sınırlısınız.", "1725958461": "Hesap numarası", @@ -1415,6 +1418,7 @@ "1772532756": "Oluştur ve düzenle", "1777847421": "Bu, çok yaygın bir paroladır", "1778893716": "Buraya tıklayın", + "1779144409": "Hesap doğrulaması gerekli", "1779519903": "Geçerli bir sayı olmalıdır.", "1780770384": "Bu blok size 0.0 ile 1.0 arasında rastgele bir fraksiyon verir.", "1781393492": "Deriv fiatınız ile {{platform_name_mt5}} hesaplarınız, Deriv fiatınız ve {{platform_name_derivez}} hesaplarınız ve Deriv fiatınız ve {{platform_name_dxtrade}} hesaplarınız arasındaki aynı para birimindeki transferler için transfer ücreti almayız.", @@ -2778,6 +2782,11 @@ "-1834929362": "Belgemi yükle", "-1043638404": "<0>Sahiplik doğrulaması kanıtı <1>başarısız oldu", "-1766760306": "<0><1>Lütfen belgenizi doğru ayrıntılarla yükleyin<2>.<3>", + "-1330929685": "Hesabınızı doğrulamak ve ticarete devam etmek için lütfen kimlik kanıtınızı ve adres kanıtınızı gönderin.", + "-99461057": "Hesabınızı doğrulamak ve ticarete devam etmek için lütfen adres kanıtınızı gönderin.", + "-577279362": "Hesabınızı doğrulamak ve ticarete devam etmek için lütfen kimlik kanıtınızı gönderin.", + "-197134911": "Kimlik kanıtınızın süresi doldu", + "-152823394": "Kimlik kanıtınızın süresi doldu. Hesabınızı doğrulamak ve ticarete devam etmek için lütfen yeni bir kimlik kanıtı gönderin.", "-2142540205": "Görünüşe göre belgenizdeki adres, adresle eşleşmiyor Deriv profilinizde. Lütfen kişisel bilgilerinizi şimdi Doğru adres.", "-482715448": "Kişisel ayrıntılara git", "-2072411961": "Adres kanıtınız doğrulandı", diff --git a/packages/translations/src/translations/vi.json b/packages/translations/src/translations/vi.json index 781a0ab19887..045cb6c184d7 100644 --- a/packages/translations/src/translations/vi.json +++ b/packages/translations/src/translations/vi.json @@ -378,6 +378,7 @@ "492198410": "Đảm bảo mọi thứ rõ ràng", "496680295": "Chọn quốc gia", "497518317": "Chức năng trả về một giá trị", + "498144457": "A recent utility bill (e.g. electricity, water or gas)", "498562439": "hoặc", "499522484": "1. cho \"dải\": 1325.68 USD", "500855527": "Giám đốc điều hành, quan chức cấp cao và các nhà lập pháp", @@ -492,6 +493,7 @@ "644150241": "Số hợp đồng bạn đã thắng được tính từ lần cuối bạn làm mới số liệu thông kê của mình.", "645016681": "Tần suất giao dịch bằng các công cụ tài chính khác", "645902266": "EUR/NZD", + "647039329": "Yêu cầu xác nhận địa chỉ", "647192851": "Hợp đồng sẽ được bán ở giá thị trường hiện hành khi máy chủ nhận được yêu cầu. Giá này có thể khác với giá đã được chỉ định.", "647745382": "Danh sách Đầu vào {{ input_list }}", "649317411": "Dựa trên cơ sở các thông tin được cung cấp liên quan đến kiến thức và kinh nghiệm của bạn, chúng tôi cho rằng những khoản đầu tư hiện có trên trang web này là không thích hợp cho bạn.<0/><1/>", @@ -1102,6 +1104,7 @@ "1384222389": "Vui lòng xuất trình giấy tờ tùy thân hợp lệ để mở khóa cho thu ngân.", "1385418910": "Vui lòng đặt một loại tiền tệ cho tài khoản thực hiện tại của bạn trước khi tạo một tài khoản khác.", "1387503299": "Đăng nhập", + "1388770399": "Yêu cầu giấy tờ xác nhận danh tính", "1389197139": "Lỗi nhập", "1390792283": "Thông số giao dịch", "1391174838": "Khoản chi trả tiềm năng:", @@ -1164,6 +1167,7 @@ "1455741083": "Tải lên mặt sau bằng lái xe của bạn.", "1457341530": "Xác nhận danh tính thất bại", "1457603571": "Không có thông báo", + "1459761348": "Nộp xác minh danh tính", "1461323093": "Hiển thị thông báo trong bảng điều khiển dành cho nhà phát triển.", "1464190305": "Khung này sẽ chuyển quyền điều khiển trở lại khung Các điều kiện Mua, cho phép bạn mua hợp đồng khác mà không cần dừng và khởi động lại bot của mình theo cách thủ công.", "1464253511": "Bạn đã có một tài khoản cho từng loại tiền điện tử khả dụng trên {{deriv}}.", @@ -1362,7 +1366,6 @@ "1720451994": "Chúng tôi sẽ tính phí chuyển khoản 2% hoặc {{minimum_fee}} {{currency}}, tùy theo mức nào cao hơn, đối với chuyển khoản giữa tài khoản tiền pháp định và tiền kỹ thuật số Deriv của bạn.", "1720968545": "Tải ảnh hộ chiếu của bạn từ máy tính", "1722401148": "Số tiền mà bạn có thể thêm vào khoản cược của mình sau mỗi giao dịch thành công.", - "1723398114": "Hóa đơn tiện ích gần đây (ví dụ: điện, nước, gas, điện thoại hoặc internet)", "1723589564": "Trình bày số tối đa của những hợp đồng nổi bật có trong hồ sơ của bạn. Mỗi một dòng trong hồ sơ là một vị thế mở. Khi đã đạt đến mức tối đa, bạn sẽ không thể mở thêm vị thế mới mà không đóng các vị thế đang có trước.", "1724696797": "Bạn bị giới hạn chỉ được có một tài khoản tiền pháp định.", "1725958461": "Số tài khoản", @@ -1415,6 +1418,7 @@ "1772532756": "Tạo và chỉnh sửa", "1777847421": "Đây là một mật khẩu rất phổ biến", "1778893716": "Bấm vào đây", + "1779144409": "Yêu cầu xác minh tài khoản", "1779519903": "Nên là một số hợp lệ.", "1780770384": "Khung này cung cấp cho bạn một phân số ngẫu nhiên trong khoảng từ 0.0 đến 1.0.", "1781393492": "Chúng tôi không tính phí chuyển khoản cho việc chuyển tiền bằng cùng một loại tiền tệ giữa tài khoản Div fiat và {{platform_name_mt5}} tài khoản của bạn, tài khoản Div fiat và {{platform_name_derivez}} tài khoản của bạn và Derov fiat và {{platform_name_dxtrade}} tài khoản của bạn.", @@ -2778,6 +2782,11 @@ "-1834929362": "Tải lên tài liệu của tôi", "-1043638404": "<0>Chứng minh quyền sở hữu <1>không thành công", "-1766760306": "<0><1>Vui lòng tải lên tài liệu của bạn <2>với các chi tiết chính xác.<3>", + "-1330929685": "Vui lòng gửi chứng minh danh tính và chứng minh địa chỉ của bạn để xác minh tài khoản của bạn và tiếp tục giao dịch.", + "-99461057": "Vui lòng gửi bằng chứng địa chỉ của bạn để xác minh tài khoản của bạn và tiếp tục giao dịch.", + "-577279362": "Vui lòng gửi bằng chứng danh tính của bạn để xác minh tài khoản của bạn và tiếp tục giao dịch.", + "-197134911": "Chứng minh danh tính của bạn đã hết hạn", + "-152823394": "Bằng chứng danh tính của anh đã hết hạn. Vui lòng gửi một chứng minh danh tính mới để xác minh tài khoản của bạn và tiếp tục giao dịch.", "-2142540205": "Dường như địa chỉ trong tài liệu của bạn không khớp với địa chỉ trong hồ sơ Div của bạn. Vui lòng cập nhật thông tin cá nhân của bạn ngay bây giờ với địa chỉ chính xác.", "-482715448": "Đi đến chi tiết cá nhân", "-2072411961": "Chứng minh địa chỉ của bạn đã được xác minh", diff --git a/packages/translations/src/translations/zh_cn.json b/packages/translations/src/translations/zh_cn.json index d39d401ca6a8..0dac745ed781 100644 --- a/packages/translations/src/translations/zh_cn.json +++ b/packages/translations/src/translations/zh_cn.json @@ -378,6 +378,7 @@ "492198410": "确保一切都很清楚", "496680295": "选择国家", "497518317": "返回数值的功能", + "498144457": "A recent utility bill (e.g. electricity, water or gas)", "498562439": "或", "499522484": "1. \"字符串\": 1325.68 美元", "500855527": "首席执行官、高级官员和立法会议员", @@ -492,6 +493,7 @@ "644150241": "上次清除统计记录至今的获利合约数。", "645016681": "其它金融工具的交易频率", "645902266": "欧元/纽元", + "647039329": "需要地址证明", "647192851": "合约将在我们服务器收到请求时,以当时的市场价格卖出。此价格可能与报价有差异。", "647745382": "输入列表 {{ input_list }}", "649317411": "根据您所提供的知识和经验相关信息,我们认为此网站的投资活动对您来说并不合适。<0/><1/>", @@ -1102,6 +1104,7 @@ "1384222389": "请提交有效的身份证件以解锁收银台。", "1385418910": "开立另一个账户前请为您的现有真实账户设置币种。", "1387503299": "登录", + "1388770399": "需要身份证明", "1389197139": "导入错误", "1390792283": "交易参数", "1391174838": "潜在赔付额:", @@ -1164,6 +1167,7 @@ "1455741083": "上传驾驶执照背面。", "1457341530": "身份证明验证失败", "1457603571": "没有通知", + "1459761348": "提交身份证明", "1461323093": "在开发人员控制台中显示消息。", "1464190305": "此程序块将控制权转移回“购入条件”程序块,使您无需手动停止并重启机器人即可购买另一份合约。", "1464253511": "您已经拥有{{deriv}} 可用的每种加密货币的账户。", @@ -1362,7 +1366,6 @@ "1720451994": "Deriv 法定货币和 Deriv 加密货币账户之间的转账,我们将收取 2% 转账费或 {{minimum_fee}} {{currency}},以较高者为准。", "1720968545": "从电脑上传含照片的护照页面", "1722401148": "每次交易成功后您可加入投注资金的金额。", - "1723398114": "近期的水电煤费单(例如电费、水费、煤气费、电话费或网路费)", "1723589564": "表示您的投资组合中未平仓合约的最大数量。您投资组合中的每一行都算作是一个未平仓头寸。一旦达到该最大值,您在开设新头寸之前需要先结束一个现有头寸。", "1724696797": "只能使用一个法定账户.", "1725958461": "账号", @@ -1415,6 +1418,7 @@ "1772532756": "创建和编辑", "1777847421": "这是很常用的密码", "1778893716": "请单击此处", + "1779144409": "需要账户验证", "1779519903": "必须是有效号码。", "1780770384": "此程序块提供0.0 至 1.0范围内的随机分数.", "1781393492": "Deriv 法定货币和 {{platform_name_mt5}} 账户之间、Deriv 法定货币和{{platform_name_derivez}} 账户之间以及 Deriv 法定货币和 {{platform_name_dxtrade}} 账户之间相同货币转账,不收转账费。", @@ -2778,6 +2782,11 @@ "-1834929362": "上传文件", "-1043638404": "<0>所有权证明<1>验证失败", "-1766760306": "<0><1>请上传<2>包含正确详细信息的文档。<3>", + "-1330929685": "请提交您的身份证明和地址证明以验证您的账户并继续交易。", + "-99461057": "请提交您的地址证明以验证您的账户并继续交易。", + "-577279362": "请提交您的身份证明以验证您的账户并继续交易。", + "-197134911": "您的身份证明已过期", + "-152823394": "您的身份证明已过期。请提交新的身份证明以验证您的账户并继续交易。", "-2142540205": "文档中的地址似乎与 Deriv 个人资料中的地址不匹配。请立即在个人详细信息中更新正确地址。", "-482715448": "前往个人资料", "-2072411961": "地址证明已通过验证", diff --git a/packages/translations/src/translations/zh_tw.json b/packages/translations/src/translations/zh_tw.json index 2dff5f60dc83..35c37f4bf558 100644 --- a/packages/translations/src/translations/zh_tw.json +++ b/packages/translations/src/translations/zh_tw.json @@ -378,6 +378,7 @@ "492198410": "確保一切都很清楚", "496680295": "選擇國家", "497518317": "返回數值的功能", + "498144457": "A recent utility bill (e.g. electricity, water or gas)", "498562439": "或", "499522484": "1. \"字串\": 1325.68 美元", "500855527": "執行長、高級官員和立法委員", @@ -492,6 +493,7 @@ "644150241": "上次清除統計記錄至今的獲利合約數。", "645016681": "其它金融工具的交易頻率", "645902266": "歐元/紐元", + "647039329": "需要地址證明", "647192851": "合約將在我們伺服器收到要求時以當時的市場價格賣出。此價格可能會與報價有差異。", "647745382": "輸入清單 {{ input_list }}", "649317411": "根據您所提供的知識和經驗相關資訊,我們認為此網站的投資活動對您來說並不合適。<0/><1/>", @@ -1102,6 +1104,7 @@ "1384222389": "請提交有效的身份證件以解鎖收銀台。", "1385418910": "開立另一個帳戶前請為現有真實帳戶設定幣種。", "1387503299": "登入", + "1388770399": "需要身份證明", "1389197139": "匯入錯誤", "1390792283": "交易參數", "1391174838": "可能的賠付額:", @@ -1164,6 +1167,7 @@ "1455741083": "上載駕駛執照背面。", "1457341530": "身份證明驗證失敗", "1457603571": "沒有通知", + "1459761348": "提交身份證明", "1461323093": "在開發人員主控台中顯示消息。", "1464190305": "此區塊將控制權轉移回「購入條件」區塊,使您無需手動停止並重啟機器人即可購買另一份合約。", "1464253511": "已經擁有 {{deriv}} 可用的每種加密貨幣的帳戶。", @@ -1362,7 +1366,6 @@ "1720451994": "Deriv 法定貨幣和 Deriv 加密貨幣帳戶之間的轉帳,將收取 2% 轉帳費或 {{minimum_fee}} {{currency}},以較高者為準。", "1720968545": "從電腦上傳含照片的護照頁面", "1722401148": "每次交易成功後可加入投注資金的金額。", - "1723398114": "近期的水電煤費單(例如電費、水費、煤氣費、電話費或網路費)", "1723589564": "表示投資組合中未平倉合約的最大數量。投資組合中的每一行都算作是一個未平倉頭寸。一旦達到該最大值,在開設新頭寸之前需要先了結一個現有頭寸。", "1724696797": "只能使用一個法定帳戶。", "1725958461": "帳號", @@ -1415,6 +1418,7 @@ "1772532756": "建立和編輯", "1777847421": "這是很常用的密碼", "1778893716": "請按一下此處", + "1779144409": "需要帳戶驗證", "1779519903": "必須是有效號碼。", "1780770384": "此區塊提供 0.0 至 1.0 範圍內的隨機分數。", "1781393492": "Deriv 法定貨幣和 {{platform_name_mt5}} 帳戶之間、Deriv 法定貨幣和 {{platform_name_derivez}} 帳戶之間以及 Deriv 法定貨幣和 {{platform_name_dxtrade}} 帳戶之間的相同貨幣轉帳,不收取轉帳費。", @@ -2778,6 +2782,11 @@ "-1834929362": "上傳文件", "-1043638404": "<0>擁有權證明<1>驗證失敗", "-1766760306": "<0><1>請上傳<2>正確資料的文件。<3>", + "-1330929685": "請提交您的身份證明和地址證明以驗證您的帳戶並繼續交易。", + "-99461057": "請提交您的地址證明以驗證您的帳戶並繼續交易。", + "-577279362": "請提交您的身份證明以驗證您的帳戶並繼續交易。", + "-197134911": "您的身份證明已過期", + "-152823394": "您的身份證明已過期。請提交新的身份證明以驗證您的帳戶並繼續交易。", "-2142540205": "文件中的地址似乎與 Deriv 個人資料中的地址不匹配。請立即在個人詳細資料中更新正確地址。", "-482715448": "前往個人資料", "-2072411961": "地址證明已通過驗證", From 492a35bdd5268e1f8dcaa4891b919b7cbff6b7e5 Mon Sep 17 00:00:00 2001 From: thibault-deriv <104425314+thibault-deriv@users.noreply.github.com> Date: Mon, 23 Jan 2023 10:02:37 +0100 Subject: [PATCH 69/84] Add permissions to GITHUB_TOKEN (#7422) --- .github/workflows/generate_app_id.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/generate_app_id.yml b/.github/workflows/generate_app_id.yml index fa4681c293c3..44c44f00928e 100644 --- a/.github/workflows/generate_app_id.yml +++ b/.github/workflows/generate_app_id.yml @@ -1,5 +1,13 @@ name: Deriv App ID Generator +permissions: + actions: write + checks: write + contents: write + deployments: write + pull-requests: write + statuses: write + on: issue_comment: types: [edited] From d93e54efc579038175d401d559e226e18f8f1657 Mon Sep 17 00:00:00 2001 From: Farrah Mae Ochoa <82315152+farrah-deriv@users.noreply.github.com> Date: Mon, 23 Jan 2023 14:14:50 +0400 Subject: [PATCH 70/84] chore: github_token permissions (#7423) --- .github/workflows/push_and_pull_crowdin_translations.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/push_and_pull_crowdin_translations.yml b/.github/workflows/push_and_pull_crowdin_translations.yml index ad2a1c89f7e9..947a4ae89165 100644 --- a/.github/workflows/push_and_pull_crowdin_translations.yml +++ b/.github/workflows/push_and_pull_crowdin_translations.yml @@ -1,5 +1,13 @@ name: Push and pull Crowdin translations +permissions: + actions: write + checks: write + contents: write + deployments: write + pull-requests: write + statuses: write + on: workflow_dispatch: push: From 1e3b236fe6edb3363468fbbe0ffd3f8beb532449 Mon Sep 17 00:00:00 2001 From: thibault-deriv <104425314+thibault-deriv@users.noreply.github.com> Date: Mon, 23 Jan 2023 11:15:37 +0100 Subject: [PATCH 71/84] Specify GITHUB_TOKEN permissions for lighthouse.yml (#7424) --- .github/workflows/lighthouse.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/lighthouse.yml b/.github/workflows/lighthouse.yml index 5b9f2ffbebf6..1a0db1a41bb3 100644 --- a/.github/workflows/lighthouse.yml +++ b/.github/workflows/lighthouse.yml @@ -1,5 +1,13 @@ name: Generate Lighthouse report +permissions: + actions: write + checks: write + contents: write + deployments: write + pull-requests: write + statuses: write + on: issue_comment: types: [edited] From 52b7ac07346ec1ea3249f2a89740b2c502b2a74d Mon Sep 17 00:00:00 2001 From: Farrah Mae Ochoa <82315152+farrah-deriv@users.noreply.github.com> Date: Mon, 23 Jan 2023 16:49:50 +0400 Subject: [PATCH 72/84] fix: clear all button in notifications dialog (#7425) --- .../App/Containers/NotificationsDialog/notifications-dialog.jsx | 1 + packages/core/src/sass/app/modules/notifications-dialog.scss | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/core/src/App/Containers/NotificationsDialog/notifications-dialog.jsx b/packages/core/src/App/Containers/NotificationsDialog/notifications-dialog.jsx index 611fe2fedbd4..384c6d45a3a1 100644 --- a/packages/core/src/App/Containers/NotificationsDialog/notifications-dialog.jsx +++ b/packages/core/src/App/Containers/NotificationsDialog/notifications-dialog.jsx @@ -105,6 +105,7 @@ const ClearAllFooter = ({ is_empty, clearNotifications }) => { > - - ) : ( - + + + + + +
+ {is_appstore && ( + + {primary_routes_config.map((route_config, idx) => + getRoutesWithSubMenu(route_config, idx) + )} + + )} + {is_pre_appstore && ( + + {is_logged_in && is_trading_hub_category ? ( + + - - )} - {is_logged_in && ( - - - - )} - {is_logged_in && !is_trading_hub_category && ( - - + + {localize("Exit Trader's hub")} + + - - )} - {primary_routes_config.map((route_config, idx) => - getRoutesWithSubMenu(route_config, idx) - )} - { - e.preventDefault(); - toggleTheme(!is_dark_mode); - }} - > -
- - - {localize('Dark theme')} - - toggleTheme(!is_dark_mode)} - is_enabled={is_dark_mode} +
-
- {is_logged_in && ( - - {HelpCentreRoute()} - - - - - - - - - - - - - {liveChat.isReady && ( - - - - {localize('WhatsApp')} - - - )} - - {is_appstore ? null : } - - { - logoutClient(); - toggleDrawer(); - }} - className='dc-mobile-drawer__item' - > - - - - - - - - )} - -
- )} - - {!is_appstore && !is_pre_appstore && ( - + + + ) : ( - {platform_switcher} - - -
+ + )} + +
+ {is_logged_in && !is_trading_hub_category && ( + )} + {is_logged_in && ( + + + + )} + {is_logged_in && !is_trading_hub_category && ( - {primary_routes_config.map((route_config, idx) => - getRoutesWithSubMenu(route_config, idx) - )} - {getLanguageRoutes()} - { - - { - e.preventDefault(); - toggleTheme(!is_dark_mode); - }} - > -
- - - {localize('Dark theme')} - - toggleTheme(!is_dark_mode)} - is_enabled={is_dark_mode} - /> -
+ )} + {primary_routes_config.map((route_config, idx) => + getRoutesWithSubMenu(route_config, idx) + )} + { + e.preventDefault(); + toggleTheme(!is_dark_mode); + }} + > +
+ + + {localize('Dark theme')} + + toggleTheme(!is_dark_mode)} + is_enabled={is_dark_mode} + /> +
+
+ {is_logged_in && ( + + {HelpCentreRoute()} + + + + + + + + + + + + + {liveChat.isReady && ( + + + + {localize('WhatsApp')} + - {HelpCentreRoute(true)} - - } - {liveChat.isReady && ( - - - - {localize('WhatsApp')} - + )} + + {is_appstore ? null : } - )} - - {is_appstore ? null : } - - {secondary_routes_config.map(route_config => - getRoutesWithSubMenu(route_config) - )} - {is_logged_in && ( { logoutClient(); toggleDrawer(); }} + className='dc-mobile-drawer__item' > - + - )} - -
- )} -
- {!is_pre_appstore && ( - - - - + + + + + + )} +
+ )} - - - - ); - } -); + + {!is_appstore && !is_pre_appstore && ( + + + + + +
+ + + + + + + {primary_routes_config.map((route_config, idx) => + getRoutesWithSubMenu(route_config, idx) + )} + {getLanguageRoutes()} + { + + { + e.preventDefault(); + toggleTheme(!is_dark_mode); + }} + > +
+ + + {localize('Dark theme')} + + toggleTheme(!is_dark_mode)} + is_enabled={is_dark_mode} + /> +
+
+ {HelpCentreRoute(true)} +
+ } + {liveChat.isReady && ( + + + + {localize('WhatsApp')} + + + )} + + {is_appstore ? null : } + + {secondary_routes_config.map(route_config => getRoutesWithSubMenu(route_config))} + {is_logged_in && ( + { + logoutClient(); + toggleDrawer(); + }} + > + + + )} + + + )} +
+ {!is_pre_appstore && ( + + + + + )} + + +
+ ); +}); ToggleMenuDrawer.displayName = 'ToggleMenuDrawer'; diff --git a/packages/core/src/App/Containers/Layout/header/dashboard-header.jsx b/packages/core/src/App/Containers/Layout/header/dashboard-header.jsx index e35d819f658e..b173b7e5f4d8 100644 --- a/packages/core/src/App/Containers/Layout/header/dashboard-header.jsx +++ b/packages/core/src/App/Containers/Layout/header/dashboard-header.jsx @@ -39,7 +39,7 @@ const LoggedInHeader = ({ is_dark_mode }) => {
- + )}
@@ -94,7 +94,7 @@ const LoggedOutHeader = () => { {isMobile() && (
- + )}
diff --git a/packages/core/src/App/Containers/Layout/header/dashboard-platform-header.jsx b/packages/core/src/App/Containers/Layout/header/dashboard-platform-header.jsx index 61f653210c00..6adb429ac773 100644 --- a/packages/core/src/App/Containers/Layout/header/dashboard-platform-header.jsx +++ b/packages/core/src/App/Containers/Layout/header/dashboard-platform-header.jsx @@ -1,11 +1,9 @@ import * as React from 'react'; - import { Button, DesktopWrapper, Icon, MobileWrapper, Money, Popover, Text } from '@deriv/components'; import { Localize, localize } from '@deriv/translations'; -import { PlatformSwitcher, ToggleNotifications } from 'App/Components/Layout/Header'; +import { ToggleNotifications } from 'App/Components/Layout/Header'; import { getPlatformInformation, isMobile, routes } from '@deriv/shared'; import { useHistory, withRouter } from 'react-router-dom'; - import { BinaryLink } from 'App/Components/Routes'; import PropTypes from 'prop-types'; import ToggleMenuDrawer from 'App/Components/Layout/Header/toggle-menu-drawer.jsx'; @@ -97,34 +95,21 @@ const AccountBalance = ({ balance, currency }) => { }; const DashboardPlatformHeader = ({ - account_status, app_routing_history, balance, currency, disableApp, enableApp, header_extension, - is_dark_mode, is_logged_in, is_mt5_allowed, is_notifications_visible, - is_onramp_tab_visible, - is_p2p_enabled, - is_payment_agent_transfer_visible, - is_payment_agent_visible, - is_account_transfer_visible, is_settings_modal_on, - is_virtual, - location, - logoutClient, notifications_count, - setDarkMode, settings_extension, - should_allow_authentication, toggleNotifications, toggleSettingsModal, }) => { - const toggle_menu_drawer_ref = React.useRef(null); const filterPlatformsForClients = payload => payload.filter(config => { if (config.link_to === routes.mt5) { @@ -137,33 +122,7 @@ const DashboardPlatformHeader = ({
- - } - /> + {header_extension && is_logged_in &&
{header_extension}
}
@@ -204,55 +163,32 @@ const DashboardPlatformHeader = ({ }; DashboardPlatformHeader.propTypes = { - account_status: PropTypes.object, app_routing_history: PropTypes.array, balance: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), currency: PropTypes.string, disableApp: PropTypes.func, enableApp: PropTypes.func, header_extension: PropTypes.any, - is_dark_mode: PropTypes.bool, is_logged_in: PropTypes.bool, is_mt5_allowed: PropTypes.bool, is_notifications_visible: PropTypes.bool, - is_onramp_tab_visible: PropTypes.bool, - is_p2p_enabled: PropTypes.bool, - is_payment_agent_transfer_visible: PropTypes.bool, - is_payment_agent_visible: PropTypes.bool, - is_account_transfer_visible: PropTypes.bool, - is_virtual: PropTypes.bool, - logoutClient: PropTypes.func, notifications_count: PropTypes.number, - setDarkMode: PropTypes.func, - should_allow_authentication: PropTypes.bool, toggleNotifications: PropTypes.func, toggleSettingsModal: PropTypes.func, - location: PropTypes.object, settings_extension: PropTypes.array, is_settings_modal_on: PropTypes.bool, }; -export default connect(({ client, common, modules, notifications, ui }) => ({ - account_status: client.account_status, +export default connect(({ client, common, notifications, ui }) => ({ app_routing_history: common.app_routing_history, balance: client.balance, currency: client.currency, disableApp: ui.disableApp, enableApp: ui.enableApp, header_extension: ui.header_extension, - is_dark_mode: ui.is_dark_mode_on, is_logged_in: client.is_logged_in, is_mt5_allowed: client.is_mt5_allowed, is_notifications_visible: notifications.is_notifications_visible, - is_onramp_tab_visible: modules.cashier.onramp.is_onramp_tab_visible, - is_p2p_enabled: modules.cashier.general_store.is_p2p_enabled, - is_payment_agent_transfer_visible: modules.cashier.payment_agent_transfer.is_payment_agent_transfer_visible, - is_payment_agent_visible: modules.cashier.payment_agent.is_payment_agent_visible, - is_account_transfer_visible: modules.cashier.account_transfer.is_account_transfer_visible, - is_virtual: client.is_virtual, - logoutClient: client.logout, notifications_count: notifications.notifications.length, - setDarkMode: ui.setDarkMode, - should_allow_authentication: client.should_allow_authentication, toggleNotifications: notifications.toggleNotificationsModal, }))(withRouter(DashboardPlatformHeader)); diff --git a/packages/core/src/App/Containers/Layout/header/default-header.jsx b/packages/core/src/App/Containers/Layout/header/default-header.jsx index fd5c2c9c52c6..5acba60e816e 100644 --- a/packages/core/src/App/Containers/Layout/header/default-header.jsx +++ b/packages/core/src/App/Containers/Layout/header/default-header.jsx @@ -1,7 +1,6 @@ import { AccountActions, MenuLinks, PlatformSwitcher } from 'App/Components/Layout/Header'; import { DesktopWrapper, Icon, MobileWrapper, Text } from '@deriv/components'; -import { PlatformContext, getDecimalPlaces, getPlatformInformation, isMobile, platforms, routes } from '@deriv/shared'; - +import { PlatformContext, getDecimalPlaces, isMobile, platforms, routes } from '@deriv/shared'; import { AccountsInfoLoader } from 'App/Components/Layout/Header/Components/Preloader'; import { BinaryLink } from 'App/Components/Routes'; import { Localize } from '@deriv/translations'; @@ -18,7 +17,6 @@ import { withRouter } from 'react-router-dom'; const DefaultHeader = ({ acc_switcher_disabled_message, - account_status, account_type, addNotificationMessage, app_routing_history, @@ -34,39 +32,25 @@ const DefaultHeader = ({ is_acc_switcher_on, is_app_disabled, is_bot_allowed, - is_dark_mode, is_dxtrade_allowed, is_eu, is_logged_in, is_logging_in, is_mt5_allowed, is_notifications_visible, - is_onramp_tab_visible, - is_p2p_enabled, - is_payment_agent_transfer_visible, - is_payment_agent_visible, - is_account_transfer_visible, is_route_modal_on, is_virtual, - is_risky_client, - location, - logoutClient, menu_items, notifications_count, openRealAccountSignup, platform, replaceCashierMenuOnclick, removeNotificationMessage, - setDarkMode, - should_allow_authentication, toggleAccountsDialog, toggleNotifications, - changeCurrentLanguage, is_trading_assessment_for_existing_user_enabled, - active_account_landing_company, is_landing_company_loaded, }) => { - const toggle_menu_drawer_ref = React.useRef(null); const addUpdateNotification = () => addNotificationMessage(client_notifications.new_version_available); const removeUpdateNotification = React.useCallback( () => removeNotificationMessage({ key: 'new_version_available' }), @@ -173,39 +157,7 @@ const DefaultHeader = ({ /> - - } - /> + {header_extension && is_logged_in && (
{header_extension}
)} @@ -277,8 +229,6 @@ const DefaultHeader = ({ DefaultHeader.propTypes = { acc_switcher_disabled_message: PropTypes.string, account_type: PropTypes.string, - should_allow_authentication: PropTypes.bool, - account_status: PropTypes.object, addNotificationMessage: PropTypes.func, app_routing_history: PropTypes.array, balance: PropTypes.string, @@ -291,44 +241,30 @@ DefaultHeader.propTypes = { is_acc_switcher_on: PropTypes.bool, is_app_disabled: PropTypes.bool, is_bot_allowed: PropTypes.bool, - is_dark_mode: PropTypes.bool, is_eu: PropTypes.bool, is_logged_in: PropTypes.bool, is_logging_in: PropTypes.bool, is_mt5_allowed: PropTypes.bool, is_dxtrade_allowed: PropTypes.bool, is_notifications_visible: PropTypes.bool, - is_account_transfer_visible: PropTypes.bool, is_route_modal_on: PropTypes.bool, is_virtual: PropTypes.bool, is_trading_assessment_for_existing_user_enabled: PropTypes.bool, - is_risky_client: PropTypes.bool, - logoutClient: PropTypes.func, notifications_count: PropTypes.number, openRealAccountSignup: PropTypes.func, platform: PropTypes.string, removeNotificationMessage: PropTypes.func, replaceCashierMenuOnclick: PropTypes.func, - setDarkMode: PropTypes.func, toggleAccountsDialog: PropTypes.func, toggleNotifications: PropTypes.func, country_standpoint: PropTypes.object, history: PropTypes.object, - is_onramp_tab_visible: PropTypes.bool, - is_p2p_enabled: PropTypes.bool, - is_payment_agent_transfer_visible: PropTypes.bool, - is_payment_agent_visible: PropTypes.bool, - location: PropTypes.object, menu_items: PropTypes.array, - changeCurrentLanguage: PropTypes.func, }; export default connect(({ client, common, ui, menu, modules, notifications }) => ({ - changeCurrentLanguage: common.changeCurrentLanguage, acc_switcher_disabled_message: ui.account_switcher_disabled_message, - account_status: client.account_status, account_type: client.account_type, - should_allow_authentication: client.should_allow_authentication, addNotificationMessage: notifications.addNotificationMessage, app_routing_history: common.app_routing_history, balance: client.balance, @@ -342,32 +278,22 @@ export default connect(({ client, common, ui, menu, modules, notifications }) => is_acc_switcher_on: !!ui.is_accounts_switcher_on, is_app_disabled: ui.is_app_disabled, is_bot_allowed: client.is_bot_allowed, - is_dark_mode: ui.is_dark_mode_on, is_eu: client.is_eu, is_logged_in: client.is_logged_in, is_logging_in: client.is_logging_in, is_mt5_allowed: client.is_mt5_allowed, is_dxtrade_allowed: client.is_dxtrade_allowed, is_notifications_visible: notifications.is_notifications_visible, - is_p2p_enabled: modules.cashier.general_store.is_p2p_enabled, - is_payment_agent_transfer_visible: modules.cashier.payment_agent_transfer.is_payment_agent_transfer_visible, - is_onramp_tab_visible: modules.cashier.onramp.is_onramp_tab_visible, - is_payment_agent_visible: modules.cashier.payment_agent.is_payment_agent_visible, - is_account_transfer_visible: modules.cashier.account_transfer.is_account_transfer_visible, is_route_modal_on: ui.is_route_modal_on, is_virtual: client.is_virtual, - is_risky_client: client.is_risky_client, - logoutClient: client.logout, menu_items: menu.extensions, notifications_count: notifications.notifications.length, openRealAccountSignup: ui.openRealAccountSignup, replaceCashierMenuOnclick: modules.cashier.general_store.replaceCashierMenuOnclick, platform: common.platform, removeNotificationMessage: notifications.removeNotificationMessage, - setDarkMode: ui.setDarkMode, toggleAccountsDialog: ui.toggleAccountsDialog, toggleNotifications: notifications.toggleNotificationsModal, is_trading_assessment_for_existing_user_enabled: ui.is_trading_assessment_for_existing_user_enabled, - active_account_landing_company: client.landing_company_shortcode, is_landing_company_loaded: client.is_landing_company_loaded, }))(withRouter(DefaultHeader)); diff --git a/packages/core/src/App/Containers/Layout/header/dtrader-header.jsx b/packages/core/src/App/Containers/Layout/header/dtrader-header.jsx index 5666e91b425c..4b4fe13f4fac 100644 --- a/packages/core/src/App/Containers/Layout/header/dtrader-header.jsx +++ b/packages/core/src/App/Containers/Layout/header/dtrader-header.jsx @@ -3,7 +3,7 @@ import PropTypes from 'prop-types'; import React from 'react'; import { withRouter, useHistory } from 'react-router-dom'; import { DesktopWrapper, MobileWrapper, Text, Icon } from '@deriv/components'; -import { routes, isMobile, getDecimalPlaces, getPlatformInformation, platforms, PlatformContext } from '@deriv/shared'; +import { routes, isMobile, getDecimalPlaces, platforms, PlatformContext } from '@deriv/shared'; import { AccountActions, MenuLinks, PlatformSwitcher } from 'App/Components/Layout/Header'; import platform_config from 'App/Constants/platform-config'; import RealAccountSignup from 'App/Containers/RealAccountSignup'; @@ -59,7 +59,6 @@ const RedirectToOldInterface = () => { const MemoizedMenuLinks = React.memo(MenuLinks); const DTraderHeader = ({ acc_switcher_disabled_message, - account_status, account_type, addNotificationMessage, app_routing_history, @@ -75,36 +74,23 @@ const DTraderHeader = ({ is_acc_switcher_on, is_app_disabled, is_bot_allowed, - is_dark_mode, is_dxtrade_allowed, is_eu, is_logged_in, is_logging_in, is_mt5_allowed, is_notifications_visible, - is_onramp_tab_visible, - is_p2p_enabled, - is_payment_agent_transfer_visible, - is_payment_agent_visible, - is_account_transfer_visible, is_route_modal_on, is_virtual, - location, - logoutClient, menu_items, notifications_count, openRealAccountSignup, platform, replaceCashierMenuOnclick, removeNotificationMessage, - setDarkMode, - should_allow_authentication, toggleAccountsDialog, toggleNotifications, - changeCurrentLanguage, - is_social_signup, }) => { - const toggle_menu_drawer_ref = React.useRef(null); const addUpdateNotification = () => addNotificationMessage(client_notifications.new_version_available); const removeUpdateNotification = React.useCallback( () => removeNotificationMessage({ key: 'new_version_available' }), @@ -156,35 +142,7 @@ const DTraderHeader = ({ /> - - } - is_social_signup={is_social_signup} - /> + {header_extension && is_logged_in && (
{header_extension}
)} @@ -249,8 +207,6 @@ const DTraderHeader = ({ DTraderHeader.propTypes = { acc_switcher_disabled_message: PropTypes.string, account_type: PropTypes.string, - should_allow_authentication: PropTypes.bool, - account_status: PropTypes.object, addNotificationMessage: PropTypes.func, app_routing_history: PropTypes.array, balance: PropTypes.string, @@ -263,7 +219,6 @@ DTraderHeader.propTypes = { is_acc_switcher_on: PropTypes.bool, is_app_disabled: PropTypes.bool, is_bot_allowed: PropTypes.bool, - is_dark_mode: PropTypes.bool, is_eu: PropTypes.bool, is_loading: PropTypes.bool, is_logged_in: PropTypes.bool, @@ -271,36 +226,23 @@ DTraderHeader.propTypes = { is_mt5_allowed: PropTypes.bool, is_dxtrade_allowed: PropTypes.bool, is_notifications_visible: PropTypes.bool, - is_account_transfer_visible: PropTypes.bool, is_route_modal_on: PropTypes.bool, is_virtual: PropTypes.bool, - logoutClient: PropTypes.func, notifications_count: PropTypes.number, openRealAccountSignup: PropTypes.func, platform: PropTypes.string, removeNotificationMessage: PropTypes.func, replaceCashierMenuOnclick: PropTypes.func, - setDarkMode: PropTypes.func, toggleAccountsDialog: PropTypes.func, toggleNotifications: PropTypes.func, - is_social_signup: PropTypes.bool, country_standpoint: PropTypes.object, history: PropTypes.object, - is_onramp_tab_visible: PropTypes.bool, - is_p2p_enabled: PropTypes.bool, - is_payment_agent_transfer_visible: PropTypes.bool, - is_payment_agent_visible: PropTypes.bool, - location: PropTypes.object, menu_items: PropTypes.array, - changeCurrentLanguage: PropTypes.func, }; export default connect(({ client, common, ui, menu, modules, notifications }) => ({ - changeCurrentLanguage: common.changeCurrentLanguage, acc_switcher_disabled_message: ui.account_switcher_disabled_message, - account_status: client.account_status, account_type: client.account_type, - should_allow_authentication: client.should_allow_authentication, addNotificationMessage: notifications.addNotificationMessage, app_routing_history: common.app_routing_history, balance: client.balance, @@ -314,7 +256,6 @@ export default connect(({ client, common, ui, menu, modules, notifications }) => is_acc_switcher_on: !!ui.is_accounts_switcher_on, is_app_disabled: ui.is_app_disabled, is_bot_allowed: client.is_bot_allowed, - is_dark_mode: ui.is_dark_mode_on, is_eu: client.is_eu, is_loading: ui.is_loading, is_logged_in: client.is_logged_in, @@ -322,22 +263,14 @@ export default connect(({ client, common, ui, menu, modules, notifications }) => is_mt5_allowed: client.is_mt5_allowed, is_dxtrade_allowed: client.is_dxtrade_allowed, is_notifications_visible: notifications.is_notifications_visible, - is_p2p_enabled: modules.cashier.general_store.is_p2p_enabled, - is_payment_agent_transfer_visible: modules.cashier.payment_agent_transfer.is_payment_agent_transfer_visible, - is_onramp_tab_visible: modules.cashier.onramp.is_onramp_tab_visible, - is_payment_agent_visible: modules.cashier.payment_agent.is_payment_agent_visible, - is_account_transfer_visible: modules.cashier.account_transfer.is_account_transfer_visible, is_route_modal_on: ui.is_route_modal_on, is_virtual: client.is_virtual, - logoutClient: client.logout, menu_items: menu.extensions, notifications_count: notifications.notifications.length, openRealAccountSignup: ui.openRealAccountSignup, replaceCashierMenuOnclick: modules.cashier.general_store.replaceCashierMenuOnclick, platform: common.platform, removeNotificationMessage: notifications.removeNotificationMessage, - setDarkMode: ui.setDarkMode, toggleAccountsDialog: ui.toggleAccountsDialog, toggleNotifications: notifications.toggleNotificationsModal, - is_social_signup: client.is_social_signup, }))(withRouter(DTraderHeader)); diff --git a/packages/core/src/App/Containers/Layout/header/trading-hub-header.jsx b/packages/core/src/App/Containers/Layout/header/trading-hub-header.jsx index 68a36c42305b..e55fe10c1934 100644 --- a/packages/core/src/App/Containers/Layout/header/trading-hub-header.jsx +++ b/packages/core/src/App/Containers/Layout/header/trading-hub-header.jsx @@ -2,9 +2,9 @@ import * as React from 'react'; import PropTypes from 'prop-types'; import { useHistory, withRouter } from 'react-router-dom'; import { DesktopWrapper, Icon, MobileWrapper, Popover, Text, Button } from '@deriv/components'; -import { getPlatformInformation, routes, PlatformContext } from '@deriv/shared'; +import { routes, PlatformContext } from '@deriv/shared'; import { Localize } from '@deriv/translations'; -import { PlatformSwitcher, ToggleNotifications, MenuLinks } from 'App/Components/Layout/Header'; +import { ToggleNotifications, MenuLinks } from 'App/Components/Layout/Header'; import platform_config from 'App/Constants/platform-config'; import ToggleMenuDrawer from 'App/Components/Layout/Header/toggle-menu-drawer.jsx'; import { connect } from 'Stores/connect'; @@ -85,10 +85,6 @@ const ShowNotifications = ({ is_notifications_visible, notifications_count, togg }; const MemoizedMenuLinks = React.memo(MenuLinks); const TradingHubHeader = ({ - account_status, - app_routing_history, - disableApp, - enableApp, loginid, is_eu, is_eu_country, @@ -98,25 +94,13 @@ const TradingHubHeader = ({ is_logged_in, is_mt5_allowed, is_notifications_visible, - is_onramp_tab_visible, - is_p2p_enabled, - is_payment_agent_transfer_visible, - is_payment_agent_visible, - is_account_transfer_visible, - is_virtual, - location, - logoutClient, notifications_count, - setDarkMode, - should_allow_authentication, toggleNotifications, - is_social_signup, replaceCashierMenuOnclick, menu_items, toggleIsTourOpen, }) => { const is_mf = loginid?.startsWith('MF'); - const toggle_menu_drawer_ref = React.useRef(null); const filterPlatformsForClients = payload => payload.filter(config => { if (config.link_to === routes.mt5) { @@ -131,34 +115,7 @@ const TradingHubHeader = ({
- - } - is_social_signup={is_social_signup} - /> + {header_extension && is_logged_in &&
{header_extension}
}
@@ -238,29 +195,14 @@ const TradingHubHeader = ({ }; TradingHubHeader.propTypes = { - account_status: PropTypes.object, - app_routing_history: PropTypes.array, - disableApp: PropTypes.func, - enableApp: PropTypes.func, header_extension: PropTypes.any, is_dark_mode: PropTypes.bool, loginid: PropTypes.string, is_logged_in: PropTypes.bool, is_mt5_allowed: PropTypes.bool, is_notifications_visible: PropTypes.bool, - is_onramp_tab_visible: PropTypes.bool, - is_p2p_enabled: PropTypes.bool, - is_payment_agent_transfer_visible: PropTypes.bool, - is_payment_agent_visible: PropTypes.bool, - is_account_transfer_visible: PropTypes.bool, - is_virtual: PropTypes.bool, - logoutClient: PropTypes.func, notifications_count: PropTypes.number, - setDarkMode: PropTypes.func, - should_allow_authentication: PropTypes.bool, toggleNotifications: PropTypes.func, - is_social_signup: PropTypes.bool, - location: PropTypes.object, setIsOnboardingVisited: PropTypes.func, settings_extension: PropTypes.array, is_settings_modal_on: PropTypes.bool, @@ -271,11 +213,7 @@ TradingHubHeader.propTypes = { is_eu_country: PropTypes.bool, }; -export default connect(({ client, common, modules, notifications, ui, menu, tradinghub }) => ({ - account_status: client.account_status, - app_routing_history: common.app_routing_history, - disableApp: ui.disableApp, - enableApp: ui.enableApp, +export default connect(({ client, modules, notifications, ui, menu, tradinghub }) => ({ is_eu: client.is_eu, is_eu_country: client.is_eu_country, header_extension: ui.header_extension, @@ -283,18 +221,8 @@ export default connect(({ client, common, modules, notifications, ui, menu, trad is_logged_in: client.is_logged_in, is_mt5_allowed: client.is_mt5_allowed, is_notifications_visible: notifications.is_notifications_visible, - is_onramp_tab_visible: modules.cashier.onramp.is_onramp_tab_visible, - is_p2p_enabled: modules.cashier.general_store.is_p2p_enabled, - is_payment_agent_transfer_visible: modules.cashier.payment_agent_transfer.is_payment_agent_transfer_visible, - is_payment_agent_visible: modules.cashier.payment_agent.is_payment_agent_visible, - is_account_transfer_visible: modules.cashier.account_transfer.is_account_transfer_visible, - is_virtual: client.is_virtual, - logoutClient: client.logout, notifications_count: notifications.notifications.length, - setDarkMode: ui.setDarkMode, - should_allow_authentication: client.should_allow_authentication, toggleNotifications: notifications.toggleNotificationsModal, - is_social_signup: client.is_social_signup, menu_items: menu.extensions, replaceCashierMenuOnclick: modules.cashier.general_store.replaceCashierMenuOnclick, toggleIsTourOpen: tradinghub.toggleIsTourOpen, diff --git a/packages/core/src/App/app.jsx b/packages/core/src/App/app.jsx index f929b2631032..35b6fbe16eee 100644 --- a/packages/core/src/App/app.jsx +++ b/packages/core/src/App/app.jsx @@ -9,6 +9,7 @@ import { setUrlLanguage, initFormErrorMessages, setSharedCFDText, useOnLoadTrans import { initializeTranslations, getLanguage } from '@deriv/translations'; import { CashierStore } from '@deriv/cashier'; import { CFDStore } from '@deriv/cfd'; +import { StoreProvider } from '@deriv/stores'; import WS from 'Services/ws-methods'; import { MobxContentProvider } from 'Stores/connect'; import SmartTraderIFrame from 'Modules/SmartTraderIFrame'; @@ -69,24 +70,26 @@ const AppWithoutTranslation = ({ root_store }) => { {is_translation_loaded ? ( - -
- - - {/* TODO: [trader-remove-client-base] */} - - - - -
- - - - - - - - + + +
+ + + {/* TODO: [trader-remove-client-base] */} + + + + +
+ + + + + + + + + ) : ( diff --git a/packages/stores/types.ts b/packages/stores/types.ts index 9f1bb7625411..189164dc74e1 100644 --- a/packages/stores/types.ts +++ b/packages/stores/types.ts @@ -1,4 +1,4 @@ -import type { GetAccountStatus, Authorize, DetailsOfEachMT5Loginid } from '@deriv/api-types'; +import type { GetAccountStatus, Authorize, DetailsOfEachMT5Loginid, LogOutResponse } from '@deriv/api-types'; import type { RouteComponentProps } from 'react-router'; type TAccount = NonNullable[0]; @@ -64,6 +64,10 @@ type TClientStore = { is_authentication_needed: boolean; authentication_status: TAuthenticationStatus; mt5_login_list: DetailsOfEachMT5Loginid[]; + is_risky_client: boolean; + logout: () => Promise; + should_allow_authentication: boolean; + is_landing_company_loaded: boolean; }; type TCommonStoreError = { @@ -76,6 +80,7 @@ type TCommonStoreError = { should_show_refresh: boolean; redirectOnClick: () => void; setError: (has_error: boolean, error: TCommonStoreError | null) => void; + app_routing_history: unknown[]; }; type TCommonStore = { @@ -85,6 +90,7 @@ type TCommonStore = { platform: string; routeBackInApp: (history: Pick, additional_platform_path?: string[]) => void; routeTo: (pathname: string) => void; + changeCurrentLanguage: (new_language: string) => void; }; type TUiStore = { @@ -97,6 +103,7 @@ type TUiStore = { setCurrentFocus: (value: string) => void; toggleAccountsDialog: () => void; toggleCashier: () => void; + setDarkMode: (is_dark_mode_on: boolean) => boolean; }; export type TRootStore = { From 483094811d9e67e099de9dfad4a8bed19056e148 Mon Sep 17 00:00:00 2001 From: ameerul-deriv <103412909+ameerul-deriv@users.noreply.github.com> Date: Fri, 27 Jan 2023 14:17:27 +0800 Subject: [PATCH 78/84] Ameerul /Feature 82816 Block User Phase 2 (#7153) * chore: changed tab to block users, change button style, added dropdown * chore: refactored+restructured block-user-table files and fixed show verification component * chore: user can now route to advertiser page from block users tab * chore: removed comments, fixed icon * chore: added icon, refactored block-user-list, fixed handling barred user * chore: fixed block/unblock user if they are barred * chore: integrated backend, display trade partners, search and dropdown * chore: fixed styling, added filter modal/dropdown, refactored code * fix: added suggestions * fix: redirection when hiding advertiser page * fix: changed block users label * chore: fix button sizing, changed text, removed autosizer * chore: show no users to show if user has no blocked users. changed no ads text * chore: fixed block user modal padding issues * chore: put autosizer back, changed table styling, changed logic for displaying dropdown values * chore: removed styling * chore: fixed duplicate rows for trade partners list * chore: added error modal in block user tab if user B is banned whilst blocking * chore: dont allow barred user to navigate to advertisers page, fixed styling issue stats * chore: fixed navigation issue, styling, button hovering issue on mobile * chore: changed Block users to My Counterparties * chore: changed Counterparties to counterparties * chore: fix hovering issue on button * chore: removed hover effect in mobile for buttons * chore: fixed block issue on sell order Co-authored-by: Farrah Mae Ochoa --- .../src/components/icon/common/ic-no-data.svg | 1 + .../components/src/components/icon/icons.js | 2 + .../advertiser-page-adverts.jsx | 4 +- .../advertiser-page/advertiser-page.jsx | 13 +- .../block-user-empty/block-user-empty.jsx | 6 +- .../block-user-empty/block-user-empty.scss | 4 + .../block-user-modal/block-user-modal.scss | 4 + .../src/components/buy-sell/buy-sell-row.jsx | 22 +- .../p2p/src/components/buy-sell/buy-sell.jsx | 6 +- .../p2p/src/components/buy-sell/buy-sell.scss | 4 + .../components/error-modal/error-modal.scss | 4 + .../block-user-dropdown.jsx | 38 ++++ .../block-user-dropdown.scss | 15 ++ .../block-user/block-user-dropdown/index.js | 3 + .../block-user-filter-modal.jsx | 40 ++++ .../block-user-filter-modal/index.js | 3 + .../block-user-list/block-user-list.jsx | 62 ++++++ .../block-user-list/block-user-list.scss | 35 +++ .../block-user/block-user-list/index.js | 3 + .../block-user-table/block-user-row.jsx | 37 ---- .../block-user-row/block-user-row.jsx | 68 ++++++ .../block-user-row/block-user-row.scss | 61 ++++++ .../block-user-table/block-user-row/index.js | 4 + .../block-user-table-error.jsx | 12 +- .../block-user-table-error.scss | 17 ++ .../block-user-table-error/index.js | 4 + .../block-user-table/block-user-table.jsx | 43 ++-- .../block-user-table/block-user-table.scss | 21 ++ .../block-user/block-user-table/index.js | 1 - .../my-profile/block-user/block-user.jsx | 56 ++--- .../my-profile/block-user/block-user.scss | 103 --------- .../my-profile/my-profile-content.jsx | 2 +- .../my-profile-header/my-profile-header.jsx | 4 +- .../my-profile-stats-table.scss | 1 - .../my-profile-stats/my-profile-stats.jsx | 4 +- packages/p2p/src/constants/my-profile-tabs.js | 2 +- .../p2p/src/stores/advertiser-page-store.js | 33 ++- packages/p2p/src/stores/general-store.js | 12 + packages/p2p/src/stores/my-profile-store.js | 205 +++++++++++++----- 39 files changed, 670 insertions(+), 289 deletions(-) create mode 100644 packages/components/src/components/icon/common/ic-no-data.svg create mode 100644 packages/p2p/src/components/my-profile/block-user/block-user-dropdown/block-user-dropdown.jsx create mode 100644 packages/p2p/src/components/my-profile/block-user/block-user-dropdown/block-user-dropdown.scss create mode 100644 packages/p2p/src/components/my-profile/block-user/block-user-dropdown/index.js create mode 100644 packages/p2p/src/components/my-profile/block-user/block-user-filter-modal/block-user-filter-modal.jsx create mode 100644 packages/p2p/src/components/my-profile/block-user/block-user-filter-modal/index.js create mode 100644 packages/p2p/src/components/my-profile/block-user/block-user-list/block-user-list.jsx create mode 100644 packages/p2p/src/components/my-profile/block-user/block-user-list/block-user-list.scss create mode 100644 packages/p2p/src/components/my-profile/block-user/block-user-list/index.js delete mode 100644 packages/p2p/src/components/my-profile/block-user/block-user-table/block-user-row.jsx create mode 100644 packages/p2p/src/components/my-profile/block-user/block-user-table/block-user-row/block-user-row.jsx create mode 100644 packages/p2p/src/components/my-profile/block-user/block-user-table/block-user-row/block-user-row.scss create mode 100644 packages/p2p/src/components/my-profile/block-user/block-user-table/block-user-row/index.js rename packages/p2p/src/components/my-profile/block-user/block-user-table/{ => block-user-table-error}/block-user-table-error.jsx (84%) create mode 100644 packages/p2p/src/components/my-profile/block-user/block-user-table/block-user-table-error/block-user-table-error.scss create mode 100644 packages/p2p/src/components/my-profile/block-user/block-user-table/block-user-table-error/index.js create mode 100644 packages/p2p/src/components/my-profile/block-user/block-user-table/block-user-table.scss diff --git a/packages/components/src/components/icon/common/ic-no-data.svg b/packages/components/src/components/icon/common/ic-no-data.svg new file mode 100644 index 000000000000..8654e411ad75 --- /dev/null +++ b/packages/components/src/components/icon/common/ic-no-data.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/components/src/components/icon/icons.js b/packages/components/src/components/icon/icons.js index 1dc60bc21bcf..288d6e156523 100644 --- a/packages/components/src/components/icon/icons.js +++ b/packages/components/src/components/icon/icons.js @@ -430,6 +430,7 @@ import './common/ic-neteller-dark.svg'; import './common/ic-neteller-light.svg'; import './common/ic-new-file.svg'; import './common/ic-no-ad.svg'; +import './common/ic-no-data.svg'; import './common/ic-no-order.svg'; import './common/ic-notification-clear.svg'; import './common/ic-notification.svg'; @@ -591,6 +592,7 @@ import './currency/ic-currency-usdc.svg'; import './currency/ic-currency-usdk.svg'; import './currency/ic-currency-ust.svg'; import './currency/ic-currency-virtual.svg'; +import './derivez/ic-derivez.svg'; import './dxtrade/ic-dxtrade-deriv-x.svg'; import './dxtrade/ic-dxtrade-derived.svg'; import './dxtrade/ic-dxtrade-derivx-platform.svg'; diff --git a/packages/p2p/src/components/advertiser-page/advertiser-page-adverts.jsx b/packages/p2p/src/components/advertiser-page/advertiser-page-adverts.jsx index a67e2da7a058..098e8803d90a 100644 --- a/packages/p2p/src/components/advertiser-page/advertiser-page-adverts.jsx +++ b/packages/p2p/src/components/advertiser-page/advertiser-page-adverts.jsx @@ -67,8 +67,8 @@ const AdvertiserPageAdverts = () => { ) : ( )} diff --git a/packages/p2p/src/components/advertiser-page/advertiser-page.jsx b/packages/p2p/src/components/advertiser-page/advertiser-page.jsx index b4d6a055863d..aed006b4cfcb 100644 --- a/packages/p2p/src/components/advertiser-page/advertiser-page.jsx +++ b/packages/p2p/src/components/advertiser-page/advertiser-page.jsx @@ -6,6 +6,7 @@ import { observer } from 'mobx-react-lite'; import { useStores } from 'Stores'; import { Localize, localize } from 'Components/i18next'; import { buy_sell } from 'Constants/buy-sell'; +import { my_profile_tabs } from 'Constants/my-profile-tabs'; import RateChangeModal from 'Components/buy-sell/rate-change-modal.jsx'; import BuySellModal from 'Components/buy-sell/buy-sell-modal.jsx'; import PageReturn from 'Components/page-return/page-return.jsx'; @@ -24,11 +25,12 @@ import { OnlineStatusIcon, OnlineStatusLabel } from 'Components/online-status'; import './advertiser-page.scss'; const AdvertiserPage = () => { - const { general_store, advertiser_page_store, buy_sell_store } = useStores(); + const { general_store, advertiser_page_store, buy_sell_store, my_profile_store } = useStores(); const is_my_advert = advertiser_page_store.advertiser_details_id === general_store.advertiser_id; // Use general_store.advertiser_info since resubscribing to the same id from advertiser page returns error const info = is_my_advert ? general_store.advertiser_info : advertiser_page_store.counterparty_advertiser_info; + const { basic_verification, buy_orders_count, @@ -94,6 +96,8 @@ const AdvertiserPage = () => { is_error_modal_open={is_error_modal_open} setIsErrorModalOpen={is_open => { if (!is_open) buy_sell_store.hideAdvertiserPage(); + if (general_store.active_index !== 0) + my_profile_store.setActiveTab(my_profile_tabs.MY_COUNTERPARTIES); advertiser_page_store.onCancel(); general_store.setBlockUnblockUserError(''); }} @@ -117,7 +121,11 @@ const AdvertiserPage = () => {
{ + buy_sell_store.hideAdvertiserPage(); + if (general_store.active_index === general_store.path.my_profile) + my_profile_store.setActiveTab(my_profile_tabs.MY_COUNTERPARTIES); + }} page_title={localize("Advertiser's page")} /> {!is_my_advert && ( @@ -175,7 +183,6 @@ const AdvertiserPage = () => {
-
diff --git a/packages/p2p/src/components/block-user/block-user-empty/block-user-empty.jsx b/packages/p2p/src/components/block-user/block-user-empty/block-user-empty.jsx index 78fa00b8b210..0b6629b98b21 100644 --- a/packages/p2p/src/components/block-user/block-user-empty/block-user-empty.jsx +++ b/packages/p2p/src/components/block-user/block-user-empty/block-user-empty.jsx @@ -19,7 +19,7 @@ const BlockUserEmpty = () => { width={128} /> - +
@@ -28,7 +28,7 @@ const BlockUserEmpty = () => { body_className='block-user-empty' height_offset='80px' is_modal_open - page_header_text={localize('Blocked advertisers')} + page_header_text={localize('My counterparties')} pageHeaderReturnFn={() => my_profile_store.setActiveTab(my_profile_tabs.MY_STATS)} > { width={128} /> - + diff --git a/packages/p2p/src/components/block-user/block-user-empty/block-user-empty.scss b/packages/p2p/src/components/block-user/block-user-empty/block-user-empty.scss index dd67de69a806..f9320b9ffbcd 100644 --- a/packages/p2p/src/components/block-user/block-user-empty/block-user-empty.scss +++ b/packages/p2p/src/components/block-user/block-user-empty/block-user-empty.scss @@ -3,6 +3,10 @@ display: flex; flex-direction: column; + @include mobile { + margin-top: 16rem; + } + &__icon { margin-top: 2.2rem; } diff --git a/packages/p2p/src/components/block-user/block-user-modal/block-user-modal.scss b/packages/p2p/src/components/block-user/block-user-modal/block-user-modal.scss index 84d470158208..a7999bd128af 100644 --- a/packages/p2p/src/components/block-user/block-user-modal/block-user-modal.scss +++ b/packages/p2p/src/components/block-user/block-user-modal/block-user-modal.scss @@ -1,5 +1,9 @@ .block-user-modal { &__body { padding: 0 2.4rem; + + @include mobile { + padding: 0 1.6rem; + } } } diff --git a/packages/p2p/src/components/buy-sell/buy-sell-row.jsx b/packages/p2p/src/components/buy-sell/buy-sell-row.jsx index 3b04979dd909..663d1960f055 100644 --- a/packages/p2p/src/components/buy-sell/buy-sell-row.jsx +++ b/packages/p2p/src/components/buy-sell/buy-sell-row.jsx @@ -60,18 +60,18 @@ const BuySellRow = ({ row: advert }) => { exchange_rate: floating_rate_store.exchange_rate, market_rate: effective_rate, }); + const onClickRow = () => { + if (!general_store.is_advertiser) { + buy_sell_store.setShouldShowVerification(true); + } else if (!general_store.is_barred) { + buy_sell_store.showAdvertiserPage(advert); + } + }; if (isMobile()) { return (
-
- general_store.is_barred || !general_store.is_advertiser - ? undefined - : buy_sell_store.showAdvertiserPage(advert) - } - > +
onClickRow()}> {
- general_store.is_barred || !general_store.is_advertiser - ? undefined - : buy_sell_store.showAdvertiserPage(advert) - } + onClick={() => onClickRow()} > { if (buy_sell_store.should_show_verification) { return ( - + ); diff --git a/packages/p2p/src/components/buy-sell/buy-sell.scss b/packages/p2p/src/components/buy-sell/buy-sell.scss index f9fdd2c8b38e..5857e198168a 100644 --- a/packages/p2p/src/components/buy-sell/buy-sell.scss +++ b/packages/p2p/src/components/buy-sell/buy-sell.scss @@ -73,6 +73,10 @@ } } + &__page-return { + margin: 2rem; + } + &__table-header { display: grid; grid-template-columns: 2fr 1.5fr 1fr 1.5fr 1fr; diff --git a/packages/p2p/src/components/error-modal/error-modal.scss b/packages/p2p/src/components/error-modal/error-modal.scss index eb26b69cd033..5e521fcc3fa4 100644 --- a/packages/p2p/src/components/error-modal/error-modal.scss +++ b/packages/p2p/src/components/error-modal/error-modal.scss @@ -1,5 +1,9 @@ .error-modal { &__body { padding: 0 2.4rem; + + @include mobile { + padding: 0 1.6rem; + } } } diff --git a/packages/p2p/src/components/my-profile/block-user/block-user-dropdown/block-user-dropdown.jsx b/packages/p2p/src/components/my-profile/block-user/block-user-dropdown/block-user-dropdown.jsx new file mode 100644 index 000000000000..a413df12641e --- /dev/null +++ b/packages/p2p/src/components/my-profile/block-user/block-user-dropdown/block-user-dropdown.jsx @@ -0,0 +1,38 @@ +import React from 'react'; +import { Dropdown, Icon } from '@deriv/components'; +import { isMobile } from '@deriv/shared'; +import { observer } from 'mobx-react-lite'; +import { localize } from 'Components/i18next'; +import { useStores } from 'Stores'; +import './block-user-dropdown.scss'; + +const BlockUserDropdown = () => { + const { my_profile_store } = useStores(); + + if (isMobile()) { + return ( +
{ + my_profile_store.setIsFilterModalOpen(true); + }} + > + +
+ ); + } + + return ( + + ); +}; + +export default observer(BlockUserDropdown); diff --git a/packages/p2p/src/components/my-profile/block-user/block-user-dropdown/block-user-dropdown.scss b/packages/p2p/src/components/my-profile/block-user/block-user-dropdown/block-user-dropdown.scss new file mode 100644 index 000000000000..cd29dc4ad0d1 --- /dev/null +++ b/packages/p2p/src/components/my-profile/block-user/block-user-dropdown/block-user-dropdown.scss @@ -0,0 +1,15 @@ +.block-user-dropdown { + margin-left: 1rem; + width: 20rem; + + @include mobile { + display: flex; + align-items: center; + justify-content: center; + border: 1px solid var(--border-normal); + border-radius: 4px; + padding: 0.8rem; + height: 4rem; + width: 4rem; + } +} diff --git a/packages/p2p/src/components/my-profile/block-user/block-user-dropdown/index.js b/packages/p2p/src/components/my-profile/block-user/block-user-dropdown/index.js new file mode 100644 index 000000000000..846c7e204170 --- /dev/null +++ b/packages/p2p/src/components/my-profile/block-user/block-user-dropdown/index.js @@ -0,0 +1,3 @@ +import BlockUserDropdown from './block-user-dropdown.jsx'; + +export default BlockUserDropdown; diff --git a/packages/p2p/src/components/my-profile/block-user/block-user-filter-modal/block-user-filter-modal.jsx b/packages/p2p/src/components/my-profile/block-user/block-user-filter-modal/block-user-filter-modal.jsx new file mode 100644 index 000000000000..a5b40d343031 --- /dev/null +++ b/packages/p2p/src/components/my-profile/block-user/block-user-filter-modal/block-user-filter-modal.jsx @@ -0,0 +1,40 @@ +import React from 'react'; +import { observer } from 'mobx-react-lite'; +import { Modal, RadioGroup, Text } from '@deriv/components'; +import { useStores } from 'Stores'; + +const BlockUserFilterModal = () => { + const { my_profile_store } = useStores(); + + return ( + my_profile_store.setIsFilterModalOpen(false)} + width='80vw' + > + + {my_profile_store.block_user_sort_list.map((list_item, key) => { + return ( + + {list_item.text} + + } + /> + ); + })} + + + ); +}; + +export default observer(BlockUserFilterModal); diff --git a/packages/p2p/src/components/my-profile/block-user/block-user-filter-modal/index.js b/packages/p2p/src/components/my-profile/block-user/block-user-filter-modal/index.js new file mode 100644 index 000000000000..7da3e2b9c1e8 --- /dev/null +++ b/packages/p2p/src/components/my-profile/block-user/block-user-filter-modal/index.js @@ -0,0 +1,3 @@ +import BlockUserFilterModal from './block-user-filter-modal.jsx'; + +export default BlockUserFilterModal; diff --git a/packages/p2p/src/components/my-profile/block-user/block-user-list/block-user-list.jsx b/packages/p2p/src/components/my-profile/block-user/block-user-list/block-user-list.jsx new file mode 100644 index 000000000000..bba999ac149a --- /dev/null +++ b/packages/p2p/src/components/my-profile/block-user/block-user-list/block-user-list.jsx @@ -0,0 +1,62 @@ +import React from 'react'; +import { observer } from 'mobx-react-lite'; +import { useStores } from 'Stores'; +import { Text, Loading } from '@deriv/components'; +import { isMobile } from '@deriv/shared'; +import BlockUserDropdown from '../block-user-dropdown'; +import BlockUserTable from '../block-user-table'; +import BlockUserTableError from '../block-user-table/block-user-table-error'; +import SearchBox from 'Components/search-box'; +import debounce from 'lodash.debounce'; +import { localize } from 'Components/i18next'; +import './block-user-list.scss'; + +const BlockUserList = observer(() => { + const { general_store, my_profile_store } = useStores(); + + const debouncedGetSearchedTradePartners = debounce(search => { + my_profile_store.setSearchTerm(search.trim()); + my_profile_store.getSearchedTradePartners(); + }, 200); + + const onSearch = search => { + // Ensures that trade partners list is not reloaded if search term entered is the same + if (my_profile_store.search_term !== search.trim()) { + my_profile_store.setIsBlockUserTableLoading(true); + debouncedGetSearchedTradePartners(search); + } + }; + + if (general_store.is_barred && general_store.block_unblock_user_error) { + return ; + } + + if (my_profile_store.is_loading) { + return ; + } + + return ( +
+ {my_profile_store.trade_partners_list.length > 0 && ( + + + {localize( + "When you block someone, you won't see their ads, and they can't see yours. Your ads will be hidden from their search results, too." + )} + +
+ + +
+
+ )} + +
+ ); +}); + +export default BlockUserList; diff --git a/packages/p2p/src/components/my-profile/block-user/block-user-list/block-user-list.scss b/packages/p2p/src/components/my-profile/block-user/block-user-list/block-user-list.scss new file mode 100644 index 000000000000..75691c5f050e --- /dev/null +++ b/packages/p2p/src/components/my-profile/block-user/block-user-list/block-user-list.scss @@ -0,0 +1,35 @@ +.block-user-list { + display: flex; + flex: 1; + flex-direction: column; + height: 100%; + + & .search-box { + margin: 0rem 0.8rem 2.4rem; + width: 20rem; + + @include mobile { + width: 15rem; + } + } + + &__header { + display: flex; + flex-direction: row; + + @include mobile { + align-items: center; + margin: 0 1.6rem; + z-index: 7; + } + } + + &__text { + margin: 0 0.8rem 2rem; + + @include mobile { + margin: 1.6rem; + z-index: 7; + } + } +} diff --git a/packages/p2p/src/components/my-profile/block-user/block-user-list/index.js b/packages/p2p/src/components/my-profile/block-user/block-user-list/index.js new file mode 100644 index 000000000000..72269ee1bcb8 --- /dev/null +++ b/packages/p2p/src/components/my-profile/block-user/block-user-list/index.js @@ -0,0 +1,3 @@ +import BlockUserList from './block-user-list.jsx'; + +export default BlockUserList; diff --git a/packages/p2p/src/components/my-profile/block-user/block-user-table/block-user-row.jsx b/packages/p2p/src/components/my-profile/block-user/block-user-table/block-user-row.jsx deleted file mode 100644 index c4c40c49c1bb..000000000000 --- a/packages/p2p/src/components/my-profile/block-user/block-user-table/block-user-row.jsx +++ /dev/null @@ -1,37 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import { observer } from 'mobx-react-lite'; -import { useStores } from 'Stores'; -import { Button, Table, Text } from '@deriv/components'; -import UserAvatar from 'Components/user/user-avatar'; -import { localize } from 'Components/i18next'; -import '../block-user.scss'; - -const BlockUserRow = ({ row: advertiser }) => { - const { my_profile_store } = useStores(); - return ( - - -
- -
- - {advertiser.name} - -
-
-
- - - -
- ); -}; - -BlockUserRow.propTypes = { - advertiser: PropTypes.object, -}; - -export default observer(BlockUserRow); diff --git a/packages/p2p/src/components/my-profile/block-user/block-user-table/block-user-row/block-user-row.jsx b/packages/p2p/src/components/my-profile/block-user/block-user-table/block-user-row/block-user-row.jsx new file mode 100644 index 000000000000..f907e5160364 --- /dev/null +++ b/packages/p2p/src/components/my-profile/block-user/block-user-table/block-user-row/block-user-row.jsx @@ -0,0 +1,68 @@ +/* eslint-disable react/prop-types */ +import React from 'react'; +import PropTypes from 'prop-types'; +import { observer } from 'mobx-react-lite'; +import { useStores } from 'Stores'; +import classNames from 'classnames'; +import { Button, Table, Text } from '@deriv/components'; +import { localize } from 'Components/i18next'; +import UserAvatar from 'Components/user/user-avatar'; + +const BlockUserRow = ({ row: advertiser }) => { + const { buy_sell_store, general_store, my_profile_store } = useStores(); + const { id, is_blocked, name } = advertiser; + + return ( + + +
{ + if (!general_store.is_barred) { + my_profile_store.getCounterpartyAdvertiserInfo(id); + buy_sell_store.setSelectedAdState({ + advertiser_details: { id, name }, + }); + } + }} + > + +
+ + {name} + +
+
+
+ + {is_blocked ? ( + + ) : ( + + )} + +
+ ); +}; + +BlockUserRow.propTypes = { + advertiser: PropTypes.object, +}; + +export default observer(BlockUserRow); diff --git a/packages/p2p/src/components/my-profile/block-user/block-user-table/block-user-row/block-user-row.scss b/packages/p2p/src/components/my-profile/block-user/block-user-table/block-user-row/block-user-row.scss new file mode 100644 index 000000000000..e45e609aa321 --- /dev/null +++ b/packages/p2p/src/components/my-profile/block-user/block-user-table/block-user-row/block-user-row.scss @@ -0,0 +1,61 @@ +.block-user-row { + display: grid; + padding: 1.6rem; + grid-template-columns: 1fr 1fr; + + &:hover { + background-color: var(--general-hover); + + @include mobile { + background-color: inherit; + } + } + + &__button-group { + display: flex; + justify-content: flex-end; + align-items: center; + + & button { + min-width: 9rem; + } + + &__unblock-button { + // Needed to override sticky hover in mobile + @include mobile { + &:hover { + background: transparent !important; + } + } + } + + &__block-button { + // Needed to override sticky hover in mobile + @include mobile { + &:hover { + background: transparent !important; + } + + & > span { + color: var(--brand-red-coral) !important; + } + } + } + } + + &__cell { + align-items: center; + display: flex; + cursor: pointer; + + &--barred { + cursor: not-allowed; + } + + &-container { + display: flex; + flex-direction: column; + margin-left: 0.8rem; + } + } +} diff --git a/packages/p2p/src/components/my-profile/block-user/block-user-table/block-user-row/index.js b/packages/p2p/src/components/my-profile/block-user/block-user-table/block-user-row/index.js new file mode 100644 index 000000000000..eb2f119c1a66 --- /dev/null +++ b/packages/p2p/src/components/my-profile/block-user/block-user-table/block-user-row/index.js @@ -0,0 +1,4 @@ +import BlockUserRow from './block-user-row.jsx'; +import './block-user-row.scss'; + +export default BlockUserRow; diff --git a/packages/p2p/src/components/my-profile/block-user/block-user-table/block-user-table-error.jsx b/packages/p2p/src/components/my-profile/block-user/block-user-table/block-user-table-error/block-user-table-error.jsx similarity index 84% rename from packages/p2p/src/components/my-profile/block-user/block-user-table/block-user-table-error.jsx rename to packages/p2p/src/components/my-profile/block-user/block-user-table/block-user-table-error/block-user-table-error.jsx index d76941b3e5d1..63811a0a9b67 100644 --- a/packages/p2p/src/components/my-profile/block-user/block-user-table/block-user-table-error.jsx +++ b/packages/p2p/src/components/my-profile/block-user/block-user-table/block-user-table-error/block-user-table-error.jsx @@ -12,16 +12,16 @@ const BlockUserTableError = ({ error_message }) => { return ( -
+
{ { > { const { general_store, my_profile_store } = useStores(); React.useEffect(() => { - my_profile_store.setBlockedAdvertisersList([]); - my_profile_store.getBlockedAdvertisersList(); + my_profile_store.setTradePartnersList([]); + my_profile_store.getTradePartnersList(true); my_profile_store.setSearchTerm(''); reaction( () => general_store.is_barred, () => { if (!general_store.is_barred) general_store.setBlockUnblockUserError(''); - my_profile_store.getBlockedAdvertisersList(); my_profile_store.setSearchTerm(''); + my_profile_store.getTradePartnersList(true); } ); + return () => { + my_profile_store.setTradePartnersList([]); + my_profile_store.setSearchTerm(''); + my_profile_store.setSearchResults([]); + }; + // eslint-disable-next-line react-hooks/exhaustive-deps }, []); - if (my_profile_store.is_loading) { + if (my_profile_store.is_block_user_table_loading) { return ; } - if (general_store.block_unblock_user_error && general_store.is_barred) { - return ; - } - - if (my_profile_store.search_term && my_profile_store.search_results.length === 0) { + if (my_profile_store.search_term && my_profile_store.rendered_trade_partners_list.length === 0) { return ( - + {localize('There are no matching name.')} ); } - if (my_profile_store.blocked_advertisers_list.length) { + if (my_profile_store.rendered_trade_partners_list.length) { return ( - - +
+ item.id} loadMoreRowsFn={() => {}} rowRenderer={props => } diff --git a/packages/p2p/src/components/my-profile/block-user/block-user-table/block-user-table.scss b/packages/p2p/src/components/my-profile/block-user/block-user-table/block-user-table.scss new file mode 100644 index 000000000000..5e3d20a675f1 --- /dev/null +++ b/packages/p2p/src/components/my-profile/block-user/block-user-table/block-user-table.scss @@ -0,0 +1,21 @@ +.block-user-table { + display: flex; + flex: 1; + flex-direction: column; + + @include mobile { + height: 100%; + } + + &__body { + flex: 1; + display: flex; + flex-direction: column; + } + + &__text { + display: inline-block; + padding-top: 3rem; + width: 100%; + } +} diff --git a/packages/p2p/src/components/my-profile/block-user/block-user-table/index.js b/packages/p2p/src/components/my-profile/block-user/block-user-table/index.js index 65c74e1007ef..0cd00faba6ef 100644 --- a/packages/p2p/src/components/my-profile/block-user/block-user-table/index.js +++ b/packages/p2p/src/components/my-profile/block-user/block-user-table/index.js @@ -1,4 +1,3 @@ import BlockUserTable from './block-user-table.jsx'; -import '../block-user.scss'; export default BlockUserTable; diff --git a/packages/p2p/src/components/my-profile/block-user/block-user.jsx b/packages/p2p/src/components/my-profile/block-user/block-user.jsx index b904aefddc5b..62a04e6046ca 100644 --- a/packages/p2p/src/components/my-profile/block-user/block-user.jsx +++ b/packages/p2p/src/components/my-profile/block-user/block-user.jsx @@ -2,43 +2,14 @@ import React from 'react'; import { observer } from 'mobx-react-lite'; import { useStores } from 'Stores'; import { DesktopWrapper, MobileFullPageModal, MobileWrapper } from '@deriv/components'; -import BlockUserModal from 'Components/block-user/block-user-modal'; -import BlockUserTable from 'Components/my-profile/block-user/block-user-table/block-user-table'; -import SearchBox from 'Components/search-box'; +import { isMobile } from '@deriv/shared'; import { my_profile_tabs } from 'Constants/my-profile-tabs'; -import debounce from 'lodash.debounce'; import { localize } from 'Components/i18next'; - -const BlockUserList = observer(() => { - const { general_store, my_profile_store } = useStores(); - - const loadBlockedAdvertisers = debounce(search => { - my_profile_store.setSearchTerm(search.trim()); - my_profile_store.loadMoreBlockedAdvertisers(); - }, 200); - - const onSearch = search => { - // Ensures that blocked advertisers list is not reloaded if search term entered is the same - if (my_profile_store.search_term !== search.trim()) { - my_profile_store.setIsLoading(true); - loadBlockedAdvertisers(search); - } - }; - - const onClear = () => { - my_profile_store.setSearchTerm(''); - my_profile_store.setSearchResults([]); - }; - - return ( -
- {my_profile_store.blocked_advertisers_list.length > 0 && !general_store.is_barred && ( - - )} - -
- ); -}); +import BlockUserModal from 'Components/block-user/block-user-modal'; +import BlockUserList from './block-user-list'; +import BlockUserFilterModal from './block-user-filter-modal'; +import ErrorModal from 'Components/error-modal/error-modal'; +import './block-user.scss'; const BlockUser = () => { const { general_store, my_profile_store } = useStores(); @@ -46,23 +17,32 @@ const BlockUser = () => { return ( general_store.setIsBlockUserModalOpen(false)} onSubmit={my_profile_store.onSubmit} /> + general_store.setBlockUnblockUserError('')} + width={isMobile() ? '90rem' : '40rem'} + /> + my_profile_store.setActiveTab(my_profile_tabs.MY_STATS)} > diff --git a/packages/p2p/src/components/my-profile/block-user/block-user.scss b/packages/p2p/src/components/my-profile/block-user/block-user.scss index 73e701d803a2..e2cde37cd9ce 100644 --- a/packages/p2p/src/components/my-profile/block-user/block-user.scss +++ b/packages/p2p/src/components/my-profile/block-user/block-user.scss @@ -1,27 +1,4 @@ .block-user { - &__data-list { - flex: 1; - - &__data-list-body { - flex: 1; - } - - .data-list__body-wrapper { - flex: 1; - } - } - - &__list { - display: flex; - flex: 1; - flex-direction: column; - height: 100%; - - & .search-box { - margin: 0rem 0.8rem 2.4rem; - } - } - &__modal { @include mobile { display: flex; @@ -37,84 +14,4 @@ } } } - - &__table { - display: flex; - flex: 1; - flex-direction: column; - - @include mobile { - height: 100%; - } - - &-body { - flex: 1; - display: flex; - flex-direction: column; - } - - &--error { - align-items: center; - display: flex; - flex-direction: column; - - &-icon { - margin-top: 2.2rem; - } - - &-text { - margin: 3rem 11rem; - - @include mobile { - margin: 3rem 2rem; - } - } - } - - &-header { - display: grid; - grid-template-columns: 1fr; - - > .dc-table__head:first-child { - margin-left: 1.6rem; - } - } - } - - &__text { - display: inline-block; - padding-top: 3rem; - width: 100%; - } - - &__row { - display: grid; - padding: 1.6rem; - grid-template-columns: 1fr 1fr; - - &:hover { - background-color: var(--general-hover); - - @include mobile { - background-color: inherit; - } - } - - &-button { - display: flex; - justify-content: flex-end; - align-items: center; - } - - &-cell { - align-items: center; - display: flex; - - &--container { - display: flex; - flex-direction: column; - margin-left: 0.8rem; - } - } - } } diff --git a/packages/p2p/src/components/my-profile/my-profile-content.jsx b/packages/p2p/src/components/my-profile/my-profile-content.jsx index 8fd8b6a7d2dd..4392d69f55e1 100644 --- a/packages/p2p/src/components/my-profile/my-profile-content.jsx +++ b/packages/p2p/src/components/my-profile/my-profile-content.jsx @@ -52,7 +52,7 @@ const MyProfileContent = () => { ); - } else if (my_profile_store.active_tab === my_profile_tabs.BLOCKED_ADVERTISERS) { + } else if (my_profile_store.active_tab === my_profile_tabs.MY_COUNTERPARTIES) { return ; } return ; diff --git a/packages/p2p/src/components/my-profile/my-profile-header/my-profile-header.jsx b/packages/p2p/src/components/my-profile/my-profile-header/my-profile-header.jsx index 0c43797046eb..d325cddaa315 100644 --- a/packages/p2p/src/components/my-profile/my-profile-header/my-profile-header.jsx +++ b/packages/p2p/src/components/my-profile/my-profile-header/my-profile-header.jsx @@ -23,8 +23,8 @@ const MyProfileHeader = () => { value: my_profile_tabs.AD_TEMPLATE, }, { - text: localize('Blocked advertisers'), - value: my_profile_tabs.BLOCKED_ADVERTISERS, + text: localize('My counterparties'), + value: my_profile_tabs.MY_COUNTERPARTIES, }, ]; diff --git a/packages/p2p/src/components/my-profile/my-profile-stats/my-profile-stats-table/my-profile-stats-table.scss b/packages/p2p/src/components/my-profile/my-profile-stats/my-profile-stats-table/my-profile-stats-table.scss index 23c6bfe58cc7..cb8dfb5aa5a6 100644 --- a/packages/p2p/src/components/my-profile/my-profile-stats/my-profile-stats-table/my-profile-stats-table.scss +++ b/packages/p2p/src/components/my-profile/my-profile-stats/my-profile-stats-table/my-profile-stats-table.scss @@ -2,7 +2,6 @@ border-bottom: none; grid-template-columns: repeat(4, 1fr); margin: 1.4rem 0; - overflow: auto; &.dc-table__row { height: unset; diff --git a/packages/p2p/src/components/my-profile/my-profile-stats/my-profile-stats.jsx b/packages/p2p/src/components/my-profile/my-profile-stats/my-profile-stats.jsx index eddecc10b5e8..c2857cb88ea7 100644 --- a/packages/p2p/src/components/my-profile/my-profile-stats/my-profile-stats.jsx +++ b/packages/p2p/src/components/my-profile/my-profile-stats/my-profile-stats.jsx @@ -25,8 +25,8 @@ const MyStats = () => { onClick: () => my_profile_store.setActiveTab(my_profile_tabs.AD_TEMPLATE), }, { - default_text: 'Blocked advertisers', - onClick: () => my_profile_store.setActiveTab(my_profile_tabs.BLOCKED_ADVERTISERS), + default_text: 'My counterparties', + onClick: () => my_profile_store.setActiveTab(my_profile_tabs.MY_COUNTERPARTIES), }, ]; diff --git a/packages/p2p/src/constants/my-profile-tabs.js b/packages/p2p/src/constants/my-profile-tabs.js index d36db86c19b9..2df37daa4a52 100644 --- a/packages/p2p/src/constants/my-profile-tabs.js +++ b/packages/p2p/src/constants/my-profile-tabs.js @@ -2,5 +2,5 @@ export const my_profile_tabs = Object.freeze({ MY_STATS: 'my_stats', PAYMENT_METHODS: 'payment_methods', AD_TEMPLATE: 'ad_template', - BLOCKED_ADVERTISERS: 'blocked_advertisers', + MY_COUNTERPARTIES: 'my_counterparties', }); diff --git a/packages/p2p/src/stores/advertiser-page-store.js b/packages/p2p/src/stores/advertiser-page-store.js index c2714cffc87e..d0494e15b80b 100644 --- a/packages/p2p/src/stores/advertiser-page-store.js +++ b/packages/p2p/src/stores/advertiser-page-store.js @@ -43,6 +43,7 @@ export default class AdvertiserPageStore extends BaseStore { advertiser_details: computed, advertiser_details_id: computed, advertiser_details_name: computed, + getCounterpartyAdvertiserList: action.bound, handleTabItemClick: action.bound, onCancel: action.bound, onCancelClick: action.bound, @@ -126,17 +127,46 @@ export default class AdvertiserPageStore extends BaseStore { } setAdvertiserInfo(response) { + const { general_store } = this.root_store; + if (response.error) { this.setErrorMessage(response.error); } else { const { p2p_advertiser_info } = response; this.setCounterpartyAdvertiserInfo(p2p_advertiser_info); - this.setIsCounterpartyAdvertiserBlocked(!!p2p_advertiser_info.is_blocked); + + // TODO: uncomment this when BE has fixed is_blocked flag issue for block user overlay + // this.setIsCounterpartyAdvertiserBlocked(!!p2p_advertiser_info.is_blocked); + + // TODO: remove this when above issue is fixed + this.setIsCounterpartyAdvertiserBlocked( + general_store.advertiser_relations_response.some( + advertiser => p2p_advertiser_info.id === advertiser.id + ) || !!p2p_advertiser_info.is_blocked + ); } this.setIsLoading(false); } + getCounterpartyAdvertiserList(advertiser_id) { + this.setIsLoading(true); + requestWS({ + p2p_advert_list: 1, + advertiser_id, + }).then(response => { + if (response) { + if (!response.error) { + const { list } = response.p2p_advert_list; + this.setAdverts(list.filter(advert => advert.counterparty_type === this.counterparty_type)); + } else { + this.setErrorMessage(response.error); + } + } + this.setIsLoading(false); + }); + } + handleTabItemClick(idx) { this.setActiveIndex(idx); if (idx === 0) { @@ -178,6 +208,7 @@ export default class AdvertiserPageStore extends BaseStore { !this.is_counterparty_advertiser_blocked, this.advertiser_details_id ); + if (this.is_counterparty_advertiser_blocked) this.getCounterpartyAdvertiserList(this.advertiser_details_id); this.setIsDropdownMenuVisible(false); } diff --git a/packages/p2p/src/stores/general-store.js b/packages/p2p/src/stores/general-store.js index 8bbc27edc31f..f07832388f9a 100644 --- a/packages/p2p/src/stores/general-store.js +++ b/packages/p2p/src/stores/general-store.js @@ -17,6 +17,7 @@ export default class GeneralStore extends BaseStore { advertiser_id = null; advertiser_info = {}; advertiser_sell_limit = null; + advertiser_relations_response = []; //TODO: Remove this when backend has fixed is_blocked flag issue block_unblock_user_error = ''; balance; cancels_remaining = null; @@ -69,6 +70,7 @@ export default class GeneralStore extends BaseStore { advertiser_id: observable, advertiser_buy_limit: observable, advertiser_sell_limit: observable, + advertiser_relations_response: observable, //TODO: Remove this when backend has fixed is_blocked flag issue block_unblock_user_error: observable, balance: observable, feature_level: observable, @@ -124,6 +126,7 @@ export default class GeneralStore extends BaseStore { setAdvertiserBuyLimit: action.bound, setAdvertiserSellLimit: action.bound, setAppProps: action.bound, + setAdvertiserRelationsResponse: action.bound, //TODO: Remove this when backend has fixed is_blocked flag issue setFeatureLevel: action.bound, setInactiveNotificationCount: action.bound, setIsAdvertiser: action.bound, @@ -202,6 +205,10 @@ export default class GeneralStore extends BaseStore { this.setIsBlockUserModalOpen(false); if (should_set_is_counterparty_blocked) { const { p2p_advertiser_relations } = response; + + //TODO: Remove this when backend has fixed is_blocked flag issue + this.setAdvertiserRelationsResponse(p2p_advertiser_relations.blocked_advertisers); + advertiser_page_store.setIsCounterpartyAdvertiserBlocked( p2p_advertiser_relations.blocked_advertisers.some(ad => ad.id === advertiser_id) ); @@ -585,6 +592,11 @@ export default class GeneralStore extends BaseStore { this.props = props; } + //TODO: Remove this when backend has fixed is_blocked flag issue + setAdvertiserRelationsResponse(advertiser_relations_response) { + this.advertiser_relations_response = advertiser_relations_response; + } + setBlockUnblockUserError(block_unblock_user_error) { this.block_unblock_user_error = block_unblock_user_error; } diff --git a/packages/p2p/src/stores/my-profile-store.js b/packages/p2p/src/stores/my-profile-store.js index e9d5ff68df01..90e70a316e61 100644 --- a/packages/p2p/src/stores/my-profile-store.js +++ b/packages/p2p/src/stores/my-profile-store.js @@ -4,6 +4,7 @@ import { localize } from 'Components/i18next'; import { textValidator } from 'Utils/validations'; import BaseStore from 'Stores/base_store'; import { my_profile_tabs } from 'Constants/my-profile-tabs'; +import { isMobile } from '@deriv/shared'; export default class MyProfileStore extends BaseStore { active_tab = my_profile_tabs.MY_STATS; @@ -11,16 +12,17 @@ export default class MyProfileStore extends BaseStore { advertiser_payment_methods = {}; advertiser_payment_methods_error = ''; available_payment_methods = {}; - blocked_advertisers_list = []; delete_error_message = ''; error_message = ''; form_error = ''; full_name = ''; + is_block_user_table_loading = false; is_button_loading = false; is_cancel_add_payment_method_modal_open = false; is_cancel_edit_payment_method_modal_open = false; is_confirm_delete_modal_open = false; is_delete_payment_method_error_modal_open = false; + is_filter_modal_open = false; is_loading = false; is_submit_success = false; payment_method_value = undefined; @@ -29,15 +31,17 @@ export default class MyProfileStore extends BaseStore { payment_method_to_edit = {}; search_results = []; search_term = ''; - selected_blocked_user = {}; selected_payment_method = ''; selected_payment_method_display_name = ''; selected_payment_method_fields = []; selected_payment_method_type = ''; + selected_sort_value = 'all_users'; + selected_trade_partner = {}; should_hide_my_profile_tab = false; should_show_add_payment_method_error_modal = false; should_show_add_payment_method_form = false; should_show_edit_payment_method_form = false; + trade_partners_list = []; // TODO: Refactor this out once modal management refactoring is completed MODAL_TRANSITION_DURATION = 280; @@ -52,16 +56,17 @@ export default class MyProfileStore extends BaseStore { advertiser_payment_methods: observable, advertiser_payment_methods_error: observable, available_payment_methods: observable, - blocked_advertisers_list: observable, delete_error_message: observable, error_message: observable, form_error: observable, full_name: observable, + is_block_user_table_loading: observable, is_button_loading: observable, is_cancel_add_payment_method_modal_open: observable, is_cancel_edit_payment_method_modal_open: observable, is_confirm_delete_modal_open: observable, is_delete_payment_method_error_modal_open: observable, + is_filter_modal_open: observable, is_loading: observable, is_submit_success: observable, payment_method_value: observable, @@ -70,36 +75,43 @@ export default class MyProfileStore extends BaseStore { payment_method_to_edit: observable, search_results: observable, search_term: observable, - selected_blocked_user: observable, selected_payment_method: observable, selected_payment_method_display_name: observable, selected_payment_method_fields: observable, selected_payment_method_type: observable, + selected_sort_value: observable, + selected_trade_partner: observable, should_hide_my_profile_tab: observable, should_show_add_payment_method_error_modal: observable, should_show_add_payment_method_form: observable, should_show_edit_payment_method_form: observable, + trade_partners_list: observable, advertiser_has_payment_methods: computed, advertiser_payment_methods_list: computed, + block_user_sort_list: computed, payment_method_field_set: computed, initial_values: computed, payment_method_info: computed, payment_methods_list_items: computed, payment_methods_list_methods: computed, payment_methods_list_values: computed, - rendered_blocked_advertisers_list: computed, + rendered_trade_partners_list: computed, + trade_partner_dropdown_list: computed, createPaymentMethod: action.bound, - getBlockedAdvertisersList: action.bound, getAdvertiserPaymentMethods: action.bound, + getCounterpartyAdvertiserInfo: action.bound, getPaymentMethodsList: action.bound, getPaymentMethodDisplayName: action.bound, getPaymentMethodValue: action.bound, + getSearchedTradePartners: action.bound, getSelectedPaymentMethodDetails: action.bound, + getTradePartnersList: action.bound, + handleChange: action.bound, handleSubmit: action.bound, handleToggle: action.bound, hideAddPaymentMethodForm: action.bound, - loadMoreBlockedAdvertisers: action.bound, onClickDelete: action.bound, + onClear: action.bound, validatePaymentMethodFields: action.bound, updatePaymentMethod: action.bound, showAddPaymentMethodForm: action.bound, @@ -111,16 +123,17 @@ export default class MyProfileStore extends BaseStore { setAdvertiserPaymentMethods: action.bound, setAdvertiserPaymentMethodsError: action.bound, setAvailablePaymentMethods: action.bound, - setBlockedAdvertisersList: action.bound, setDefaultAdvertDescription: action.bound, setDeleteErrorMessage: action.bound, setErrorMessage: action.bound, setFormError: action.bound, setFullName: action.bound, + setIsBlockUserTableLoading: action.bound, setIsCancelAddPaymentMethodModalOpen: action.bound, setIsCancelEditPaymentMethodModalOpen: action.bound, setIsConfirmDeleteModalOpen: action.bound, setIsDeletePaymentMethodErrorModalOpen: action.bound, + setIsFilterModalOpen: action.bound, setIsLoading: action.bound, setIsSubmitSuccess: action.bound, setPaymentMethodValue: action.bound, @@ -129,15 +142,17 @@ export default class MyProfileStore extends BaseStore { setPaymentMethodToEdit: action.bound, setSearchResults: action.bound, setSearchTerm: action.bound, - setSelectedBlockedUser: action.bound, setSelectedPaymentMethod: action.bound, setSelectedPaymentMethodDisplayName: action.bound, setSelectedPaymentMethodFields: action.bound, setSelectedPaymentMethodType: action.bound, + setSelectedSortValue: action.bound, + setSelectedTradePartner: action.bound, setShouldHideMyProfileTab: action.bound, setShouldShowAddPaymentMethodErrorModal: action.bound, setShouldShowAddPaymentMethodForm: action.bound, setShouldShowEditPaymentMethodForm: action.bound, + setTradePartnersList: action.bound, }); } @@ -161,6 +176,25 @@ export default class MyProfileStore extends BaseStore { return list; } + get block_user_sort_list() { + return [ + { + text: localize('All ({{list_value}})', { + list_value: this.is_block_user_table_loading ? '...' : this.trade_partner_dropdown_list.length, + }), + value: 'all_users', + }, + { + text: localize('Blocked ({{list_value}})', { + list_value: this.is_block_user_table_loading + ? '...' + : this.trade_partner_dropdown_list.filter(partner => partner.is_blocked === 1).length, + }), + value: 'blocked_users', + }, + ]; + } + get payment_method_field_set() { // The fields are rendered dynamically based on the response. This variable will hold a dictionary of field id and its name/required properties return this.selected_payment_method_fields.reduce((dict, field_data) => { @@ -230,16 +264,29 @@ export default class MyProfileStore extends BaseStore { } /** - * Evaluates a new blocked_advertiser_list based on if the user has searched a blocked advertiser - * By default it returns the blocked_advertisers_list when there are no searches + * Evaluates a new trade_partners_list based on if the user has searched an advertiser + * By default it returns the trade_partners_list when there are no searches * - * @returns {Array} Either the entire blocked advertisers list or filtered advertisers list by search term + * @returns {Array} Returns the entire trade partners list or filtered list of searched trade partners */ - get rendered_blocked_advertisers_list() { + get rendered_trade_partners_list() { if (this.search_term) { - return this.search_results; + return this.selected_sort_value === 'all_users' + ? this.search_results + : this.search_results.filter(partner => partner.is_blocked === 1); } - return this.blocked_advertisers_list; + return this.selected_sort_value === 'all_users' + ? this.trade_partners_list + : this.trade_partners_list.filter(partner => partner.is_blocked === 1); + } + + get trade_partner_dropdown_list() { + if (this.search_term) { + if (this.search_results.length) return this.search_results; + else if (this.search_results.length === 0) return []; + } + + return this.trade_partners_list; } createPaymentMethod(values, { setSubmitting }) { @@ -282,23 +329,6 @@ export default class MyProfileStore extends BaseStore { }); } - getBlockedAdvertisersList() { - this.setIsLoading(true); - requestWS({ - p2p_advertiser_relations: 1, - }).then(response => { - if (response) { - if (!response.error) { - this.setBlockedAdvertisersList(response.p2p_advertiser_relations?.blocked_advertisers); - this.loadMoreBlockedAdvertisers(); - } else { - this.root_store.general_store.setBlockUnblockUserError(response.error.message); - } - } - this.setIsLoading(false); - }); - } - getAdvertiserPaymentMethods() { this.setIsLoading(true); requestWS({ @@ -313,6 +343,23 @@ export default class MyProfileStore extends BaseStore { }); } + getCounterpartyAdvertiserInfo(advertiser_id) { + const { advertiser_page_store, buy_sell_store, general_store } = this.root_store; + requestWS({ + p2p_advertiser_info: 1, + id: advertiser_id, + }).then(response => { + if (response) { + if (!response.error) { + advertiser_page_store.setCounterpartyAdvertiserInfo(response.p2p_advertiser_info); + buy_sell_store.setShowAdvertiserPage(true); + } else { + general_store.setBlockUnblockUserError(response.error.message); + } + } + }); + } + getPaymentMethodsList() { requestWS({ p2p_payment_methods: 1, @@ -394,6 +441,40 @@ export default class MyProfileStore extends BaseStore { } }); } + + getTradePartnersList(is_initial_load = false) { + const { general_store } = this.root_store; + + if (is_initial_load) this.setIsBlockUserTableLoading(true); + + requestWS({ + p2p_advertiser_list: 1, + trade_partners: 1, + ...(this.search_term ? { advertiser_name: this.search_term } : {}), + }).then(response => { + if (response) { + if (!response.error) { + const { list } = response.p2p_advertiser_list; + + if (this.search_term) this.setSearchResults(list); + else this.setTradePartnersList(list); + } else { + general_store.setBlockUnblockUserError(response.error.message); + } + } + this.setIsBlockUserTableLoading(false); + }); + } + + handleChange(e) { + this.setSelectedSortValue(e.target.value); + this.getTradePartnersList(true); + + if (isMobile()) { + this.setIsFilterModalOpen(false); + } + } + handleSubmit(values) { requestWS({ p2p_advertiser_update: 1, @@ -411,6 +492,7 @@ export default class MyProfileStore extends BaseStore { }, 3000); }); } + handleToggle() { this.root_store.general_store.setShouldShowRealName(!this.root_store?.general_store?.should_show_real_name); requestWS({ @@ -431,23 +513,12 @@ export default class MyProfileStore extends BaseStore { } /** - * This function loads more blocked advertisers as necessary if the user is searching for a blocked advertiser - * It updates the search_results based on the searched advertiser + * This function updates the search_results based on the searched advertiser */ - loadMoreBlockedAdvertisers() { + getSearchedTradePartners() { if (this.search_term) { - const search_results = this.blocked_advertisers_list.filter(blocked_advertiser => - blocked_advertiser.name.toLowerCase().includes(this.search_term.toLowerCase().trim()) - ); - - // if user deletes the last blocked advertiser while searching, display 'You have no blocked advertisers' message condition - if (this.search_term && search_results.length === 0 && this.blocked_advertisers_list.length === 0) { - this.setSearchTerm(''); - } - - this.setSearchResults(search_results); + this.getTradePartnersList(true); } - this.setIsLoading(false); } onClickDelete() { @@ -468,11 +539,19 @@ export default class MyProfileStore extends BaseStore { }); } + onClear() { + if (this.search_term) { + this.setSearchTerm(''); + this.setSearchResults([]); + this.getTradePartnersList(true); + } + } + onClickUnblock(advertiser) { const { general_store } = this.root_store; general_store.setIsBlockUserModalOpen(true); - this.setSelectedBlockedUser(advertiser); + this.setSelectedTradePartner(advertiser); } onEditDeletePaymentMethodCard(event, payment_method) { @@ -492,8 +571,8 @@ export default class MyProfileStore extends BaseStore { clearTimeout(delay); general_store.setIsBlockUserModalOpen(false); - general_store.blockUnblockUser(false, this.selected_blocked_user.id); - const delay = setTimeout(() => this.getBlockedAdvertisersList(), 250); + general_store.blockUnblockUser(!this.selected_trade_partner.is_blocked, this.selected_trade_partner.id); + const delay = setTimeout(() => this.getTradePartnersList(), 250); } showAddPaymentMethodForm() { @@ -615,10 +694,6 @@ export default class MyProfileStore extends BaseStore { this.available_payment_methods = available_payment_methods; } - setBlockedAdvertisersList(blocked_advertisers_list) { - this.blocked_advertisers_list = blocked_advertisers_list; - } - setDefaultAdvertDescription(default_advert_description) { this.default_advert_description = default_advert_description; } @@ -639,6 +714,10 @@ export default class MyProfileStore extends BaseStore { this.full_name = full_name; } + setIsBlockUserTableLoading(is_block_user_table_loading) { + this.is_block_user_table_loading = is_block_user_table_loading; + } + setIsCancelAddPaymentMethodModalOpen(is_cancel_add_payment_method_modal_open) { this.is_cancel_add_payment_method_modal_open = is_cancel_add_payment_method_modal_open; } @@ -655,6 +734,10 @@ export default class MyProfileStore extends BaseStore { this.is_delete_payment_method_error_modal_open = is_delete_payment_method_error_modal_open; } + setIsFilterModalOpen(is_filter_modal_open) { + this.is_filter_modal_open = is_filter_modal_open; + } + setIsLoading(is_loading) { this.is_loading = is_loading; } @@ -687,10 +770,6 @@ export default class MyProfileStore extends BaseStore { this.search_term = search_term; } - setSelectedBlockedUser(selected_blocked_user) { - this.selected_blocked_user = selected_blocked_user; - } - setSelectedPaymentMethod(selected_payment_method) { this.selected_payment_method = selected_payment_method; } @@ -707,6 +786,14 @@ export default class MyProfileStore extends BaseStore { this.selected_payment_method_type = selected_payment_method_type; } + setSelectedSortValue(selected_sort_value) { + this.selected_sort_value = selected_sort_value; + } + + setSelectedTradePartner(selected_trade_partner) { + this.selected_trade_partner = selected_trade_partner; + } + setShouldHideMyProfileTab(should_hide_my_profile_tab) { this.should_hide_my_profile_tab = should_hide_my_profile_tab; } @@ -722,4 +809,8 @@ export default class MyProfileStore extends BaseStore { setShouldShowEditPaymentMethodForm(should_show_edit_payment_method_form) { this.should_show_edit_payment_method_form = should_show_edit_payment_method_form; } + + setTradePartnersList(trade_partners_list) { + this.trade_partners_list = trade_partners_list; + } } From f0821b01350808ae118f8e0cbfd157c38cb95aed Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 27 Jan 2023 11:01:41 +0400 Subject: [PATCH 79/84] =?UTF-8?q?translations:=20=F0=9F=93=9A=20sync=20tra?= =?UTF-8?q?nslations=20with=20crowdin=20(#7446)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: DerivFE <80095553+DerivFE@users.noreply.github.com> --- packages/p2p/crowdin/messages.json | 2 +- packages/p2p/src/translations/es.json | 8 ++- packages/p2p/src/translations/fr.json | 8 ++- packages/p2p/src/translations/id.json | 8 ++- packages/p2p/src/translations/it.json | 8 ++- packages/p2p/src/translations/pl.json | 8 ++- packages/p2p/src/translations/pt.json | 8 ++- packages/p2p/src/translations/ru.json | 8 ++- packages/p2p/src/translations/th.json | 10 ++-- packages/p2p/src/translations/tr.json | 8 ++- packages/p2p/src/translations/vi.json | 20 ++++--- packages/p2p/src/translations/zh_cn.json | 14 +++-- packages/p2p/src/translations/zh_tw.json | 12 +++-- .../translations/src/translations/vi.json | 52 +++++++++---------- 14 files changed, 111 insertions(+), 63 deletions(-) diff --git a/packages/p2p/crowdin/messages.json b/packages/p2p/crowdin/messages.json index 59db76fb96d0..91d6b9c8dc5e 100644 --- a/packages/p2p/crowdin/messages.json +++ b/packages/p2p/crowdin/messages.json @@ -1 +1 @@ -{"6794664":"Ads that match your Deriv P2P balance and limit.","19789721":"Nobody has blocked you. Yay!","21103557":"Deriv P2P balance = deposits that can’t be reversed (bank transfers, etc.) + a portion of deposits that might be reversed (credit card payments, etc.)","24711354":"Total orders <0>30d | <1>lifetime","47573834":"Fixed rate (1 {{account_currency}})","50672601":"Bought","51881712":"You already have an ad with the same exchange rate for this currency pair and order type.

Please set a different rate for your ad.","55916349":"All","68867477":"Order ID {{ id }}","121738739":"Send","122280248":"Avg release time <0>30d","134205943":"Your ads with fixed rates have been deactivated. Set floating rates to reactivate them.","140800401":"Float","145959105":"Choose a nickname","150156106":"Save changes","159757877":"You won't see {{advertiser_name}}'s ads anymore and they won't be able to place orders on your ads.","170072126":"Seen {{ duration }} days ago","173939998":"Avg. pay time <0>30d","197477687":"Edit {{ad_type}} ad","203271702":"Try again","231473252":"Preferred currency","233677840":"of the market rate","246815378":"Once set, your nickname cannot be changed.","276261353":"Avg pay time <0>30d","316725580":"You can no longer rate this transaction.","323002325":"Post ad","324970564":"Seller's contact details","338910048":"You will appear to other users as","358133589":"Unblock {{advertiser_name}}?","364681129":"Contact details","392469164":"You have blocked {{advertiser_name}}.","407600801":"Have you paid {{amount}} {{currency}} to {{other_user_name}}?","416167062":"You'll receive","424668491":"expired","439264204":"Please set a different minimum and/or maximum order limit.

The range of your ad should not overlap with any of your active ads.","452752527":"Rate (1 {{ currency }})","460477293":"Enter message","464044457":"Buyer's nickname","473688701":"Enter a valid amount","476023405":"Didn't receive the email?","488150742":"Resend email","498500965":"Seller's nickname","501523417":"You have no orders.","517202770":"Set fixed rate","523301614":"Release {{amount}} {{currency}}","525380157":"Buy {{offered_currency}} order","531912261":"Bank name, account number, beneficiary name","554135844":"Edit","560402954":"User rating","565060416":"Exchange rate","580715136":"Please register with us!","587882987":"Advertisers","611376642":"Clear","612069973":"Would you recommend this buyer?","628581263":"The {{local_currency}} market rate has changed.","649549724":"I’ve not received any payment.","661808069":"Resend email {{remaining_time}}","662578726":"Available","671582270":"Max available amount is {{value}}","683273691":"Rate (1 {{ account_currency }})","723172934":"Looking to buy or sell USD? You can post your own ad for others to respond.","728383001":"I’ve received more than the agreed amount.","733311523":"P2P transactions are locked. This feature is not available for payment agents.","767789372":"Wait for payment","782834680":"Time left","783454335":"Yes, remove","830703311":"My profile","834075131":"Blocked advertisers","838024160":"Bank details","842911528":"Don’t show this message again.","858027714":"Seen {{ duration }} minutes ago","873437248":"Instructions (optional)","876086855":"Complete the financial assessment form","881351325":"Would you recommend this seller?","887667868":"Order","949859957":"Submit","954233511":"Sold","957529514":"To place an order, add one of the advertiser’s preferred payment methods:","988380202":"Your instructions","1001160515":"Sell","1002264993":"Seller's real name","1020552673":"You're creating an ad to buy <0>{{ target_amount }} {{ target_currency }}...","1030390916":"You already have an ad with this range","1035893169":"Delete","1052094244":"Max order","1057127276":"{{- avg_release_time_in_minutes}} min","1065551550":"Set floating rate","1080990424":"Confirm","1089110190":"You accidentally gave us another email address (usually a work or a personal one instead of the one you meant).","1091533736":"Don't risk your funds with cash transactions. Use bank transfers or e-wallets instead.","1103731601":"Your ads are paused","1106073960":"You've created an ad","1106485202":"Available Deriv P2P balance","1119887091":"Verification","1121630246":"Block","1137964885":"Can only contain letters, numbers, and special characters .- _ @.","1151608942":"Total amount","1157877436":"{{field_name}} should not exceed Amount","1161621759":"Choose your nickname","1162965175":"Buyer","1163072833":"<0>ID verified","1191941618":"Enter a value that's within -{{limit}}% to +{{limit}}%","1192337383":"Seen {{ duration }} hour ago","1202500203":"Pay now","1228352589":"Not rated yet","1229976478":"You will be able to see {{ advertiser_name }}'s ads. They'll be able to place orders on your ads, too.","1236083813":"Your payment details","1258285343":"Oops, something went wrong","1265751551":"Deriv P2P Balance","1286797620":"Active","1287051975":"Nickname is too long","1303016265":"Yes","1313218101":"Rate this transaction","1314266187":"Joined today","1326475003":"Activate","1328352136":"Sell {{ account_currency }}","1330528524":"Seen {{ duration }} month ago","1337027601":"You sold {{offered_amount}} {{offered_currency}}","1347322213":"How would you rate this transaction?","1347724133":"I have paid {{amount}} {{currency}}.","1366244749":"Limits","1370999551":"Floating rate","1371193412":"Cancel","1381949324":"<0>Address verified","1398938904":"We can't deliver the email to this address (usually because of firewalls or filtering).","1422356389":"No results for \"{{text}}\".","1430413419":"Maximum is {{value}} {{currency}}","1438103743":"Floating rates are enabled for {{local_currency}}. Ads with fixed rates will be deactivated. Switch to floating rates by {{end_date}}.","1448855725":"Add payment methods","1452260922":"Too many failed attempts","1467483693":"Past orders","1474532322":"Sort by","1480915523":"Skip","1497156292":"No ads for this currency 😞","1505293001":"Trade partners","1529843851":"The verification link expires in 10 minutes","1583335572":"If the ad doesn't receive an order for {{adverts_archive_period}} days, it will be deactivated.","1587250288":"Ad ID {{advert_id}} ","1607051458":"Search by nickname","1615530713":"Something's not right","1620858613":"You're editing an ad to sell <0>{{ target_amount }} {{ target_currency }} for <0>{{ local_amount }} {{ local_currency }} <1>({{ price_rate }} {{local_currency}}/{{ target_currency }})","1623916605":"I wasn’t able to make full payment.","1654365787":"Unknown","1660278694":"The advertiser changed the rate before you confirmed the order.","1671725772":"If you choose to cancel, the edited details will be lost.","1675716253":"Min limit","1678804253":"Buy {{ currency }}","1691540875":"Edit payment method","1703154819":"You're editing an ad to sell <0>{{ target_amount }} {{ target_currency }}...","1721422292":"Show my real name","1734661732":"Your DP2P balance is {{ dp2p_balance }}","1738504192":"E-wallet","1747523625":"Go back","1752096323":"{{field_name}} should not be below Min limit","1767817594":"Buy completion <0>30d","1784151356":"at","1791767028":"Set a fixed rate for your ad.","1794470010":"I’ve made full payment, but the seller hasn’t released the funds.","1794474847":"I've received payment","1798116519":"Available amount","1809099720":"Expand all","1842172737":"You've received {{offered_amount}} {{offered_currency}}","1848044659":"You have no ads.","1859308030":"Give feedback","1874956952":"Hit the button below to add payment methods.","1886623509":"{{ad_type}} {{ account_currency }}","1923443894":"Inactive","1928240840":"Sell {{ currency }}","1976156928":"You'll send","1992961867":"Rate (1 {{currency}})","1994023526":"The email address you entered had a mistake or typo (happens to the best of us).","2020104747":"Filter","2029375371":"Payment instructions","2032274854":"Recommended by {{recommended_count}} traders","2039361923":"You're creating an ad to sell...","2060873863":"Your order {{order_id}} is complete","2063890788":"Cancelled","2091671594":"Status","2096014107":"Apply","2121837513":"Minimum is {{value}} {{currency}}","2142425493":"Ad ID","2144972362":"Please use live chat to contact our Customer Support team for help.","2145292295":"Rate","-1540251249":"Buy {{ account_currency }}","-1267880283":"{{field_name}} is required","-2019083683":"{{field_name}} can only include letters, numbers, spaces, and any of these symbols: -+.,'#@():;","-222920564":"{{field_name}} has exceeded maximum length","-2093768906":"{{name}} has released your funds.
Would you like to give your feedback?","-857786650":"Check your verification status.","-612892886":"We’ll need you to upload your documents to verify your identity.","-2090325029":"Identity verification is complete.","-1101273282":"Nickname is required","-919203928":"Nickname is too short","-1907100457":"Cannot start, end with, or repeat special characters.","-270502067":"Cannot repeat a character more than 4 times.","-499872405":"You have open orders for this ad. Complete all open orders before deleting this ad.","-2125702445":"Instructions","-1274358564":"Max limit","-1995606668":"Amount","-1965472924":"Fixed rate","-1081775102":"{{field_name}} should not be below Max limit","-885044836":"{{field_name}} should not exceed Max limit","-1764050750":"Payment details","-2021135479":"This field is required.","-2005205076":"{{field_name}} has exceeded maximum length of 200 characters.","-480724783":"You already have an ad with this rate","-1207312691":"Completed","-688728873":"Expired","-1951641340":"Under dispute","-1738697484":"Confirm payment","-1611857550":"Waiting for the seller to confirm","-1452684930":"Buyer's real name","-1597110099":"Receive","-892663026":"Your contact details","-1875343569":"Seller's payment details","-92830427":"Seller's instructions","-1940034707":"Buyer's instructions","-137444201":"Buy","-1306639327":"Payment methods","-1102534097":"No ads","-904197848":"Limits {{min_order_amount_limit_display}}-{{max_order_amount_limit_display}} {{currency}}","-464361439":"{{- avg_buy_time_in_minutes}} min","-2109576323":"Sell completion <0>30d","-165392069":"Avg. release time <0>30d","-1154208372":"Trade volume <0>30d","-1845037007":"Advertiser's page","-1070228546":"Joined {{days_since_joined}}d","-2015102262":"({{number_of_ratings}} rating)","-1412298133":"({{number_of_ratings}} ratings)","-260332243":"{{user_blocked_count}} person has blocked you","-117094654":"{{user_blocked_count}} people have blocked you","-329713179":"Ok","-1689905285":"Unblock","-1837059346":"Buy / Sell","-494667560":"Orders","-679691613":"My ads","-1426771335":"You have no blocked advertisers","-1530773708":"Block {{advertiser_name}}?","-1148912768":"If the market rate changes from the rate shown here, we won't be able to process your order.","-55126326":"Seller","-835196958":"Receive payment to","-1218007718":"You may choose up to 3.","-1933432699":"Enter {{transaction_type}} amount","-2021730616":"{{ad_type}}","-490637584":"Limit: {{min}}–{{max}} {{currency}}","-1974067943":"Your bank details","-1285759343":"Search","-2035037071":"Your Deriv P2P balance isn't enough. Please increase your balance before trying again.","-412680608":"Add payment method","-1657433201":"There are no matching ads.","-1862812590":"Limits {{ min_order }}–{{ max_order }} {{ currency }}","-375836822":"Buy {{account_currency}}","-1035421133":"Sell {{account_currency}}","-1503997652":"No ads for this currency.","-1048001140":"No results for \"{{value}}\".","-227512949":"Check your spelling or use a different term.","-1554938377":"Search payment method","-75934135":"Matching ads","-1856204727":"Reset","-73663931":"Create ad","-141315849":"No ads for this currency at the moment 😞","-1638172550":"To enable this feature you must complete the following:","-559300364":"Your Deriv P2P cashier is blocked","-2124584325":"We've verified your order","-878014035":"Please ensure you've received {{amount}} {{currency}} in your account and hit Confirm to complete the transaction.","-1968971120":"We've sent you an email at {{email_address}}.<0 />Please click the verification link in the email to verify your order.","-142727028":"The email is in your spam folder (sometimes things get lost there).","-740038242":"Your rate is","-1728351486":"Invalid verification link","-1088454544":"Get new link","-674715853":"Your ad exceeds the daily limit","-744406":"Your ad is not listed on <0>Buy/Sell because the amount exceeds your daily limit of {{limit}} {{currency}}.\n <1 /><1 />You can still see your ad on <0>My ads. If you’d like to increase your daily limit, please contact us via <2>live chat.","-984140537":"Add","-1072444041":"Update ad","-1406830100":"Payment method","-1561775203":"Buy {{currency}}","-1527285935":"Sell {{currency}}","-592818187":"Your Deriv P2P balance is {{ dp2p_balance }}","-1654157453":"Fixed rate (1 {{currency}})","-379708059":"Min order","-1459289144":"This information will be visible to everyone.","-207756259":"You may tap and choose up to 3.","-1282343703":"You're creating an ad to buy <0>{{ target_amount }} {{ target_currency }} for <0>{{ local_amount }} {{ local_currency }} <1>({{ price_rate }} {{local_currency}}/{{ target_currency }})","-2139632895":"You're creating an ad to sell <0>{{ target_amount }} {{ target_currency }} for <0>{{ local_amount }} {{ local_currency }} <1>({{ price_rate }} {{local_currency}}/{{ target_currency }})","-40669120":"You're creating an ad to sell <0>{{ target_amount }} {{ target_currency }}...","-514789442":"You're creating an ad to buy...","-1179827369":"Create new ad","-1601971804":"Cancel your edits?","-1571737200":"Don't cancel","-230677679":"{{text}}","-1914431773":"You're editing an ad to buy <0>{{ target_amount }} {{ target_currency }} for <0>{{ local_amount }} {{ local_currency }} <1>({{ price_rate }} {{local_currency}}/{{ target_currency }})","-107996509":"You're editing an ad to buy <0>{{ target_amount }} {{ target_currency }}...","-863580260":"You're editing an ad to buy...","-1396464057":"You're editing an ad to sell...","-392043307":"Do you want to delete this ad?","-854930519":"You will NOT be able to restore it.","-1600783504":"Set a floating rate for your ad.","-372210670":"Rate (1 {{account_currency}})","-1400835517":"{{ad_type}} {{ id }}","-1318334333":"Deactivate","-1667041441":"Rate (1 {{ offered_currency }})","-1886565882":"Your ads with floating rates have been deactivated. Set fixed rates to reactivate them.","-792015701":"Deriv P2P cashier is unavailable in your country.","-1220275347":"You may choose up to 3 payment methods for this ad.","-1889014820":"<0>Don’t see your payment method? <1>Add new.","-806152028":"Your ads are running","-1007339977":"There are no matching name.","-179005984":"Save","-2059312414":"Ad details","-1769584466":"Stats","-2090878601":"Daily limit","-130547447":"Trade volume <0>30d | <1>lifetime","-1792280476":"Choose your payment method","-293182503":"Cancel adding this payment method?","-1850127397":"If you choose to cancel, the details you’ve entered will be lost.","-383030149":"You haven’t added any payment methods yet","-1422779483":"That payment method cannot be deleted","-1269362917":"Add new","-146021156":"Delete {{payment_method_name}}?","-1846700504":"Are you sure you want to remove this payment method?","-231863107":"No","-532709160":"Your nickname","-1117584385":"Seen more than 6 months ago","-1766199849":"Seen {{ duration }} months ago","-591593016":"Seen {{ duration }} day ago","-1586918919":"Seen {{ duration }} hours ago","-664781013":"Seen {{ duration }} minute ago","-1717650468":"Online","-2008992756":"Do you want to cancel this order?","-1666369246":"If you cancel your order {{cancellation_limit}} times in {{cancellation_period}} hours, you will be blocked from using Deriv P2P for {{block_duration}} hours.
({{number_of_cancels_remaining}} cancellations remaining.)","-1618084450":"If you cancel this order, you'll be blocked from using Deriv P2P for {{block_duration}} hours.","-2026176944":"Please do not cancel if you have already made payment.","-1989544601":"Cancel this order","-492996224":"Do not cancel","-510341549":"I’ve received less than the agreed amount.","-650030360":"I’ve paid more than the agreed amount.","-1192446042":"If your complaint isn't listed here, please contact our Customer Support team.","-573132778":"Complaint","-792338456":"What's your complaint?","-1447732068":"Payment confirmation","-1485778481":"Have you received payment?","-403938778":"Please confirm only after checking your bank or e-wallet account to make sure you have received payment.","-1875011752":"Yes, I've paid","-1146269362":"I've received {{amount}} {{currency}}","-563116612":"I haven't paid yet","-418870584":"Cancel order","-1392383387":"I've paid","-727273667":"Complain","-2016990049":"Sell {{offered_currency}} order","-811190405":"Time","-961632398":"Collapse all","-415476028":"Not rated","-26434257":"You have until {{remaining_review_time}} GMT to rate this transaction.","-768709492":"Your transaction experience","-652933704":"Recommended","-84139378":"Not Recommended","-1983512566":"This conversation is closed.","-1797318839":"In case of a dispute, we will only consider the communication through Deriv P2P chat channel.","-283017497":"Retry","-979459594":"Buy/Sell","-2052184983":"Order ID","-2096350108":"Counterparty","-750202930":"Active orders","-1626659964":"I've received {{amount}} {{currency}}.","-1340125291":"Done","-237014436":"Recommended by {{recommended_count}} trader","-1463630097":"Recommended by 0 traders","-2054589794":"You've been temporarily barred from using our services due to multiple cancellation attempts. Try again after {{date_time}} GMT.","-1079963355":"trades","-930400128":"To use Deriv P2P, you need to choose a display name (a nickname) and verify your identity."} \ No newline at end of file +{"6794664":"Ads that match your Deriv P2P balance and limit.","19789721":"Nobody has blocked you. Yay!","21103557":"Deriv P2P balance = deposits that can’t be reversed (bank transfers, etc.) + a portion of deposits that might be reversed (credit card payments, etc.)","24711354":"Total orders <0>30d | <1>lifetime","47573834":"Fixed rate (1 {{account_currency}})","50672601":"Bought","51881712":"You already have an ad with the same exchange rate for this currency pair and order type.

Please set a different rate for your ad.","55916349":"All","68867477":"Order ID {{ id }}","121738739":"Send","122280248":"Avg release time <0>30d","134205943":"Your ads with fixed rates have been deactivated. Set floating rates to reactivate them.","140800401":"Float","145959105":"Choose a nickname","150156106":"Save changes","159757877":"You won't see {{advertiser_name}}'s ads anymore and they won't be able to place orders on your ads.","170072126":"Seen {{ duration }} days ago","173939998":"Avg. pay time <0>30d","197477687":"Edit {{ad_type}} ad","203271702":"Try again","231473252":"Preferred currency","233677840":"of the market rate","246815378":"Once set, your nickname cannot be changed.","276261353":"Avg pay time <0>30d","316725580":"You can no longer rate this transaction.","323002325":"Post ad","324970564":"Seller's contact details","338910048":"You will appear to other users as","358133589":"Unblock {{advertiser_name}}?","364681129":"Contact details","392469164":"You have blocked {{advertiser_name}}.","407600801":"Have you paid {{amount}} {{currency}} to {{other_user_name}}?","416167062":"You'll receive","424668491":"expired","439264204":"Please set a different minimum and/or maximum order limit.

The range of your ad should not overlap with any of your active ads.","452752527":"Rate (1 {{ currency }})","460477293":"Enter message","464044457":"Buyer's nickname","473688701":"Enter a valid amount","476023405":"Didn't receive the email?","488150742":"Resend email","498500965":"Seller's nickname","501523417":"You have no orders.","517202770":"Set fixed rate","523301614":"Release {{amount}} {{currency}}","525380157":"Buy {{offered_currency}} order","531912261":"Bank name, account number, beneficiary name","554135844":"Edit","560402954":"User rating","565060416":"Exchange rate","580715136":"Please register with us!","587882987":"Advertisers","611376642":"Clear","612069973":"Would you recommend this buyer?","628581263":"The {{local_currency}} market rate has changed.","649549724":"I’ve not received any payment.","661808069":"Resend email {{remaining_time}}","662578726":"Available","671582270":"Max available amount is {{value}}","683273691":"Rate (1 {{ account_currency }})","723172934":"Looking to buy or sell USD? You can post your own ad for others to respond.","728383001":"I’ve received more than the agreed amount.","733311523":"P2P transactions are locked. This feature is not available for payment agents.","767789372":"Wait for payment","782834680":"Time left","783454335":"Yes, remove","830703311":"My profile","834075131":"Blocked advertisers","838024160":"Bank details","842911528":"Don’t show this message again.","858027714":"Seen {{ duration }} minutes ago","873437248":"Instructions (optional)","876086855":"Complete the financial assessment form","881351325":"Would you recommend this seller?","887667868":"Order","949859957":"Submit","954233511":"Sold","957529514":"To place an order, add one of the advertiser’s preferred payment methods:","988380202":"Your instructions","1001160515":"Sell","1002264993":"Seller's real name","1020552673":"You're creating an ad to buy <0>{{ target_amount }} {{ target_currency }}...","1030390916":"You already have an ad with this range","1035893169":"Delete","1052094244":"Max order","1057127276":"{{- avg_release_time_in_minutes}} min","1065551550":"Set floating rate","1080990424":"Confirm","1089110190":"You accidentally gave us another email address (usually a work or a personal one instead of the one you meant).","1091533736":"Don't risk your funds with cash transactions. Use bank transfers or e-wallets instead.","1103731601":"Your ads are paused","1106073960":"You've created an ad","1106485202":"Available Deriv P2P balance","1119887091":"Verification","1121630246":"Block","1137964885":"Can only contain letters, numbers, and special characters .- _ @.","1151608942":"Total amount","1157877436":"{{field_name}} should not exceed Amount","1161621759":"Choose your nickname","1162965175":"Buyer","1163072833":"<0>ID verified","1191941618":"Enter a value that's within -{{limit}}% to +{{limit}}%","1192337383":"Seen {{ duration }} hour ago","1202500203":"Pay now","1228352589":"Not rated yet","1229976478":"You will be able to see {{ advertiser_name }}'s ads. They'll be able to place orders on your ads, too.","1236083813":"Your payment details","1258285343":"Oops, something went wrong","1265751551":"Deriv P2P Balance","1286797620":"Active","1287051975":"Nickname is too long","1303016265":"Yes","1313218101":"Rate this transaction","1314266187":"Joined today","1326475003":"Activate","1328352136":"Sell {{ account_currency }}","1330528524":"Seen {{ duration }} month ago","1337027601":"You sold {{offered_amount}} {{offered_currency}}","1347322213":"How would you rate this transaction?","1347724133":"I have paid {{amount}} {{currency}}.","1366244749":"Limits","1370999551":"Floating rate","1371193412":"Cancel","1381949324":"<0>Address verified","1398938904":"We can't deliver the email to this address (usually because of firewalls or filtering).","1422356389":"No results for \"{{text}}\".","1430413419":"Maximum is {{value}} {{currency}}","1438103743":"Floating rates are enabled for {{local_currency}}. Ads with fixed rates will be deactivated. Switch to floating rates by {{end_date}}.","1448855725":"Add payment methods","1452260922":"Too many failed attempts","1467483693":"Past orders","1474532322":"Sort by","1480915523":"Skip","1497156292":"No ads for this currency 😞","1505293001":"Trade partners","1529843851":"The verification link expires in 10 minutes","1583335572":"If the ad doesn't receive an order for {{adverts_archive_period}} days, it will be deactivated.","1587250288":"Ad ID {{advert_id}} ","1607051458":"Search by nickname","1615530713":"Something's not right","1620858613":"You're editing an ad to sell <0>{{ target_amount }} {{ target_currency }} for <0>{{ local_amount }} {{ local_currency }} <1>({{ price_rate }} {{local_currency}}/{{ target_currency }})","1623916605":"I wasn’t able to make full payment.","1654365787":"Unknown","1660278694":"The advertiser changed the rate before you confirmed the order.","1671725772":"If you choose to cancel, the edited details will be lost.","1675716253":"Min limit","1678804253":"Buy {{ currency }}","1691540875":"Edit payment method","1703154819":"You're editing an ad to sell <0>{{ target_amount }} {{ target_currency }}...","1721422292":"Show my real name","1734661732":"Your DP2P balance is {{ dp2p_balance }}","1738504192":"E-wallet","1747523625":"Go back","1752096323":"{{field_name}} should not be below Min limit","1767817594":"Buy completion <0>30d","1784151356":"at","1791767028":"Set a fixed rate for your ad.","1794470010":"I’ve made full payment, but the seller hasn’t released the funds.","1794474847":"I've received payment","1798116519":"Available amount","1809099720":"Expand all","1842172737":"You've received {{offered_amount}} {{offered_currency}}","1848044659":"You have no ads.","1859308030":"Give feedback","1874956952":"Hit the button below to add payment methods.","1886623509":"{{ad_type}} {{ account_currency }}","1923443894":"Inactive","1928240840":"Sell {{ currency }}","1929119945":"There are no ads yet","1976156928":"You'll send","1992961867":"Rate (1 {{currency}})","1994023526":"The email address you entered had a mistake or typo (happens to the best of us).","2020104747":"Filter","2029375371":"Payment instructions","2032274854":"Recommended by {{recommended_count}} traders","2039361923":"You're creating an ad to sell...","2060873863":"Your order {{order_id}} is complete","2063890788":"Cancelled","2091671594":"Status","2096014107":"Apply","2121837513":"Minimum is {{value}} {{currency}}","2142425493":"Ad ID","2144972362":"Please use live chat to contact our Customer Support team for help.","2145292295":"Rate","-1540251249":"Buy {{ account_currency }}","-1267880283":"{{field_name}} is required","-2019083683":"{{field_name}} can only include letters, numbers, spaces, and any of these symbols: -+.,'#@():;","-222920564":"{{field_name}} has exceeded maximum length","-2093768906":"{{name}} has released your funds.
Would you like to give your feedback?","-857786650":"Check your verification status.","-612892886":"We’ll need you to upload your documents to verify your identity.","-2090325029":"Identity verification is complete.","-1101273282":"Nickname is required","-919203928":"Nickname is too short","-1907100457":"Cannot start, end with, or repeat special characters.","-270502067":"Cannot repeat a character more than 4 times.","-499872405":"You have open orders for this ad. Complete all open orders before deleting this ad.","-2125702445":"Instructions","-1274358564":"Max limit","-1995606668":"Amount","-1965472924":"Fixed rate","-1081775102":"{{field_name}} should not be below Max limit","-885044836":"{{field_name}} should not exceed Max limit","-1921077416":"All ({{list_value}})","-608125128":"Blocked ({{list_value}})","-1764050750":"Payment details","-2021135479":"This field is required.","-2005205076":"{{field_name}} has exceeded maximum length of 200 characters.","-480724783":"You already have an ad with this rate","-1207312691":"Completed","-688728873":"Expired","-1951641340":"Under dispute","-1738697484":"Confirm payment","-1611857550":"Waiting for the seller to confirm","-1452684930":"Buyer's real name","-1597110099":"Receive","-892663026":"Your contact details","-1875343569":"Seller's payment details","-92830427":"Seller's instructions","-1940034707":"Buyer's instructions","-137444201":"Buy","-1306639327":"Payment methods","-904197848":"Limits {{min_order_amount_limit_display}}-{{max_order_amount_limit_display}} {{currency}}","-464361439":"{{- avg_buy_time_in_minutes}} min","-2109576323":"Sell completion <0>30d","-165392069":"Avg. release time <0>30d","-1154208372":"Trade volume <0>30d","-1845037007":"Advertiser's page","-1070228546":"Joined {{days_since_joined}}d","-2015102262":"({{number_of_ratings}} rating)","-1412298133":"({{number_of_ratings}} ratings)","-260332243":"{{user_blocked_count}} person has blocked you","-117094654":"{{user_blocked_count}} people have blocked you","-329713179":"Ok","-1689905285":"Unblock","-1837059346":"Buy / Sell","-494667560":"Orders","-679691613":"My ads","-1314987447":"No users to show here.","-1298666786":"My counterparties","-1530773708":"Block {{advertiser_name}}?","-1148912768":"If the market rate changes from the rate shown here, we won't be able to process your order.","-55126326":"Seller","-835196958":"Receive payment to","-1218007718":"You may choose up to 3.","-1933432699":"Enter {{transaction_type}} amount","-2021730616":"{{ad_type}}","-490637584":"Limit: {{min}}–{{max}} {{currency}}","-1974067943":"Your bank details","-1285759343":"Search","-2035037071":"Your Deriv P2P balance isn't enough. Please increase your balance before trying again.","-412680608":"Add payment method","-1657433201":"There are no matching ads.","-1862812590":"Limits {{ min_order }}–{{ max_order }} {{ currency }}","-375836822":"Buy {{account_currency}}","-1035421133":"Sell {{account_currency}}","-1503997652":"No ads for this currency.","-1048001140":"No results for \"{{value}}\".","-227512949":"Check your spelling or use a different term.","-1554938377":"Search payment method","-75934135":"Matching ads","-1856204727":"Reset","-73663931":"Create ad","-141315849":"No ads for this currency at the moment 😞","-1638172550":"To enable this feature you must complete the following:","-559300364":"Your Deriv P2P cashier is blocked","-2124584325":"We've verified your order","-878014035":"Please ensure you've received {{amount}} {{currency}} in your account and hit Confirm to complete the transaction.","-1968971120":"We've sent you an email at {{email_address}}.<0 />Please click the verification link in the email to verify your order.","-142727028":"The email is in your spam folder (sometimes things get lost there).","-740038242":"Your rate is","-1728351486":"Invalid verification link","-1088454544":"Get new link","-674715853":"Your ad exceeds the daily limit","-744406":"Your ad is not listed on <0>Buy/Sell because the amount exceeds your daily limit of {{limit}} {{currency}}.\n <1 /><1 />You can still see your ad on <0>My ads. If you’d like to increase your daily limit, please contact us via <2>live chat.","-984140537":"Add","-1072444041":"Update ad","-1406830100":"Payment method","-1561775203":"Buy {{currency}}","-1527285935":"Sell {{currency}}","-592818187":"Your Deriv P2P balance is {{ dp2p_balance }}","-1654157453":"Fixed rate (1 {{currency}})","-379708059":"Min order","-1459289144":"This information will be visible to everyone.","-207756259":"You may tap and choose up to 3.","-1282343703":"You're creating an ad to buy <0>{{ target_amount }} {{ target_currency }} for <0>{{ local_amount }} {{ local_currency }} <1>({{ price_rate }} {{local_currency}}/{{ target_currency }})","-2139632895":"You're creating an ad to sell <0>{{ target_amount }} {{ target_currency }} for <0>{{ local_amount }} {{ local_currency }} <1>({{ price_rate }} {{local_currency}}/{{ target_currency }})","-40669120":"You're creating an ad to sell <0>{{ target_amount }} {{ target_currency }}...","-514789442":"You're creating an ad to buy...","-1179827369":"Create new ad","-1601971804":"Cancel your edits?","-1571737200":"Don't cancel","-230677679":"{{text}}","-1914431773":"You're editing an ad to buy <0>{{ target_amount }} {{ target_currency }} for <0>{{ local_amount }} {{ local_currency }} <1>({{ price_rate }} {{local_currency}}/{{ target_currency }})","-107996509":"You're editing an ad to buy <0>{{ target_amount }} {{ target_currency }}...","-863580260":"You're editing an ad to buy...","-1396464057":"You're editing an ad to sell...","-392043307":"Do you want to delete this ad?","-854930519":"You will NOT be able to restore it.","-1600783504":"Set a floating rate for your ad.","-372210670":"Rate (1 {{account_currency}})","-1400835517":"{{ad_type}} {{ id }}","-1318334333":"Deactivate","-1667041441":"Rate (1 {{ offered_currency }})","-1886565882":"Your ads with floating rates have been deactivated. Set fixed rates to reactivate them.","-792015701":"Deriv P2P cashier is unavailable in your country.","-1220275347":"You may choose up to 3 payment methods for this ad.","-1889014820":"<0>Don’t see your payment method? <1>Add new.","-806152028":"Your ads are running","-1241719539":"When you block someone, you won't see their ads, and they can't see yours. Your ads will be hidden from their search results, too.","-1007339977":"There are no matching name.","-179005984":"Save","-2059312414":"Ad details","-1769584466":"Stats","-2090878601":"Daily limit","-130547447":"Trade volume <0>30d | <1>lifetime","-1792280476":"Choose your payment method","-293182503":"Cancel adding this payment method?","-1850127397":"If you choose to cancel, the details you’ve entered will be lost.","-383030149":"You haven’t added any payment methods yet","-1422779483":"That payment method cannot be deleted","-1269362917":"Add new","-146021156":"Delete {{payment_method_name}}?","-1846700504":"Are you sure you want to remove this payment method?","-231863107":"No","-532709160":"Your nickname","-1117584385":"Seen more than 6 months ago","-1766199849":"Seen {{ duration }} months ago","-591593016":"Seen {{ duration }} day ago","-1586918919":"Seen {{ duration }} hours ago","-664781013":"Seen {{ duration }} minute ago","-1717650468":"Online","-2008992756":"Do you want to cancel this order?","-1666369246":"If you cancel your order {{cancellation_limit}} times in {{cancellation_period}} hours, you will be blocked from using Deriv P2P for {{block_duration}} hours.
({{number_of_cancels_remaining}} cancellations remaining.)","-1618084450":"If you cancel this order, you'll be blocked from using Deriv P2P for {{block_duration}} hours.","-2026176944":"Please do not cancel if you have already made payment.","-1989544601":"Cancel this order","-492996224":"Do not cancel","-510341549":"I’ve received less than the agreed amount.","-650030360":"I’ve paid more than the agreed amount.","-1192446042":"If your complaint isn't listed here, please contact our Customer Support team.","-573132778":"Complaint","-792338456":"What's your complaint?","-1447732068":"Payment confirmation","-1485778481":"Have you received payment?","-403938778":"Please confirm only after checking your bank or e-wallet account to make sure you have received payment.","-1875011752":"Yes, I've paid","-1146269362":"I've received {{amount}} {{currency}}","-563116612":"I haven't paid yet","-418870584":"Cancel order","-1392383387":"I've paid","-727273667":"Complain","-2016990049":"Sell {{offered_currency}} order","-811190405":"Time","-961632398":"Collapse all","-415476028":"Not rated","-26434257":"You have until {{remaining_review_time}} GMT to rate this transaction.","-768709492":"Your transaction experience","-652933704":"Recommended","-84139378":"Not Recommended","-1983512566":"This conversation is closed.","-1797318839":"In case of a dispute, we will only consider the communication through Deriv P2P chat channel.","-283017497":"Retry","-979459594":"Buy/Sell","-2052184983":"Order ID","-2096350108":"Counterparty","-750202930":"Active orders","-1626659964":"I've received {{amount}} {{currency}}.","-1340125291":"Done","-237014436":"Recommended by {{recommended_count}} trader","-1463630097":"Recommended by 0 traders","-2054589794":"You've been temporarily barred from using our services due to multiple cancellation attempts. Try again after {{date_time}} GMT.","-1079963355":"trades","-930400128":"To use Deriv P2P, you need to choose a display name (a nickname) and verify your identity."} \ No newline at end of file diff --git a/packages/p2p/src/translations/es.json b/packages/p2p/src/translations/es.json index eb36d81d9681..0187aa44b551 100644 --- a/packages/p2p/src/translations/es.json +++ b/packages/p2p/src/translations/es.json @@ -167,6 +167,7 @@ "1886623509": "{{ad_type}}{{ account_currency }}", "1923443894": "Inactivo", "1928240840": "Vender {{ currency }}", + "1929119945": "There are no ads yet", "1976156928": "Enviará", "1992961867": "Tasa (1 {{currency}})", "1994023526": "La dirección de correo electrónico que ingresó tenía un fallo o error tipográfico (pasa hasta en las mejores familias).", @@ -201,6 +202,8 @@ "-1965472924": "Tasa fija", "-1081775102": "{{field_name}} no debe estar por encima del límite máximo", "-885044836": "{{field_name}} no debe exceder el límite máximo", + "-1921077416": "All ({{list_value}})", + "-608125128": "Blocked ({{list_value}})", "-1764050750": "Detalles de pago", "-2021135479": "Este campo es obligatorio.", "-2005205076": "{{field_name}} ha superado la longitud máxima de 200 caracteres.", @@ -218,7 +221,6 @@ "-1940034707": "Instrucciones del comprador", "-137444201": "Comprar", "-1306639327": "Métodos de pago", - "-1102534097": "Sin anuncios", "-904197848": "Límites {{min_order_amount_limit_display}}-{{max_order_amount_limit_display}} {{currency}}", "-464361439": "{{- avg_buy_time_in_minutes}} min", "-2109576323": "Finalización venta <0>30d", @@ -235,7 +237,8 @@ "-1837059346": "Comprar / Vender", "-494667560": "Pedidos", "-679691613": "Mis anuncios", - "-1426771335": "No tiene anunciantes bloqueados", + "-1314987447": "No users to show here.", + "-1298666786": "My counterparties", "-1530773708": "¿Bloquear a {{advertiser_name}}?", "-1148912768": "Si la tasa de mercado cambia con respecto a la que se muestra aquí, no podremos procesar su pedido.", "-55126326": "Vendedor", @@ -305,6 +308,7 @@ "-1220275347": "Puede elegir hasta 3 métodos de pago para este anuncio.", "-1889014820": "<0>¿No ve su método de pago? <1>Agregar nuevo.", "-806152028": "Sus anuncios están publicados", + "-1241719539": "When you block someone, you won't see their ads, and they can't see yours. Your ads will be hidden from their search results, too.", "-1007339977": "No coincide ningún nombre.", "-179005984": "Guardar", "-2059312414": "Detalles del anuncio", diff --git a/packages/p2p/src/translations/fr.json b/packages/p2p/src/translations/fr.json index 9bc088f1fc19..33209b7aaffa 100644 --- a/packages/p2p/src/translations/fr.json +++ b/packages/p2p/src/translations/fr.json @@ -167,6 +167,7 @@ "1886623509": "{{ad_type}} {{ account_currency }}", "1923443894": "Inactif", "1928240840": "Vendre {{ currency }}", + "1929119945": "There are no ads yet", "1976156928": "Vous enverrez", "1992961867": "Taux (1 {{currency}})", "1994023526": "L'adresse électronique que vous avez entrée comportait une erreur ou une faute de frappe (cela arrive aux meilleurs d'entre nous).", @@ -201,6 +202,8 @@ "-1965472924": "Taux fixe", "-1081775102": "{{field_name}} ne doit pas être inférieur à la limite maximale", "-885044836": "{{field_name}} ne doit pas dépasser la limite maximale", + "-1921077416": "All ({{list_value}})", + "-608125128": "Blocked ({{list_value}})", "-1764050750": "Détails de paiement", "-2021135479": "Ce champ est requis.", "-2005205076": "{{field_name}} a dépassé la longueur maximale de 200 caractères.", @@ -218,7 +221,6 @@ "-1940034707": "Instructions de l'acheteur", "-137444201": "Acheter", "-1306639327": "Moyens de paiement", - "-1102534097": "Pas de pubs", "-904197848": "Limites {{min_order_amount_limit_display}}-{{max_order_amount_limit_display}} {{currency}}", "-464361439": "{{- avg_buy_time_in_minutes}} min", "-2109576323": "Achèvement de la vente <0>30j", @@ -235,7 +237,8 @@ "-1837059346": "Achat / Vente", "-494667560": "Ordres", "-679691613": "Mes annonces", - "-1426771335": "Vous n'avez aucun annonceur bloqué", + "-1314987447": "No users to show here.", + "-1298666786": "My counterparties", "-1530773708": "Bloquer {{advertiser_name}} ?", "-1148912768": "Si le taux du marché change par rapport au taux indiqué ici, nous ne serons pas en mesure de traiter votre commande.", "-55126326": "Vendeur", @@ -305,6 +308,7 @@ "-1220275347": "Vous pouvez choisir jusqu'à 3 méthodes de paiement pour cette annonce.", "-1889014820": "<0>Vous ne voyez pas votre mode de paiement ? <1>Ajouter un nouveau.", "-806152028": "Vos annonces sont diffusées", + "-1241719539": "When you block someone, you won't see their ads, and they can't see yours. Your ads will be hidden from their search results, too.", "-1007339977": "Il n'y a aucun nom correspondant.", "-179005984": "Sauvegarder", "-2059312414": "Détails de l'annonce", diff --git a/packages/p2p/src/translations/id.json b/packages/p2p/src/translations/id.json index 73b535a98731..f590fb0a263d 100644 --- a/packages/p2p/src/translations/id.json +++ b/packages/p2p/src/translations/id.json @@ -167,6 +167,7 @@ "1886623509": "{{ad_type}} {{ account_currency }}", "1923443894": "Tidak aktif", "1928240840": "Jual {{ currency }}", + "1929119945": "There are no ads yet", "1976156928": "Anda akan mengirim", "1992961867": "Harga (1 {{currency}})", "1994023526": "Alamat email yang Anda masukkan sepertinya salah ketik (hal ini sering terjadi).", @@ -201,6 +202,8 @@ "-1965472924": "Harga tetap", "-1081775102": "{{field_name}} tidak boleh di bawah batas maksimum", "-885044836": "{{field_name}} tidak boleh melebihi batas maksimum", + "-1921077416": "All ({{list_value}})", + "-608125128": "Blocked ({{list_value}})", "-1764050750": "Detail pembayaran", "-2021135479": "Bagian ini wajib diisi.", "-2005205076": "{{field_name}} telah melebihi panjang maksimum 200 karakter.", @@ -218,7 +221,6 @@ "-1940034707": "Instruksi pembeli", "-137444201": "Beli", "-1306639327": "Metode pembayaran", - "-1102534097": "Tidak ada iklan", "-904197848": "Batas {{min_order_amount_limit_display}}–{{max_order_amount_limit_display}} {{currency}}", "-464361439": "{{- avg_buy_time_in_minutes}} menit", "-2109576323": "Transaksi jual <0>30hari", @@ -235,7 +237,8 @@ "-1837059346": "Beli / Jual", "-494667560": "Order", "-679691613": "Iklan saya", - "-1426771335": "Anda tidak memiliki pengiklan yang diblokir", + "-1314987447": "No users to show here.", + "-1298666786": "My counterparties", "-1530773708": "Blokir {{advertiser_name}}?", "-1148912768": "Jika harga pasar berubah dari harga yang ditampilkan di sini, maka kami tidak dapat memproses order.", "-55126326": "Penjual", @@ -305,6 +308,7 @@ "-1220275347": "Anda dapat memilih hingga 3 metode pembayaran untuk iklan ini.", "-1889014820": "<0>Metode pembayaran Anda tidak tersedia? <1>Tambah baru.", "-806152028": "Iklan Anda sedang berjalan", + "-1241719539": "When you block someone, you won't see their ads, and they can't see yours. Your ads will be hidden from their search results, too.", "-1007339977": "Tidak ada nama yang cocok.", "-179005984": "Simpan", "-2059312414": "Detail iklan", diff --git a/packages/p2p/src/translations/it.json b/packages/p2p/src/translations/it.json index 95d3e3cd32cc..ff4ea123d20c 100644 --- a/packages/p2p/src/translations/it.json +++ b/packages/p2p/src/translations/it.json @@ -167,6 +167,7 @@ "1886623509": "{{ad_type}} {{ account_currency }}", "1923443894": "Disattivato", "1928240840": "Vendi {{ currency }}", + "1929119945": "There are no ads yet", "1976156928": "Invia", "1992961867": "Tasso (1 {{currency}})", "1994023526": "L'indirizzo e-mail inserito contiene un errore o un refuso (è un errore comune, non preoccuparti!).", @@ -201,6 +202,8 @@ "-1965472924": "Tasso fisso", "-1081775102": "{{field_name}} non può essere inferiore al limite massimo", "-885044836": "{{field_name}} non può superare il limite massimo", + "-1921077416": "All ({{list_value}})", + "-608125128": "Blocked ({{list_value}})", "-1764050750": "Dettagli del pagamento", "-2021135479": "Questo campo è obbligatorio.", "-2005205076": "{{field_name}} ha superato la lunghezza massima di 200 caratteri.", @@ -218,7 +221,6 @@ "-1940034707": "Istruzioni dell'acquirente", "-137444201": "Acquista", "-1306639327": "Modalità di pagamento", - "-1102534097": "Nessun annuncio", "-904197848": "Limiti {{min_order_amount_limit_display}}-{{max_order_amount_limit_display}} {{currency}}", "-464361439": "{{- avg_buy_time_in_minutes}} min", "-2109576323": "Completamento vendita <0>30gg", @@ -235,7 +237,8 @@ "-1837059346": "Acquista / Vendi", "-494667560": "Ordini", "-679691613": "I miei annunci", - "-1426771335": "Non hai inserzionisti bloccati", + "-1314987447": "No users to show here.", + "-1298666786": "My counterparties", "-1530773708": "Bloccare {{advertiser_name}}?", "-1148912768": "Se il tasso del mercato si discosta da quello riportato qui, non potremo eseguire il tuo ordine.", "-55126326": "Venditore", @@ -305,6 +308,7 @@ "-1220275347": "Puoi scegliere fino a 3 modalità di pagamento per questo annuncio.", "-1889014820": "<0>Non vedi la tua modalità di pagamento?<1>Aggiungi una nuova.", "-806152028": "Annunci in riproduzione", + "-1241719539": "When you block someone, you won't see their ads, and they can't see yours. Your ads will be hidden from their search results, too.", "-1007339977": "Nessun nome corrispondente.", "-179005984": "Salva", "-2059312414": "Dettagli annuncio", diff --git a/packages/p2p/src/translations/pl.json b/packages/p2p/src/translations/pl.json index e1791650b560..820c7572d94b 100644 --- a/packages/p2p/src/translations/pl.json +++ b/packages/p2p/src/translations/pl.json @@ -167,6 +167,7 @@ "1886623509": "{{ad_type}} {{ account_currency }}", "1923443894": "Nieaktywne", "1928240840": "Sprzedaj {{ currency }}", + "1929119945": "There are no ads yet", "1976156928": "Wyślesz", "1992961867": "Opłata (1 {{currency}})", "1994023526": "Wprowadzony przez Ciebie adres e-mail zawiera błąd lub literówkę (zdarza się najlepszym).", @@ -201,6 +202,8 @@ "-1965472924": "Stała stawka", "-1081775102": "Pole {{field_name}} nie powinno być niższe niż Maks. limit", "-885044836": "Pole {{field_name}} nie powinno przekraczać Maks. limitu", + "-1921077416": "All ({{list_value}})", + "-608125128": "Blocked ({{list_value}})", "-1764050750": "Szczegóły płatności", "-2021135479": "To pole jest wymagane.", "-2005205076": "{{field_name}} przekroczyła maksymalną długość 200 znaków.", @@ -218,7 +221,6 @@ "-1940034707": "Instrukcje kupującego", "-137444201": "Kup", "-1306639327": "Metody płatności", - "-1102534097": "Brak reklam", "-904197848": "Limity {{min_order_amount_limit_display}}-{{max_order_amount_limit_display}} {{currency}}", "-464361439": "{{- avg_buy_time_in_minutes}} min", "-2109576323": "Zakończenie sprzedaży: <0>30 dni", @@ -235,7 +237,8 @@ "-1837059346": "Kup / Sprzedaj", "-494667560": "Zlecenia", "-679691613": "Moje reklamy", - "-1426771335": "Nie masz żadnych zablokowanych ogłoszeniodawców", + "-1314987447": "No users to show here.", + "-1298666786": "My counterparties", "-1530773708": "Zablokować {{advertiser_name}}?", "-1148912768": "Jeśli stopa rynkowa przedstawiona tutaj się zmieni, nie będziemy mogli zrealizować Twojego zlecenia.", "-55126326": "Sprzedający", @@ -305,6 +308,7 @@ "-1220275347": "Możesz wybrać do 3 metod płatności dla tego ogłoszenia.", "-1889014820": "<0>Nie widzisz swojej metody płatności? <1>Dodaj nową.", "-806152028": "Twoje reklamy są aktywne", + "-1241719539": "When you block someone, you won't see their ads, and they can't see yours. Your ads will be hidden from their search results, too.", "-1007339977": "Nie ma pasującej nazwy.", "-179005984": "Zapisz", "-2059312414": "Szczegóły ogłoszenia", diff --git a/packages/p2p/src/translations/pt.json b/packages/p2p/src/translations/pt.json index 6562cee23033..c6b6e7274c1f 100644 --- a/packages/p2p/src/translations/pt.json +++ b/packages/p2p/src/translations/pt.json @@ -167,6 +167,7 @@ "1886623509": "{{ad_type}} {{ account_currency }}", "1923443894": "Inativo", "1928240840": "Vender {{ currency }}", + "1929119945": "There are no ads yet", "1976156928": "Você vai enviar", "1992961867": "Taxa (1 {{currency}})", "1994023526": "O endereço de e-mail que você digitou está errado ou tem um erro de digitação (não se preocupe, tente novamente).", @@ -201,6 +202,8 @@ "-1965472924": "Taxa fixa", "-1081775102": "{{field_name}} não deve estar abaixo do Limite máx", "-885044836": "{{field_name}} não deve exceder o Limite máx", + "-1921077416": "All ({{list_value}})", + "-608125128": "Blocked ({{list_value}})", "-1764050750": "Detalhes de pagamento", "-2021135479": "Este campo é obrigatório.", "-2005205076": "Este campo excedeu o comprimento máximo de 200 caracteres.", @@ -218,7 +221,6 @@ "-1940034707": "Instruções do comprador", "-137444201": "Comprar", "-1306639327": "Métodos de Pagamento", - "-1102534097": "Nenhum anúncio", "-904197848": "Limites {{min_order_amount_limit_display}}-{{max_order_amount_limit_display}} {{currency}}", "-464361439": "{{- avg_buy_time_in_minutes}} min", "-2109576323": "Vendas completadas <0>30d", @@ -235,7 +237,8 @@ "-1837059346": "Comprar/Vender", "-494667560": "Pedidos", "-679691613": "Meus anúncios", - "-1426771335": "Você não tem anunciantes bloqueados", + "-1314987447": "No users to show here.", + "-1298666786": "My counterparties", "-1530773708": "Bloquear {{advertiser_name}}?", "-1148912768": "Se a taxa de mercado mudar em relação à taxa mostrada aqui, não poderemos processar seu pedido.", "-55126326": "Vendedor", @@ -305,6 +308,7 @@ "-1220275347": "Você pode escolher até 3 formas de pagamento para este anúncio.", "-1889014820": "<0>Não visualiza seu método de pagamento? <1>Adicionar novo.", "-806152028": "Seus anúncios estão sendo exibidos", + "-1241719539": "When you block someone, you won't see their ads, and they can't see yours. Your ads will be hidden from their search results, too.", "-1007339977": "Não há anúncios correspondentes.", "-179005984": "Salvar", "-2059312414": "Detalhes do anúncio", diff --git a/packages/p2p/src/translations/ru.json b/packages/p2p/src/translations/ru.json index c7f7055c0cd3..55dae43eec36 100644 --- a/packages/p2p/src/translations/ru.json +++ b/packages/p2p/src/translations/ru.json @@ -167,6 +167,7 @@ "1886623509": "{{ad_type}} {{ account_currency }}", "1923443894": "Неактивен", "1928240840": "Продать {{ currency }}", + "1929119945": "There are no ads yet", "1976156928": "Вы отправите", "1992961867": "Курс (1 {{currency}})", "1994023526": "Адрес эл. почты был введен с ошибкой или опечаткой (случается с лучшими из нас).", @@ -201,6 +202,8 @@ "-1965472924": "Фиксированный курс", "-1081775102": "Значение {{field_name}} не должно быть выше макс. лимита", "-885044836": "Значение {{field_name}} не должно быть выше макс. лимита", + "-1921077416": "All ({{list_value}})", + "-608125128": "Blocked ({{list_value}})", "-1764050750": "Платежные реквизиты", "-2021135479": "Обязательное поле.", "-2005205076": "{{field_name}} превышает максимальную длину в 200 символов.", @@ -218,7 +221,6 @@ "-1940034707": "Инструкции покупателя", "-137444201": "Купить", "-1306639327": "Платежные методы", - "-1102534097": "Нет объявлений", "-904197848": "Лимиты: {{min_order_amount_limit_display}}-{{max_order_amount_limit_display}} {{currency}}", "-464361439": "{{- avg_buy_time_in_minutes}} мин", "-2109576323": "Завершенные (продажа) <0>30д", @@ -235,7 +237,8 @@ "-1837059346": "Покупка/продажа", "-494667560": "Ордеры", "-679691613": "Мои объявления", - "-1426771335": "У вас нет заблокированных адвертайзеров", + "-1314987447": "No users to show here.", + "-1298666786": "My counterparties", "-1530773708": "Блокировать {{advertiser_name}}?", "-1148912768": "Если рыночный курс изменится по сравнению с указанным здесь, мы не сможем обработать ваш ордер.", "-55126326": "Продавец", @@ -305,6 +308,7 @@ "-1220275347": "Для этого объявления можно выбрать до 3 платежных методов.", "-1889014820": "<0>Не нашли свой платежный метод? <1>Добавьте новый.", "-806152028": "Ваши объявления запущены", + "-1241719539": "When you block someone, you won't see their ads, and they can't see yours. Your ads will be hidden from their search results, too.", "-1007339977": "Нет подходящего имени.", "-179005984": "Сохранить", "-2059312414": "Детали объявления", diff --git a/packages/p2p/src/translations/th.json b/packages/p2p/src/translations/th.json index cf6c31705b48..d68c5f6c5be9 100644 --- a/packages/p2p/src/translations/th.json +++ b/packages/p2p/src/translations/th.json @@ -59,7 +59,7 @@ "662578726": "ที่มีอยู่", "671582270": "จำนวนสูงสุดที่ใช้ได้คือ {{value}}", "683273691": "อัตรา (1 {{ account_currency }})", - "723172934": "กำลังมองหาที่จะซื้อหรือขาย USD? คุณสามารถโพสต์โฆษณาของคุณเองเพื่อให้ผู้อื่นตอบกลับ", + "723172934": "กำลังมองหาที่จะซื้อหรือขายเงินดอลล่าห์สหรัฐ (USD)? คุณสามารถโพสต์โฆษณาของคุณเองเพื่อให้ผู้อื่นตอบกลับ", "728383001": "ฉันได้รับจำนวนเงินมากกว่าที่ตกลงกัน", "733311523": "ธุรกรรม P2P ได้ถูกล็อก ฟีเจอร์ลูกเล่นนี้ไม่สามารถใช้ได้สำหรับตัวแทนการชำระเงิน", "767789372": "รอการชำระเงิน", @@ -167,6 +167,7 @@ "1886623509": "{{ad_type}} {{ account_currency }}", "1923443894": "ไม่ได้ใช้งาน", "1928240840": "ขาย {{ currency }}", + "1929119945": "There are no ads yet", "1976156928": "คุณจะส่ง", "1992961867": "อัตรา (1 {{currency}})", "1994023526": "ที่อยู่อีเมล์ที่คุณป้อนมีข้อผิดพลาดหรือคำพิมพ์ผิด (เกิดขึ้นได้กับทุกคน)", @@ -201,6 +202,8 @@ "-1965472924": "อัตราคงที่", "-1081775102": "{{field_name}} ไม่ควรเกินค่าจำกัดขั้นสูงสุด", "-885044836": "{{field_name}} ไม่ควรเกินค่าจำกัดขั้นสูงสุด", + "-1921077416": "All ({{list_value}})", + "-608125128": "Blocked ({{list_value}})", "-1764050750": "รายละเอียดการชําระเงิน", "-2021135479": "ข้อมูลในช่องนี้จำเป็นต้องมี", "-2005205076": "ช่อง {{field_name}} นี้ยาวเกินความยาวสูงสุดที่ตั้งไว้เป็น 200 อักขระ", @@ -218,7 +221,6 @@ "-1940034707": "คำแนะนำของผู้ซื้อ", "-137444201": "ซื้อ", "-1306639327": "วิธีการชำระเงิน", - "-1102534097": "ไม่มีโฆษณา", "-904197848": "ขีดจำกัด {{min_order_amount_limit_display}}-{{max_order_amount_limit_display}} {{currency}}", "-464361439": "{{- avg_buy_time_in_minutes}} นาที", "-2109576323": "การเสร็จสมบูรณ์ของธุรกรรมการขาย <0>30d", @@ -235,7 +237,8 @@ "-1837059346": "ซื้อ / ขาย", "-494667560": "คำสั่งซื้อขาย", "-679691613": "โฆษณาของฉัน", - "-1426771335": "คุณไม่ได้ปิดกั้นผู้ลงโฆษณาใดๆ", + "-1314987447": "No users to show here.", + "-1298666786": "My counterparties", "-1530773708": "ปิดกั้น {{advertiser_name}}?", "-1148912768": "หากอัตราแลกเปลี่ยนของตลาดเปลี่ยนแปลงไปจากอัตราที่แสดงอยู่ที่นี่ เราจะไม่สามารถดำเนินการตามคำสั่งซื้อของคุณได้", "-55126326": "ผู้ขาย", @@ -305,6 +308,7 @@ "-1220275347": "คุณสามารถเลือกวิธีการชำระเงินได้ถึง 3 วิธีสำหรับโฆษณานี้", "-1889014820": "<0>มองไม่เห็นวิธีการชำระเงินของคุณใช่หรือไม่? <1>เพิ่มใหม่", "-806152028": "โฆษณาของคุณกำลังทำงาน", + "-1241719539": "When you block someone, you won't see their ads, and they can't see yours. Your ads will be hidden from their search results, too.", "-1007339977": "ไม่มีชื่อที่ตรงกัน", "-179005984": "บันทึก", "-2059312414": "รายละเอียดโฆษณา", diff --git a/packages/p2p/src/translations/tr.json b/packages/p2p/src/translations/tr.json index 52f598270b8c..e5f5f461b10c 100644 --- a/packages/p2p/src/translations/tr.json +++ b/packages/p2p/src/translations/tr.json @@ -167,6 +167,7 @@ "1886623509": "{{ad_type}} {{ account_currency }}", "1923443894": "İnaktif", "1928240840": "Sat {{ currency }}", + "1929119945": "There are no ads yet", "1976156928": "Göndereceksiniz", "1992961867": "Oran (1 {{currency}})", "1994023526": "Girdiğiniz e-posta adresinde bir hata veya yazım hatası var (en iyimizin başına gelir).", @@ -201,6 +202,8 @@ "-1965472924": "Sabit oran", "-1081775102": "{{field_name}} Maks limitin altında olmamalıdır", "-885044836": "{{field_name}} Maks limiti aşmamalıdır", + "-1921077416": "All ({{list_value}})", + "-608125128": "Blocked ({{list_value}})", "-1764050750": "Ödeme ayrıntıları", "-2021135479": "Bu alan zorunludur.", "-2005205076": "{{field_name}} maksimum 200 karakter uzunluğunu aştı.", @@ -218,7 +221,6 @@ "-1940034707": "Alıcı talimatları", "-137444201": "Satın al", "-1306639327": "Ödeme yöntemleri", - "-1102534097": "İlan yok", "-904197848": "Sınırlar {{min_order_amount_limit_display}}-{{max_order_amount_limit_display}} {{currency}}", "-464361439": "{{- avg_buy_time_in_minutes}} dk", "-2109576323": "Satış tamamlama <0>30g", @@ -235,7 +237,8 @@ "-1837059346": "Satın al / Sat", "-494667560": "Emirler", "-679691613": "İlanlarım", - "-1426771335": "Engellenen ilan vereniniz yok", + "-1314987447": "No users to show here.", + "-1298666786": "My counterparties", "-1530773708": "{{advertiser_name}} adlı kişiyi engelle?", "-1148912768": "Piyasa oranı burada gösterilen orandan farklılaşırsa, siparişinizi işleme alamayacağız.", "-55126326": "Satıcı", @@ -305,6 +308,7 @@ "-1220275347": "Bu ilan için en fazla 3 ödeme yöntemi seçebilirsiniz.", "-1889014820": "<0>Ödeme yönteminizi görmüyor musunuz? <1>Yeni ekle.", "-806152028": "İlanlarınız devam ediyor", + "-1241719539": "When you block someone, you won't see their ads, and they can't see yours. Your ads will be hidden from their search results, too.", "-1007339977": "Eşleşen isim yok.", "-179005984": "Kaydet", "-2059312414": "İlan ayrıntıları", diff --git a/packages/p2p/src/translations/vi.json b/packages/p2p/src/translations/vi.json index d720c765a7d8..7f840bb7d010 100644 --- a/packages/p2p/src/translations/vi.json +++ b/packages/p2p/src/translations/vi.json @@ -1,7 +1,7 @@ { "6794664": "Quảng cáo trùng khớp với số dư và giới hạn Deriv P2P của bạn.", - "19789721": "Không ai chặn anh cả. Yay!", - "21103557": "Số dư P2P Deriv = các khoản tiền gửi không thể đảo ngược (chuyển khoản ngân hàng, v. v.) + một phần tiền gửi có thể được hoàn nhập (thanh toán bằng thẻ tín dụng, v. v.)", + "19789721": "Không ai chặn bạn cả. Yay!", + "21103557": "Số dư P2P Deriv = các khoản tiền gửi không thể trả về (chuyển khoản ngân hàng, v. v.) + một phần tiền gửi có thể trả về (thanh toán bằng thẻ tín dụng, v. v.)", "24711354": "Tổng số lệnh <0>30 ngày | <1>trọn đời", "47573834": "Tỷ lệ cố định (1 {{account_currency}})", "50672601": "Đã mua", @@ -11,8 +11,8 @@ "121738739": "Gửi", "122280248": "Thời gian nhả khoản trung bình <0>30 ngày", "134205943": "Quảng cáo của bạn với mức giá cố định đã bị vô hiệu hóa. Đặt tỷ giá thả nổi để kích hoạt lại chúng.", - "140800401": "Tỷ giá nổi", - "145959105": "Chọn một biệt danh", + "140800401": "Tỷ giá thả nổi", + "145959105": "Chọn tên", "150156106": "Lưu các thay đổi", "159757877": "Bạn sẽ không thấy quảng cáo của {{advertiser_name}} nữa và họ sẽ không thể đặt hàng trên quảng cáo của bạn.", "170072126": "Thấy {{ duration }} ngày trước", @@ -36,11 +36,11 @@ "439264204": "Vui lòng đặt giới hạn lệnh tối thiểu và/hoặc tối đa khác.

Phạm vi quảng cáo của bạn không được trùng lặp với bất kỳ quảng cáo nào khác đang hoạt động của bạn.", "452752527": "Tỷ lệ (1 {{ currency }})", "460477293": "Nhập tin nhắn", - "464044457": "Nickname của người mua", + "464044457": "Tên người mua", "473688701": "Nhập một khoản hợp lệ", "476023405": "Không nhận được email?", "488150742": "Gửi lại email", - "498500965": "Nickname của người bán", + "498500965": "Tên người bán", "501523417": "Bạn không có đơn hàng nào.", "517202770": "Đặt tỉ giá cố định", "523301614": "Miễn giữ {{amount}} {{currency}}", @@ -167,6 +167,7 @@ "1886623509": "{{ad_type}} {{ account_currency }}", "1923443894": "Không hoạt động", "1928240840": "Bán {{ currency }}", + "1929119945": "There are no ads yet", "1976156928": "Bạn sẽ chuyển", "1992961867": "Tỷ lệ (1 {{currency}})", "1994023526": "Địa chỉ email bạn nhập bị nhầm hoặc có lỗi chính tả (hay xảy ra với chúng tôi).", @@ -201,6 +202,8 @@ "-1965472924": "Tỷ lệ cố định", "-1081775102": "{{field_name}} không được dưới mức giới hạn Tối đa", "-885044836": "{{field_name}} không được vượt quá giới hạn Tối đa", + "-1921077416": "All ({{list_value}})", + "-608125128": "Blocked ({{list_value}})", "-1764050750": "Chi tiết thanh toán", "-2021135479": "Trường này là bắt buộc.", "-2005205076": "{{field_name}} này đã vượt quá độ dài tối đa 200 ký tự.", @@ -218,7 +221,6 @@ "-1940034707": "Hướng dẫn của người mua", "-137444201": "Mua", "-1306639327": "Các phương thức thanh toán", - "-1102534097": "Không quảng cáo", "-904197848": "Giới hạn {{min_order_amount_limit_display}}-{{max_order_amount_limit_display}} {{currency}}", "-464361439": "{{- avg_buy_time_in_minutes}} phút", "-2109576323": "Lệnh bán hoàn thành trong <0>30 ngày", @@ -235,7 +237,8 @@ "-1837059346": "Mua / Bán", "-494667560": "Đơn hàng", "-679691613": "Quảng cáo của tôi", - "-1426771335": "Bạn không có nhà quảng cáo bị chặn", + "-1314987447": "No users to show here.", + "-1298666786": "My counterparties", "-1530773708": "Chặn {{advertiser_name}}?", "-1148912768": "Nếu tỷ giá thị trường thay đổi so với tỷ giá hiển thị ở đây, chúng tôi sẽ không thể xử lý lệnh đặt của bạn.", "-55126326": "Người bán", @@ -305,6 +308,7 @@ "-1220275347": "Bạn có thể chọn tối đa 3 phương thức thanh toán cho quảng cáo này.", "-1889014820": "<0>Bạn không thấy phương thức thanh toán của mình? <1>Thêm mới.", "-806152028": "Quảng cáo của bạn đang chạy", + "-1241719539": "When you block someone, you won't see their ads, and they can't see yours. Your ads will be hidden from their search results, too.", "-1007339977": "Không có tên trùng khớp.", "-179005984": "Lưu", "-2059312414": "Chi tiết quảng cáo", diff --git a/packages/p2p/src/translations/zh_cn.json b/packages/p2p/src/translations/zh_cn.json index 4a5602c563b6..b07d19c35a72 100644 --- a/packages/p2p/src/translations/zh_cn.json +++ b/packages/p2p/src/translations/zh_cn.json @@ -59,7 +59,7 @@ "662578726": "可用", "671582270": "最大允许金额为 {{value}}", "683273691": "费率 (1 {{ account_currency }})", - "723172934": "想买入或卖出美元?您可以发布自己的广告以供其他人回应。", + "723172934": "想买入或卖出美元?可以自己发布广告以供他人回应。", "728383001": "我收到的金额比约定的金额更大。", "733311523": "P2P 交易已被锁。支付代理不能使用此功能。", "767789372": "等待付款", @@ -132,7 +132,7 @@ "1467483693": "过去的订单", "1474532322": "排序方式", "1480915523": "跳过", - "1497156292": "此货币暂无广告。😞", + "1497156292": "此货币暂无广告😞", "1505293001": "交易伙伴", "1529843851": "验证链接将于 10 分钟后过期", "1583335572": "如广告连续 {{adverts_archive_period}} 天没收到订单将被停用。", @@ -167,6 +167,7 @@ "1886623509": "{{ad_type}} {{ account_currency }}", "1923443894": "非活动状态", "1928240840": "卖出 {{ currency }}", + "1929119945": "There are no ads yet", "1976156928": "您将发送", "1992961867": "费率 (1 {{currency}})", "1994023526": "输入的电子邮件地址拼写有误(有时这是难免的)。", @@ -201,6 +202,8 @@ "-1965472924": "固定费率", "-1081775102": "{{field_name}} 不可小于最大限额", "-885044836": "{{field_name}} 不可大于最大限额", + "-1921077416": "All ({{list_value}})", + "-608125128": "Blocked ({{list_value}})", "-1764050750": "付款详细信息", "-2021135479": "此为必填字段。", "-2005205076": "{{field_name}} 已超过最大长度 200 个字符。", @@ -218,7 +221,6 @@ "-1940034707": "买方的指示", "-137444201": "买入", "-1306639327": "支付方式", - "-1102534097": "无广告", "-904197848": "限额 {{min_order_amount_limit_display}}-{{max_order_amount_limit_display}} {{currency}}", "-464361439": "{{- avg_buy_time_in_minutes}} 分钟", "-2109576323": "卖出完成 <0>30天", @@ -235,7 +237,8 @@ "-1837059346": "买入 / 卖出", "-494667560": "订单", "-679691613": "我的广告", - "-1426771335": "没有被封禁的广告商", + "-1314987447": "No users to show here.", + "-1298666786": "My counterparties", "-1530773708": "封禁 {{advertiser_name}}?", "-1148912768": "如果市场汇率与此处显示的汇率有所不同,将无法处理订单。", "-55126326": "卖方", @@ -259,7 +262,7 @@ "-75934135": "匹配的广告", "-1856204727": "重置", "-73663931": "创建广告", - "-141315849": "目前没有关于这种货币的广告 😞", + "-141315849": "此货币目前无广告😞", "-1638172550": "要启用此功能,您必须完成以下操作:", "-559300364": "您的 Deriv P2P 收银台已锁定", "-2124584325": "已经验证了订单", @@ -305,6 +308,7 @@ "-1220275347": "此广告有多达 3 种付款方式供选择。", "-1889014820": "<0>没有看到付款方式? <1>添加新的。", "-806152028": "您的广告正在推行", + "-1241719539": "When you block someone, you won't see their ads, and they can't see yours. Your ads will be hidden from their search results, too.", "-1007339977": "没有匹配的名称。", "-179005984": "保存", "-2059312414": "广告详情", diff --git a/packages/p2p/src/translations/zh_tw.json b/packages/p2p/src/translations/zh_tw.json index 9f922ab5ae8c..3bf7201f1123 100644 --- a/packages/p2p/src/translations/zh_tw.json +++ b/packages/p2p/src/translations/zh_tw.json @@ -59,7 +59,7 @@ "662578726": "可用", "671582270": "最大允許金額為 {{value}}", "683273691": "費率 (1 {{ account_currency }})", - "723172934": "想要買賣美元?您可以發布自己的廣告,以供其他人回复。", + "723172934": "想要買賣美元?可以自己發佈廣告,以供他人回覆。", "728383001": "我收到的金額比約定的金額更大。", "733311523": "P2P交易已被鎖。支付代理不能使用此功能。", "767789372": "等待付款", @@ -132,7 +132,7 @@ "1467483693": "過去的訂單", "1474532322": "排序方式", "1480915523": "略過", - "1497156292": "此貨幣沒有廣告。😞", + "1497156292": "此貨幣沒有廣告😞", "1505293001": "交易夥伴", "1529843851": "驗證連結將於 10 分鐘後過期", "1583335572": "如廣告連續 {{adverts_archive_period}} 天沒接到訂單將被停用。", @@ -167,6 +167,7 @@ "1886623509": "{{ad_type}} {{ account_currency }}", "1923443894": "非使用中", "1928240840": "賣出 {{ currency }}", + "1929119945": "There are no ads yet", "1976156928": "您將傳送", "1992961867": "費率 (1 {{currency}})", "1994023526": "您輸入的電子郵件地址拼寫有誤(有時這是難免的)。", @@ -201,6 +202,8 @@ "-1965472924": "固定費率", "-1081775102": "{{field_name}} 不可小於最大限額", "-885044836": "{{field_name}} 不可大於最大限額", + "-1921077416": "All ({{list_value}})", + "-608125128": "Blocked ({{list_value}})", "-1764050750": "付款詳細資料", "-2021135479": "此為必填欄位。", "-2005205076": "{{field_name}} 已超過最大長度 200 個字元。", @@ -218,7 +221,6 @@ "-1940034707": "買方的指示", "-137444201": "買入", "-1306639327": "支付方式", - "-1102534097": "無廣告", "-904197848": "限額 {{min_order_amount_limit_display}}-{{max_order_amount_limit_display}} {{currency}}", "-464361439": "{{- avg_buy_time_in_minutes}} 分鐘", "-2109576323": "完成賣出 <0>30天", @@ -235,7 +237,8 @@ "-1837059346": "買入 / 賣出", "-494667560": "訂單", "-679691613": "我的廣告", - "-1426771335": "沒有被封禁的廣告商", + "-1314987447": "No users to show here.", + "-1298666786": "My counterparties", "-1530773708": "封禁 {{advertiser_name}}?", "-1148912768": "如果市場匯率與此處顯示的匯率有所不同,將無法處理訂單。", "-55126326": "賣方", @@ -305,6 +308,7 @@ "-1220275347": "此廣告有多達 3 種付款方式供選擇。", "-1889014820": "<0>沒看到付款方式? <1>新增。", "-806152028": "您的廣告正在執行", + "-1241719539": "When you block someone, you won't see their ads, and they can't see yours. Your ads will be hidden from their search results, too.", "-1007339977": "沒有相符的名稱。", "-179005984": "儲存", "-2059312414": "詳細廣告資料", diff --git a/packages/translations/src/translations/vi.json b/packages/translations/src/translations/vi.json index ab8bfa3a728f..27a78ea90e46 100644 --- a/packages/translations/src/translations/vi.json +++ b/packages/translations/src/translations/vi.json @@ -55,7 +55,7 @@ "73326375": "Thấp là điểm thấp nhất thị trường chạm đến trong khoảng thời gian hợp đồng hoạt động.", "74963864": "Thấp hơn", "76916358": "Bạn đã đạt đến giới hạn rút tiền.<0/>Vui lòng tải lên bằng chứng nhận dạng và địa chỉ của bạn để nâng giới hạn và tiếp tục rút tiền của bạn.", - "80881349": "Nhận tài khoản Tùy chọn", + "80881349": "Nhận tài khoản Quyền chọn", "81450871": "Chúng tôi không tìm thấy trang đó", "82839270": "Tải lên trang ảnh trong hộ chiếu của bạn.", "83202647": "Thu gọn Khung", @@ -84,12 +84,12 @@ "119446122": "Loại hợp đồng không được chọn", "120340777": "Hoàn thành thông tin cá nhân", "123454801": "{{withdraw_amount}} {{currency_symbol}}", - "124625402": "của", + "124625402": "trên", "124723298": "Tải lên giấy tờ xác minh địa chỉ của bạn", "125443840": "6. Khởi động lại giao dịch cuối nếu có lỗi", "127307725": "Một cá nhân có ảnh hưởng chính trị (PEP) là người được bổ nhiệm một vị trí quan trọng trong xã hội. Người có quan hệ thân thiết hay là thành viên gia đình của một PEP cũng sẽ được coi là một PEP.", "130567238": "SAU ĐÓ", - "132596476": "Khi cung cấp dịch vụ của chúng tôi cho bạn, chúng tôi được yêu cầu bạn cung cấp một số thông tin để đánh giá xem một sản phẩm hoặc dịch vụ nhất định có phù hợp với bạn hay không và liệu bạn có kinh nghiệm và kiến thức để hiểu được những rủi ro liên quan đến hay không.<0/><0/>", + "132596476": "Khi chúng tôi cung cấp dịch vụ cho bạn, chúng tôi được quyền yêu cầu bạn cung cấp một số thông tin để đánh giá xem một sản phẩm hoặc dịch vụ nhất định có phù hợp với bạn hay không và liệu bạn có kinh nghiệm và kiến thức để hiểu được những rủi ro liên quan đến hay không.<0/><0/>", "132689841": "Giao dịch trên web", "133523018": "Vui lòng đi đến trang Gửi tiền để được nhận một địa chỉ.", "133536621": "và", @@ -169,7 +169,7 @@ "233500222": "- Cao: giá cao nhất", "235583807": "SMA là một chỉ số được sử dụng thường xuyên trong phân tích kỹ thuật. Nó tính toán giá trung bình của thị trường trong một khoảng thời gian xác định và thường được sử dụng để xác định hướng xu hướng thị trường: tăng hoặc giảm. Ví dụ, nếu SMA đang đi lên, điều đó có nghĩa là xu hướng thị trường tăng lên. ", "236642001": "Nhật ký", - "238496287": "Giao dịch Leverage có nguy cơ cao, vì vậy bạn nên sử dụng các tính năng quản lý rủi ro như stop loss. Stop loss cho phép bạn", + "238496287": "Giao dịch Đòn bẩy có nguy cơ rủi ro cao, vì vậy bạn nên sử dụng các tính năng quản lý rủi ro như cắt lỗ. Cắt lỗ cho phép bạn", "240247367": "Bảng lợi nhuận", "243614144": "Tính năng này chỉ khả dụng cho các khách hàng đang sử dụng.", "245005091": "thấp hơn", @@ -182,7 +182,7 @@ "251134918": "Thông tin tài khoản", "251322536": "Tài khoản Deriv EZ", "251445658": "Nền tối", - "251882697": "Cảm ơn bạn! Phản hồi của bạn đã được ghi lại vào hệ thống của chúng tôi.<0/><0/> Vui lòng nhấp vào “OK” để tiếp tục.", + "251882697": "Cảm ơn bạn! Phản hồi của bạn đã được ghi nhận vào hệ thống của chúng tôi.<0/><0/> Vui lòng nhấp “OK” để tiếp tục.", "254912581": "Khung này tương tự như EMA, ngoại trừ việc nó cung cấp cho bạn toàn bộ dòng EMA dựa trên danh sách đầu vào và khoảng thời gian nhất định.", "256031314": "Kinh Doanh Tiền Mặt", "256602726": "Nếu bạn hủy tài khoản của mình:", @@ -196,7 +196,7 @@ "265644304": "Kiểu giao dịch", "267992618": "Các nền tảng thiếu các tính năng hoặc chức năng thiết yếu.", "268940240": "Số dư của bạn ({{format_balance}} {{currency}}) ít hơn số tiền tối thiểu được phép rút hiện tại ({{format_min_withdraw_amount}} {{currency}}). Vui lòng nạp tiền vào tài khoản để tiếp tục rút tiền.", - "269322978": "Nạp tiền với tiền tệ tại nơi bạn sống qua giao dịch ngang hàng với các người dùng khác tại quốc gia của bạn.", + "269322978": "Nạp tiền với đơn vị tiền tệ của bạn qua giao dịch trực tiếp P2P với các người dùng khác tại quốc gia của bạn.", "269607721": "Tải lên", "270339490": "Nếu bạn chọn \"Trên\", bạn sẽ giành chiến thắng nếu chữ số cuối cùng của tick cuối cùng lớn hơn so với dự đoán bạn đưa ra.", "270610771": "Trong ví dụ này, giá bắt đầu của một nến được gán vào biến \"candle_open_price\".", @@ -212,13 +212,13 @@ "278684544": "lấy danh sách phụ # từ cuối", "282319001": "Hãy kiểm tra ảnh của bạn", "282564053": "Tiếp theo, chúng tôi sẽ cần bằng chứng địa chỉ của bạn.", - "283830551": "Địa chỉ của bạn không khớp với hồ sơ của bạn", + "283830551": "Địa chỉ của bạn không khớp với địa chỉ đăng ký trên hồ sơ", "283986166": "Tự loại trừ trên trang web này chỉ áp dụng cho tài khoản {{brand_website_name}} của bạn và không bao gồm các công ty hoặc trang web khác.", "284527272": "antimode", "284772879": "Hợp đồng", "287934290": "Bạn có chắc chắn muốn hủy giao dịch này không?", "289898640": "ĐIỀU KHOẢN SỬ DỤNG", - "291817757": "Truy cập cộng đồng Derov của chúng tôi và tìm hiểu về các API, mã thông báo API, cách sử dụng API Div và nhiều hơn nữa.", + "291817757": "Truy cập trang cộng đồng Deriv của chúng tôi và tìm hiểu về API, mã thông báo API, cách sử dụng API Deriv và nhiều cái khác.", "292491635": "Nếu bạn chọn \"Dừng lỗ\" và đưa ra một giá trị nhất định để giới hạn lỗ cho mình, giao dịch của bạn sẽ tự động đóng khi số lỗ lớn hơn hoặc bằng giá trị này. Số lỗ của bạn có thể sẽ lớn hơn giá trị bạn đặt ra do phụ thuộc vào giá của thị trường tại thời điểm đóng.", "292526130": "Phân tích tick và nến", "292589175": "Ở đây sẽ hiển thị SMA trong khoảng thời gian được chỉ định, sử dụng danh sách nến.", @@ -319,7 +319,7 @@ "418265501": "Demo Derived", "420072489": "Tần xuất giao dịch CFD", "422055502": "Từ", - "424897068": "Bạn có hiểu rằng bạn có khả năng có thể mất 100% số tiền bạn sử dụng để giao dịch?", + "424897068": "Bạn có biết bạn có khả năng mất 100% số tiền bạn sử dụng để giao dịch?", "426031496": "Dừng", "427134581": "Thử dùng loại file khác.", "427617266": "Bitcoin", @@ -340,7 +340,7 @@ "442520703": "$250,001 - $500,000", "443559872": "Tài chính SVG", "444484637": "Lý luận phủ định", - "445419365": "1-2 năm", + "445419365": "1 - 2 năm", "450983288": "Khoản tiền gửi của bạn không thành công do lỗi trên chuỗi khối. Vui lòng liên hệ với nhà cung cấp dịch vụ ví tiền điện tử của bạn để biết thêm thông tin.", "451852761": "Tiếp tục trên điện thoại", "452054360": "Tương tự như RSI, khung này cung cấp cho bạn một danh sách các giá trị cho mỗi mục trong danh sách đầu vào.", @@ -354,7 +354,7 @@ "460975214": "Hoàn thành bài Kiểm Tra Tính Phù Hợp của bạn", "461795838": "Vui lòng liên hệ chúng tôi qua trò chuyện trực tuyến để mở khóa.", "462079779": "Bán lại không được cho phép", - "462461595": "Khám phá hub của Trader", + "462461595": "Khám phá Trader hub", "463361726": "Chọn một mục", "465993338": "Oscar's Grind", "466369320": "Tổng lợi nhuận của bạn là tỷ lệ phần trăm thay đổi của giá thị trường nhân với số tiền đặt cược của bạn và hệ số được chọn ở đây.", @@ -448,7 +448,7 @@ "584028307": "Cho phép bằng nhau", "587577425": "Bảo vệ tài khoản của tôi", "587856857": "Bạn muốn biết thêm về API?", - "592087722": "Tình trạng việc làm là bắt buộc.", + "592087722": "Phải có thông tin công việc.", "593459109": "Thử loại tiền tệ khác", "595080994": "Example: CR123456789", "595136687": "Lưu Chiến lược", @@ -476,7 +476,7 @@ "626809456": "Gửi lại", "627292452": "<0> Xác minh danh tính hoặc xác minh địa chỉ của bạn không đúng với yêu cầu của chúng tôi. Vui lòng kiểm tra email để được hướng dẫn thêm.", "627814558": "Khung này trả về một giá trị khi một điều kiện là đúng. Sử dụng khung này vào một trong các khung chức năng ở trên.", - "628193133": "ID tài khoản", + "628193133": "Tài khoản", "629145209": "Trong trường hợp nếu thuật toán \"AND\" được chọn, khung sẽ trả về giá trị \"Đúng\" chỉ khi cả hai điều kiện đưa ra là \"Đúng\"", "632398049": "Khung này gán giá trị rỗng cho một mục hoặc câu lệnh.", "634219491": "Bạn chưa cung cấp mã số thuế của mình. Thông tin này là cần thiết cho các yêu cầu pháp lý và quy định. Vui lòng truy cập tới <0>Chi tiết cá nhân trong phần cài đặt tài khoản của bạn và điền vào mã số thuế mới nhất của bạn.", @@ -493,7 +493,7 @@ "644150241": "Số hợp đồng bạn đã thắng được tính từ lần cuối bạn làm mới số liệu thông kê của mình.", "645016681": "Tần suất giao dịch bằng các công cụ tài chính khác", "645902266": "EUR/NZD", - "647039329": "Yêu cầu xác nhận địa chỉ", + "647039329": "Yêu cầu giấy tờ xác nhận địa chỉ", "647192851": "Hợp đồng sẽ được bán ở giá thị trường hiện hành khi máy chủ nhận được yêu cầu. Giá này có thể khác với giá đã được chỉ định.", "647745382": "Danh sách Đầu vào {{ input_list }}", "649317411": "Dựa trên cơ sở các thông tin được cung cấp liên quan đến kiến thức và kinh nghiệm của bạn, chúng tôi cho rằng những khoản đầu tư hiện có trên trang web này là không thích hợp cho bạn.<0/><1/>", @@ -511,7 +511,7 @@ "659482342": "Hãy nhớ rằng bạn có trách nhiệm giữ cho câu trả lời của mình chính xác và cập nhật. Bạn có thể cập nhật chi tiết cá nhân của mình bất kỳ lúc nào trong phần cài đặt tài khoản của mình.", "660481941": "Để truy cập các ứng dụng dành cho thiết bị di động của bạn và các ứng dụng bên thứ ba khác, trước tiên bạn cần tạo mã thông báo API.", "660991534": "Kết thúc", - "661759508": "Dựa trên cơ sở các thông tin được cung cấp liên quan đến kiến thức và kinh nghiệm của bạn, chúng tôi cho rằng những khoản đầu tư hiện có trên trang web này là không thích hợp cho bạn.<0/><0/>", + "661759508": "Dựa trên các thông tin được cung cấp về kiến thức và kinh nghiệm của bạn, chúng tôi thấy rằng những khoản đầu tư hiện có trên trang web này không thích hợp với bạn.<0/><0/>", "662578726": "Khả dụng", "662609119": "Tải ứng dụng MT5", "665089217": "Vui lòng gửi <0>bằng chứng nhận dạng để xác thực tài khoản và truy cập vào Quỹ của bạn.", @@ -576,7 +576,7 @@ "745656178": "Sử dụng khung này để bán hợp đồng của bạn \btại giá thị trường.", "745674059": "Trả về ký tự cụ thể từ một chuỗi văn bản đã cho theo tùy chọn. ", "746112978": "Máy tính của bạn có thể mất vài giây để cập nhật", - "750886728": "Chuyển sang tài khoản thực của bạn để gửi tài liệu của bạn", + "750886728": "Chuyển sang tài khoản thực của bạn để gửi tài liệu", "751692023": "Chúng tôi <0>không đảm bảo hoàn tiền nếu bạn chuyển khoản sai.", "752024971": "Đạt số chữ số tối đa", "752633544": "Bạn sẽ cần phải nộp bằng chứng danh tính và địa chỉ khi bạn đạt đến một số ngưỡng nhất định", @@ -647,7 +647,7 @@ "834966953": "1551661986 giây kể từ ngày 1 tháng 1 năm 1970 (UTC) dịch sang 03/04/2019 @ 1:13 sáng (UTC).", "835058671": "Tổng giá mua", "835350845": "Thêm một hoặc hai từ khác. Những từ không phổ biến sẽ tốt hơn.", - "836097457": "Tôi quan tâm đến giao dịch nhưng có rất ít kinh nghiệm.", + "836097457": "Tôi quan tâm đến trading nhưng có rất ít kinh nghiệm.", "837066896": "Tài liệu của bạn đang được xem xét, vui lòng đợi thêm 1-3 ngày nữa.", "839618971": "ĐỊA CHỈ", "839805709": "Để việc xác minh dễ dàng, chúng tôi cần một bức ảnh có chất lượng tốt hơn", @@ -705,13 +705,13 @@ "905227556": "Mật khẩu mạnh chứa ít nhất 8 ký tự, bao gồm chữ viết hoa, chữ viết thường và số.", "905564365": "CFD MT5", "906049814": "Chúng tôi sẽ xem xét tài liệu và thông báo cho bạn về tình trạng của nó trong vòng 5 phút.", - "907680782": "Chứng minh quyền sở hữu không thành công", + "907680782": "Giấy tờ chứng minh quyền sở hữu không đạt yêu cầu", "910888293": "Có quá nhiều lần thử", "915735109": "Quay lại {{platform_name}}", "918447723": "Thực", "920125517": "Thêm tài khoản Demo", - "921901739": "- chi tiết tài khoản của bạn về ngân hàng được liên kết với tài khoản của bạn", - "924046954": "Tải lên một tài liệu hiển thị tên và số tài khoản ngân hàng hoặc chi tiết tài khoản của bạn.", + "921901739": "- chi tiết thông tin tài khoản ngân hàng liên kết với tài khoản của bạn", + "924046954": "Tải lên giấy tờ hiển thị tên và số tài khoản ngân hàng hoặc thông tin chi tiết tài khoản của bạn.", "926813068": "Cố định/Biến Động", "929608744": "Bạn không thể rút tiền", "930346117": "Viết hoa không giúp được gì nhiều", @@ -763,7 +763,7 @@ "982146443": "WhatsApp", "982402892": "Dòng đầu tiên của địa chỉ", "982829181": "Rào cản", - "987224688": "Bạn đã đặt bao nhiêu giao dịch với các công cụ tài chính khác trong 12 tháng qua?", + "987224688": "Bạn đã thực hiện bao nhiêu giao dịch với các công cụ tài chính khác trong 12 tháng qua?", "987900242": "Tổng tài sản trong các tài khoản demo Deriv, {{platform_name_mt5}} và {{platform_name_dxtrade}} của bạn.", "988361781": "Bạn chưa có hoạt động giao dịch nào.", "988934465": "Khi được nhắc, bạn phải bật quyền truy cập máy ảnh để tiếp tục", @@ -779,7 +779,7 @@ "1006664890": "Yên lặng", "1009032439": "Toàn thời gian", "1010198306": "Khung này tạo ra một danh sách với các chuỗi và số.", - "1010337648": "Chúng tôi không thể xác minh bằng chứng quyền sở hữu của bạn.", + "1010337648": "Chúng tôi không thể xác minh giấy tờ chứng minh quyền sở hữu của bạn.", "1012102263": "Bạn sẽ không thê đăng nhập vào tài khoản của mình cho đến ngày này (lên đến 6 tuần tính từ hôm nay).", "1015201500": "Xác định các tùy chọn giao dịch của bạn như thời hạn và \bmức cược.", "1016220824": "Bạn cần chuyển sang tài khoản tiền thật để sử dụng tính năng này.<0/>Bạn có thể thực hiện việc này bằng cách chọn tài khoản thực từ <1>Chuyển đổi tài khoản.", @@ -855,7 +855,7 @@ "1086118495": "Hub của Trader", "1088138125": "Tick {{current_tick}} - ", "1089085289": "Số di động", - "1096078516": "Chúng tôi sẽ xem xét tài liệu của bạn và thông báo cho bạn về tình trạng của nó trong vòng 3 ngày.", + "1096078516": "Chúng tôi sẽ xem xét giấy tờ của bạn và thông báo đến bạn về tình trạng của nó trong vòng 3 ngày.", "1096175323": "Bạn sẽ cần một tài khoản Deriv", "1098147569": "Mua hàng hóa hoặc cổ phần của một công ty.", "1098622295": "\"i\" bắt đầu với giá trị bằng 1, và sễ tăng thêm 2 sau mỗi vòng lặp. Vòng lặp sẽ được thực hiện cho đến khi \"i\" đạt giá trị 12, sau đó vòng lặp sẽ kết thúc.", @@ -874,7 +874,7 @@ "1112582372": "Khoảng thời gian", "1113119682": "K\u001dhung này cung cấp cho bạn giá trị nến đã chọn từ danh sách nến.", "1113292761": "Ít hơn 8MB", - "1113433728": "Nộp lại chứng minh danh tính và địa chỉ", + "1113433728": "Gửi lại chứng minh danh tính và địa chỉ", "1117863275": "Bảo mật và Riêng tư", "1118294625": "Bạn đã chọn loại trừ bản thân khỏi giao dịch trên trang web của chúng tôi cho đến {{exclusion_end}}. Nếu bạn không thể thực hiện giao dịch hoặc ký quỹ sau thời gian tự loại trừ của mình, vui lòng liên hệ với chúng tôi qua trò chuyện trực tuyến.", "1119887091": "Xác minh", @@ -886,7 +886,7 @@ "1126075317": "Thêm tài khoản Deriv MT5 <0>{{account_type_name}} STP của bạn theo Deriv (FX) Ltd được quản lý bởi Cơ quan Dịch vụ Tài chính Labuan (Giấy phép số MB/18/0024).", "1126934455": "Độ dài tên của token phải nằm trong khoảng từ 2 đến 32 chữ cái.", "1127149819": "Hãy đảm bảo§", - "1128139358": "Bạn đã đặt bao nhiêu giao dịch CFD trong 12 tháng qua?", + "1128139358": "Bạn đã thực hiện bao nhiêu giao dịch CFD trong 12 tháng qua?", "1128321947": "Xóa tất cả", "1128404172": "Hoàn tác", "1129124569": "Nếu bạn chọn \"Dưới\", bạn sẽ thắng nếu chữ số sau cùng của tick cuối thấp hơn so với dự đoán bạn đưa ra.", @@ -947,7 +947,7 @@ "1201773643": "số", "1203297580": "Khung này gửi một tin nhắn tới kênh Telegram.", "1204223111": "Trong ví dụ, giá bắt đầu từ một danh sách nến của một nến được gán vào một biến gọi là \"candle_list\".", - "1206227936": "Làm thế nào để che giấu thẻ của bạn?", + "1206227936": "Làm thế nào để ẩn thẻ của bạn?", "1206821331": "Lực lượng vũ trang", "1208729868": "Ticks", "1208903663": "Mã không hợp lệ", From 61adb3d5ddf1104e125d604b94bc428b42c1c2f7 Mon Sep 17 00:00:00 2001 From: Farzin Mirzaie <72082844+farzin-deriv@users.noreply.github.com> Date: Fri, 27 Jan 2023 18:09:52 +0800 Subject: [PATCH 80/84] Farzin/85472/R&D/Remove `CashierStore` initialization from core package (#7278) * refactor(cashier): :fire: remove `mobx-react-lite` from `cashier` * refactor(cashier): :recycle: replace `connect` with `useStore` for remaining components * refactor(cashier): :recycle: fix test files to use `StoreProvider` * refactor(cashier): :fire: remove `connect` from `cashier` * refactor(cashier): :fire: remove extra store related types from `cashier` * fix(stores): :bug: stop persisting the stores when store is unmount * feat(cashier): :sparkles: add `useCashierStore` hook * refactor(cashier): :recycle: replace `modules.cashier` with `useCashierStore` hook * refactor(cashier): :recycle: remove `useStore` hook return type override * fix(cashier): :memo: resolve PR conflicts * test(cashier): :white_check_mark: fix the tests * chore(cashier): :truck: rename `cashier_providers.tsx` to `cashier-providers.tsx` * Shayan/52349/react17 migration (#6908) * refactor: react version is upgraded to version 17 * fix: fixed typo * fix: changed declaration file location * fix: temporarily commented our two test cases that are failing * fix: fixed react-content-loader props * fix: fixed some bugs * fix: fixed z-index issue for popover in DBot page * fix: fixed popover position issue in DBot page * chore: an small change on how to turn string to array * fix: merge upstream develop into my branch and resolved conflicts * fix: resolved pr comments * fix: removed rc-drawer and refactored mobile drawer * fix: fixed test cases * fix: resolved pr comments * fix: resolved pr comment * fix: fixed typo * fix: resolved pr comments * fix: fixed slide-in component bug * fix: resolved pr comments * fix: resolved pr comments * fix: removed unnecessary lines * fix: resolved pr comments * Update packages/account/src/Components/personal-details/__tests__/personal-details.spec.js Co-authored-by: Niloofar Sadeghi <93518187+niloo-fs@users.noreply.github.com> * Update packages/account/src/Components/personal-details/__tests__/personal-details.spec.js Co-authored-by: Niloofar Sadeghi <93518187+niloo-fs@users.noreply.github.com> * Update packages/account/src/Components/personal-details/personal-details.jsx Co-authored-by: Niloofar Sadeghi <93518187+niloo-fs@users.noreply.github.com> * fix: fixed mt5 modal not appear on screen when clicking on trade button * fix: fixed Bug #84787 Co-authored-by: Shayan Khaleghparast <100833613+iman-fs@users.noreply.github.com> Co-authored-by: Niloofar Sadeghi <93518187+niloo-fs@users.noreply.github.com> * test(cashier): :white_check_mark: fix the tests * test(cashier): :white_check_mark: fix the tests * fix: add optional chaining in getMinDuration function (#7344) * fix: :bug: resolved issue with trade. odal (#7291) * feat(api): :technologist: improve `@deriv/api` typings * chore(cashier): :pencil2: fix React 17 type issue with `PropsWithChildren` * Revert "fix: :bug: resolved issue with trade. odal (#7291)" (#7364) This reverts commit b6f7e4c91b463c0e5c9431e101d4e3734671e632. * Farzin/85054/Call `resetWithrawForm` on `CryptoWithdrawForm` component `onunmount` (#7331) * fix(cashier): :bug: call `resetWithrawForm` on `CryptoWithdrawForm` component `onunmount` * test(cashier): :white_check_mark: fix failing test Co-authored-by: Farzin Mirzaie * Niloofar Sadeghi / Task - Refactor tests in the language.spec.js file (#7325) * refactor: language tests * fix: typo Co-authored-by: Niloofar Sadeghi * refactor: proposal tests (#7327) Co-authored-by: Niloofar Sadeghi * Niloofar Sadeghi / Task - Refactor tests in the error.spec.js file (#7324) * refactor: errors validator tests * fix: typo Co-authored-by: Niloofar Sadeghi * Niloofar Sadeghi / Task - Refactor tests in the binary-link.spec.tsx file (#7288) * refactor: binary-link tests * refactor: improve testids namings Co-authored-by: Niloofar Sadeghi * refactor: money tests (#7353) * refactor: toggle-positions tests (#7287) Co-authored-by: Niloofar Sadeghi * refactor: toggle-button tests (#7328) Co-authored-by: Niloofar Sadeghi * Niloofar Sadeghi / Task - Refactor tests in the toggle-button-group.spec.tsx file (#7330) * refactor: toggle-button-group tests * fix: test issue Co-authored-by: Niloofar Sadeghi * refactor: open-positions-table tests (#7374) * Niloofar Sadeghi / Task - Refactor tests in the marker-spot-label.spec.tsx file (#7355) * refactor: remove extra files from reports * refactor: marker-spot-label tests * Niloofar Sadeghi / Task - Refactor tests in the binary-link.spec.tsx file (#7286) * refactor: binary-link tests * test: added more tests Co-authored-by: Niloofar Sadeghi * Niloofar Sadeghi / Task - Refactor tests in the contract-type-dialog.spec.tsx file (#7285) * refactor: contract-type-dialog tests * test: added more tests * fix: circle/ci issue Co-authored-by: Niloofar Sadeghi * Niloofar Sadeghi / Task - Refactor tests in the platform-dropdown.spec.tsx file (#7282) * refactor: platform-dropdown tests * refactor: improve testids namings Co-authored-by: Niloofar Sadeghi Co-authored-by: Farzin Mirzaie Co-authored-by: Shayan Khaleghparast <100833613+shayan-deriv@users.noreply.github.com> Co-authored-by: Shayan Khaleghparast <100833613+iman-fs@users.noreply.github.com> Co-authored-by: Niloofar Sadeghi <93518187+niloo-fs@users.noreply.github.com> Co-authored-by: kate-deriv <121025168+kate-deriv@users.noreply.github.com> Co-authored-by: Likhith Kolayari <98398322+likhith-deriv@users.noreply.github.com> Co-authored-by: Farrah Mae Ochoa Co-authored-by: Matin shafiei Co-authored-by: Niloofar Sadeghi <93518187+niloofar-deriv@users.noreply.github.com> Co-authored-by: Niloofar Sadeghi --- .../src/__tests__/useSubscription.spec.tsx | 4 +- packages/api/src/__tests__/useWS.spec.tsx | 4 +- packages/api/src/useSubscription.ts | 6 +- packages/api/src/useWS.ts | 4 +- packages/api/types.ts | 8 +- packages/cashier/@deriv-stores.d.ts | 10 -- packages/cashier/src/app.jsx | 6 +- packages/cashier/src/cashier-providers.tsx | 14 +++ .../__tests__/account-prompt-dialog.spec.js | 4 +- .../account-prompt-dialog.jsx | 13 +-- .../virtual/__tests__/virtual.spec.tsx | 10 +- .../__tests__/cashier-locked.spec.tsx | 98 ++++++++++++++----- .../cashier-locked/cashier-locked.tsx | 8 +- .../cashier-onboarding-side-note.spec.js | 4 +- .../__tests__/cashier-onboarding.spec.js | 6 +- .../cashier-onboarding-side-note.jsx | 10 +- .../cashier-onboarding/cashier-onboarding.jsx | 11 +-- .../__tests__/crypto-fiat-converter.spec.tsx | 6 +- .../crypto-fiat-converter.tsx | 9 +- .../crypto-transactions-cancel-modal.spec.tsx | 4 +- .../crypto-transactions-history.spec.tsx | 4 +- .../crypto-transactions-renderer.spec.tsx | 4 +- .../crypto-transactions-status-modal.spec.tsx | 4 +- .../crypto-transactions-cancel-modal.tsx | 9 +- .../crypto-transactions-history.tsx | 9 +- .../crypto-transactions-renderer.tsx | 9 +- .../crypto-transactions-status-modal.tsx | 9 +- .../email-verification-empty-state.test.tsx | 4 +- .../__tests__/error-dialog.spec.tsx | 22 +++-- .../no-balance/__tests__/no-balance.spec.tsx | 6 +- .../src/components/no-balance/no-balance.tsx | 13 +-- .../__tests__/recent-transaction.spec.tsx | 6 +- .../recent-transaction/recent-transaction.tsx | 11 +-- .../__tests__/transfer-confirm.spec.tsx | 24 +++-- .../cashier/__tests__/cashier.spec.tsx | 4 +- .../src/containers/cashier/cashier.tsx | 8 +- .../routes/__tests__/routes.spec.tsx | 14 ++- .../error-component/error-component.tsx | 4 +- .../routes/route-with-sub-routes.tsx | 7 +- .../__tests__/account-transfer.spec.tsx | 12 +-- .../__tests__/account-transfer-form.spec.tsx | 4 +- .../account-transfer-form.tsx | 9 +- .../account-transfer-locked.spec.tsx | 10 +- .../account-transfer-no-account.spec.tsx | 4 +- .../account-transfer-receipt.spec.tsx | 6 +- .../account-transfer-receipt.tsx | 13 +-- .../account-transfer/account-transfer.tsx | 14 +-- .../pages/deposit/__tests__/deposit.spec.tsx | 46 ++++++--- .../__tests__/crypto-deposit.spec.tsx | 12 ++- .../deposit/crypto-deposit/crypto-deposit.tsx | 6 +- .../__tests__/deposit-locked.spec.tsx | 18 +++- .../deposit/deposit-locked/deposit-locked.tsx | 6 +- .../cashier/src/pages/deposit/deposit.tsx | 8 +- .../pages/on-ramp/__tests__/on-ramp.spec.tsx | 6 +- .../__tests__/on-ramp-provider-card.spec.tsx | 59 ++++++----- .../on-ramp-provider-card.tsx | 6 +- .../__tests__/on-ramp-provider-popup.spec.tsx | 38 +++++-- .../on-ramp-provider-popup.tsx | 8 +- .../cashier/src/pages/on-ramp/on-ramp.tsx | 7 +- .../p2p-cashier/__tests__/p2p-cashier.spec.js | 8 +- .../src/pages/p2p-cashier/p2p-cashier.jsx | 6 +- .../__tests__/payment-agent-transfer.spec.js | 6 +- .../payment-agent-transfer-confirm.spec.js | 6 +- .../payment-agent-transfer-confirm.jsx | 11 +-- .../payment-agent-transfer-form.spec.js | 6 +- .../payment-agent-transfer-form.jsx | 12 +-- .../payment-agent-transfer-receipt.spec.js | 6 +- .../payment-agent-transfer-receipt.jsx | 13 +-- .../payment-agent-transfer.jsx | 12 +-- .../__tests__/payment-agent.spec.js | 6 +- .../__tests__/payment-agent-container.spec.js | 6 +- .../payment-agent-container.jsx | 11 +-- .../payment-agent-list/deposit-tab.tsx | 6 +- .../payment-agent-list/payment-agent-list.tsx | 6 +- .../payment-agent-list/withdrawal-tab.tsx | 5 +- ...payment-agent-listed-withdraw-form.spec.js | 6 +- .../payment-agent-listed-withdraw-form.jsx | 13 +-- .../__tests__/payment-agent-receipt.spec.js | 6 +- .../payment-agent-receipt.jsx | 13 +-- .../payment-agent-search-box.jsx | 10 +- .../payment-agent-withdraw-form.spec.js | 6 +- .../payment-agent-unlisted-withdraw-form.jsx | 11 +-- .../payment-agent-withdraw-confirm.spec.js | 6 +- .../payment-agent-withdraw-confirm.jsx | 11 +-- .../src/pages/payment-agent/payment-agent.jsx | 14 +-- .../withdrawal/__tests__/withdrawal.spec.tsx | 6 +- .../__tests__/crypto-withdraw-form.spec.tsx | 6 +- .../crypto-withdraw-form.tsx | 15 +-- .../crypto-withdraw-receipt.spec.tsx | 6 +- .../crypto-withdraw-receipt.tsx | 15 +-- .../withdraw/__tests__/withdraw.spec.tsx | 6 +- .../pages/withdrawal/withdraw/withdraw.tsx | 13 +-- .../__tests__/withdrawal-locked.spec.tsx | 6 +- .../withdrawal-locked/withdrawal-locked.tsx | 12 +-- .../withdrawal-verification-email.tsx | 5 +- .../src/pages/withdrawal/withdrawal.tsx | 14 +-- .../cashier/src/stores/useCashierStores.tsx | 29 ++++++ packages/cashier/src/types/stores/index.ts | 9 +- packages/cashier/tsconfig.json | 2 +- 99 files changed, 544 insertions(+), 524 deletions(-) delete mode 100644 packages/cashier/@deriv-stores.d.ts create mode 100644 packages/cashier/src/cashier-providers.tsx create mode 100644 packages/cashier/src/stores/useCashierStores.tsx diff --git a/packages/api/src/__tests__/useSubscription.spec.tsx b/packages/api/src/__tests__/useSubscription.spec.tsx index 0ae94930ebce..e57ce87b5d7e 100644 --- a/packages/api/src/__tests__/useSubscription.spec.tsx +++ b/packages/api/src/__tests__/useSubscription.spec.tsx @@ -4,7 +4,7 @@ import { render, screen, waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { useWS as useWSShared } from '@deriv/shared'; import useSubscription from '../useSubscription'; -import { TSocketRequestProps, TSocketSubscribableEndpointNames } from '../../types'; +import { TSocketSubscribableEndpointNames, TSocketAcceptableProps } from '../../types'; jest.mock('@deriv/shared'); @@ -15,7 +15,7 @@ const UseSubscriptionExample = ({ request, }: { name: T; - request?: TSocketRequestProps; + request?: TSocketAcceptableProps; }) => { const WS = useSubscription(name); diff --git a/packages/api/src/__tests__/useWS.spec.tsx b/packages/api/src/__tests__/useWS.spec.tsx index fe6ec1d86138..f87a38c1bcc6 100644 --- a/packages/api/src/__tests__/useWS.spec.tsx +++ b/packages/api/src/__tests__/useWS.spec.tsx @@ -4,7 +4,7 @@ import { render, screen, waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { useWS as useWSShared } from '@deriv/shared'; import useWS from '../useWS'; -import { TSocketEndpointNames, TSocketRequestProps, TSocketResponse } from '../../types'; +import { TSocketEndpointNames, TSocketAcceptableProps, TSocketResponse } from '../../types'; jest.mock('@deriv/shared'); @@ -15,7 +15,7 @@ const UseWSExample = ({ request, }: { name: T; - request?: TSocketRequestProps; + request?: TSocketAcceptableProps; }) => { const WS = useWS(name); diff --git a/packages/api/src/useSubscription.ts b/packages/api/src/useSubscription.ts index 951c24d7da9d..baa623d3d8cc 100644 --- a/packages/api/src/useSubscription.ts +++ b/packages/api/src/useSubscription.ts @@ -1,6 +1,6 @@ -import { TSocketRequestProps, TSocketResponseData, TSocketSubscribableEndpointNames } from '../types'; -import { useWS as useWSShared } from '@deriv/shared'; import { useState } from 'react'; +import { useWS as useWSShared } from '@deriv/shared'; +import { TSocketSubscribableEndpointNames, TSocketAcceptableProps, TSocketResponseData } from '../types'; const useSubscription = (name: T) => { const [is_loading, setIsLoading] = useState(false); @@ -22,7 +22,7 @@ const useSubscription = (name: T) => setIsLoading(false); }; - const subscribe = (...props: TSocketRequestProps extends never ? [undefined?] : [TSocketRequestProps]) => { + const subscribe = (...props: TSocketAcceptableProps) => { setIsLoading(true); setSubscribed(true); diff --git a/packages/api/src/useWS.ts b/packages/api/src/useWS.ts index fd706f93b0ac..59ff72d6342d 100644 --- a/packages/api/src/useWS.ts +++ b/packages/api/src/useWS.ts @@ -1,6 +1,6 @@ import { useCallback, useState } from 'react'; import { useWS as useWSShared } from '@deriv/shared'; -import { TSocketEndpointNames, TSocketRequestProps, TSocketResponseData } from '../types'; +import { TSocketEndpointNames, TSocketAcceptableProps, TSocketResponseData } from '../types'; const useWS = (name: T) => { const [is_loading, setIsLoading] = useState(false); @@ -9,7 +9,7 @@ const useWS = (name: T) => { const WS = useWSShared(); const send = useCallback( - async (...props: TSocketRequestProps extends never ? [undefined?] : [TSocketRequestProps]) => { + async (...props: TSocketAcceptableProps) => { setIsLoading(true); try { diff --git a/packages/api/types.ts b/packages/api/types.ts index 9e2b2c8e37bf..8c74e4aed892 100644 --- a/packages/api/types.ts +++ b/packages/api/types.ts @@ -123,6 +123,12 @@ type TSocketRequestCleaned = Omit< (T extends KeysMatching, 1> ? T : never) | 'passthrough' | 'req_id' | 'subscribe' >; -export type TSocketRequestProps = TSocketRequestCleaned extends Record +type TSocketRequestProps = TSocketRequestCleaned extends Record ? never : TSocketRequestCleaned; + +export type TSocketAcceptableProps = TSocketRequestProps extends never + ? [undefined?] + : Partial> extends TSocketRequestProps + ? [TSocketRequestProps?] + : [TSocketRequestProps]; diff --git a/packages/cashier/@deriv-stores.d.ts b/packages/cashier/@deriv-stores.d.ts deleted file mode 100644 index 64835e5cda61..000000000000 --- a/packages/cashier/@deriv-stores.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import type { TStores } from '@deriv/stores'; -import type CashierStore from './src/stores/cashier-store'; - -declare module '@deriv/stores' { - export function useStore(): TStores & { - modules: { - cashier: CashierStore; - }; - }; -} diff --git a/packages/cashier/src/app.jsx b/packages/cashier/src/app.jsx index e0d6359c908c..883acaf13648 100644 --- a/packages/cashier/src/app.jsx +++ b/packages/cashier/src/app.jsx @@ -1,8 +1,8 @@ import React from 'react'; import { setWebsocket } from '@deriv/shared'; -import { StoreProvider } from '@deriv/stores'; import { init } from 'Utils/server_time'; import Routes from 'Containers/routes'; +import CashierProviders from './cashier-providers'; const App = ({ passthrough: { WS, root_store } }) => { React.useEffect(() => { @@ -12,9 +12,9 @@ const App = ({ passthrough: { WS, root_store } }) => { }, []); return ( - + - + ); }; diff --git a/packages/cashier/src/cashier-providers.tsx b/packages/cashier/src/cashier-providers.tsx new file mode 100644 index 000000000000..02874cf9101e --- /dev/null +++ b/packages/cashier/src/cashier-providers.tsx @@ -0,0 +1,14 @@ +import React from 'react'; +import { StoreProvider } from '@deriv/stores'; +import { CashierStoreProvider } from './stores/useCashierStores'; +import { TRootStore } from './types/stores'; + +const CashierProviders = ({ children, store }: React.PropsWithChildren<{ store: TRootStore }>) => { + return ( + + {children} + + ); +}; + +export default CashierProviders; diff --git a/packages/cashier/src/components/account-prompt-dialog/__tests__/account-prompt-dialog.spec.js b/packages/cashier/src/components/account-prompt-dialog/__tests__/account-prompt-dialog.spec.js index a5553c8a70a2..1c7ddb05552d 100644 --- a/packages/cashier/src/components/account-prompt-dialog/__tests__/account-prompt-dialog.spec.js +++ b/packages/cashier/src/components/account-prompt-dialog/__tests__/account-prompt-dialog.spec.js @@ -1,7 +1,7 @@ import React from 'react'; import { render, screen } from '@testing-library/react'; import AccountPromptDialog from '../account-prompt-dialog.jsx'; -import { StoreProvider } from '@deriv/stores'; +import CashierProviders from '../../../cashier-providers'; jest.mock('@deriv/components', () => ({ ...jest.requireActual('@deriv/components'), @@ -31,7 +31,7 @@ describe('', () => { }; it('should render dialog', () => { render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => {children}, }); expect(screen.getByText('Dialog')).toBeInTheDocument(); diff --git a/packages/cashier/src/components/account-prompt-dialog/account-prompt-dialog.jsx b/packages/cashier/src/components/account-prompt-dialog/account-prompt-dialog.jsx index 1f4cb0127aae..4965edceb4e3 100644 --- a/packages/cashier/src/components/account-prompt-dialog/account-prompt-dialog.jsx +++ b/packages/cashier/src/components/account-prompt-dialog/account-prompt-dialog.jsx @@ -4,16 +4,13 @@ import { Dialog } from '@deriv/components'; import { isCryptocurrency } from '@deriv/shared'; import { localize, Localize } from '@deriv/translations'; import { useStore, observer } from '@deriv/stores'; +import { useCashierStore } from '../../stores/useCashierStores'; const AccountPromptDialog = observer(() => { - const { - client: { accounts }, - modules: { - cashier: { - account_prompt_dialog: { continueRoute, is_confirmed, last_location, onCancel, onConfirm, should_show }, - }, - }, - } = useStore(); + const { client } = useStore(); + const { accounts } = client; + const { account_prompt_dialog } = useCashierStore(); + const { continueRoute, is_confirmed, last_location, onCancel, onConfirm, should_show } = account_prompt_dialog; React.useEffect(continueRoute, [is_confirmed, last_location, continueRoute]); diff --git a/packages/cashier/src/components/cashier-container/virtual/__tests__/virtual.spec.tsx b/packages/cashier/src/components/cashier-container/virtual/__tests__/virtual.spec.tsx index 9e97a5353d16..ad139added4a 100644 --- a/packages/cashier/src/components/cashier-container/virtual/__tests__/virtual.spec.tsx +++ b/packages/cashier/src/components/cashier-container/virtual/__tests__/virtual.spec.tsx @@ -3,7 +3,7 @@ import { fireEvent, render, screen } from '@testing-library/react'; import { createBrowserHistory } from 'history'; import { Router } from 'react-router'; import Virtual from '../virtual'; -import { StoreProvider } from '@deriv/stores'; +import CashierProviders from '../../../../cashier-providers'; describe('', () => { const history = createBrowserHistory(); @@ -21,7 +21,7 @@ describe('', () => { , { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => {children}, } ); @@ -34,7 +34,7 @@ describe('', () => { , { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => {children}, } ); @@ -49,7 +49,7 @@ describe('', () => { , { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => {children}, } ); @@ -62,7 +62,7 @@ describe('', () => { , { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => {children}, } ); diff --git a/packages/cashier/src/components/cashier-locked/__tests__/cashier-locked.spec.tsx b/packages/cashier/src/components/cashier-locked/__tests__/cashier-locked.spec.tsx index 0d4ec569f649..7aff5b73782e 100644 --- a/packages/cashier/src/components/cashier-locked/__tests__/cashier-locked.spec.tsx +++ b/packages/cashier/src/components/cashier-locked/__tests__/cashier-locked.spec.tsx @@ -1,8 +1,8 @@ import React from 'react'; import { render, screen } from '@testing-library/react'; import CashierLocked from '../cashier-locked'; -import { StoreProvider } from '@deriv/stores'; import { TRootStore } from 'Types'; +import CashierProviders from '../../../cashier-providers'; describe('', () => { it('should show the proper message if there is a cryptocashier maintenance', () => { @@ -28,7 +28,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect( @@ -61,7 +63,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect( @@ -94,7 +98,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect( @@ -127,7 +133,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect( @@ -160,7 +168,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect( @@ -193,7 +203,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect( @@ -226,7 +238,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect( @@ -259,7 +273,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect( @@ -292,7 +308,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect( @@ -323,7 +341,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect(screen.getByText(/Your account has not been authenticated./i)).toBeInTheDocument(); @@ -352,7 +372,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect(screen.getByTestId('dt_financial_assessment_link')).toHaveAttribute( @@ -384,7 +406,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect(screen.getByText(/Your cashier is locked./i)).toBeInTheDocument(); @@ -417,7 +441,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect(screen.getByText(/You have not provided your tax identification number./i)).toBeInTheDocument(); @@ -446,7 +472,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect(screen.getByText(/Your cashier is locked./i)).toBeInTheDocument(); @@ -475,7 +503,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect( @@ -508,7 +538,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect( @@ -545,7 +577,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect( @@ -578,7 +612,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect(screen.getByText('Please contact us via live chat.')).toBeInTheDocument(); @@ -607,7 +643,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect( @@ -640,7 +678,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect( @@ -673,7 +713,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect( @@ -704,7 +746,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect(screen.getByText(/Your account has not been authenticated./i)).toBeInTheDocument(); @@ -733,7 +777,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect( @@ -766,7 +812,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect( diff --git a/packages/cashier/src/components/cashier-locked/cashier-locked.tsx b/packages/cashier/src/components/cashier-locked/cashier-locked.tsx index ee9a07d880aa..c4b0f0a33501 100644 --- a/packages/cashier/src/components/cashier-locked/cashier-locked.tsx +++ b/packages/cashier/src/components/cashier-locked/cashier-locked.tsx @@ -3,10 +3,10 @@ import { useStore, observer } from '@deriv/stores'; import { useDepositLocked } from '@deriv/hooks'; import EmptyState from 'Components/empty-state'; import getMessage from './cashier-locked-provider'; +import { useCashierStore } from '../../stores/useCashierStores'; const CashierLocked = observer(() => { - const is_deposit_locked = useDepositLocked(); - const { client, modules } = useStore(); + const { client } = useStore(); const { account_status, accounts, @@ -15,9 +15,9 @@ const CashierLocked = observer(() => { loginid, is_identity_verification_needed, } = client; - const { cashier } = modules; - const { general_store } = cashier; + const { general_store } = useCashierStore(); const { is_cashier_locked, is_system_maintenance } = general_store; + const is_deposit_locked = useDepositLocked(); const state = getMessage({ cashier_validation: account_status.cashier_validation, diff --git a/packages/cashier/src/components/cashier-onboarding/__tests__/cashier-onboarding-side-note.spec.js b/packages/cashier/src/components/cashier-onboarding/__tests__/cashier-onboarding-side-note.spec.js index 7f237e20add7..a48fe790daee 100644 --- a/packages/cashier/src/components/cashier-onboarding/__tests__/cashier-onboarding-side-note.spec.js +++ b/packages/cashier/src/components/cashier-onboarding/__tests__/cashier-onboarding-side-note.spec.js @@ -1,7 +1,7 @@ import React from 'react'; import { fireEvent, render, screen } from '@testing-library/react'; import CashierOnboardingSideNote from '../cashier-onboarding-side-note'; -import { StoreProvider } from '@deriv/stores'; +import CashierProviders from '../../../cashier-providers'; describe('', () => { let mockRootStore; @@ -29,7 +29,7 @@ describe('', () => { const renderCashierOnboardingSideNote = () => render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => {children}, }); it('should show the proper messages, with fiat currency and can_change_fiat_currency={false} property', () => { diff --git a/packages/cashier/src/components/cashier-onboarding/__tests__/cashier-onboarding.spec.js b/packages/cashier/src/components/cashier-onboarding/__tests__/cashier-onboarding.spec.js index f888d71f1f55..2d1d580f6641 100644 --- a/packages/cashier/src/components/cashier-onboarding/__tests__/cashier-onboarding.spec.js +++ b/packages/cashier/src/components/cashier-onboarding/__tests__/cashier-onboarding.spec.js @@ -4,7 +4,7 @@ import CashierOnboarding from '../cashier-onboarding'; import { createBrowserHistory } from 'history'; import { Router } from 'react-router'; import { routes } from '@deriv/shared'; -import { StoreProvider } from '@deriv/stores'; +import CashierProviders from '../../../cashier-providers'; describe('', () => { let mockRootStore; @@ -65,7 +65,7 @@ describe('', () => { const renderCashierOnboarding = () => render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => {children}, }); const renderCashierOnboardingWithRouter = () => @@ -74,7 +74,7 @@ describe('', () => { , { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => {children}, } ); diff --git a/packages/cashier/src/components/cashier-onboarding/cashier-onboarding-side-note.jsx b/packages/cashier/src/components/cashier-onboarding/cashier-onboarding-side-note.jsx index 50229dfe1da1..106be2b70949 100644 --- a/packages/cashier/src/components/cashier-onboarding/cashier-onboarding-side-note.jsx +++ b/packages/cashier/src/components/cashier-onboarding/cashier-onboarding-side-note.jsx @@ -3,16 +3,12 @@ import { Localize } from '@deriv/translations'; import { Icon, Text } from '@deriv/components'; import { getCurrencyDisplayCode, getPlatformSettings, routes } from '@deriv/shared'; import { useStore, observer } from '@deriv/stores'; +import { useCashierStore } from '../../stores/useCashierStores'; import './cashier-onboarding.scss'; const CashierOnboardingSideNote = observer(({ is_crypto }) => { - const { - client, - ui, - modules: { - cashier: { general_store }, - }, - } = useStore(); + const { client, ui } = useStore(); + const { general_store } = useCashierStore(); const { currency } = client; const { openRealAccountSignup } = ui; const { setDepositTarget } = general_store; diff --git a/packages/cashier/src/components/cashier-onboarding/cashier-onboarding.jsx b/packages/cashier/src/components/cashier-onboarding/cashier-onboarding.jsx index b14da9686b5f..f10a08e477f7 100644 --- a/packages/cashier/src/components/cashier-onboarding/cashier-onboarding.jsx +++ b/packages/cashier/src/components/cashier-onboarding/cashier-onboarding.jsx @@ -9,16 +9,11 @@ import Providers from './cashier-onboarding-providers'; import CashierOnboardingDetails from './cashier-onboarding-details.jsx'; import CashierOnboardingSideNote from './cashier-onboarding-side-note.jsx'; import SideNote from 'Components/side-note'; +import { useCashierStore } from '../../stores/useCashierStores'; const CashierOnboarding = observer(({ setSideNotes }) => { - const { - client, - ui, - common, - modules: { - cashier: { general_store, payment_agent, account_prompt_dialog }, - }, - } = useStore(); + const { client, ui, common } = useStore(); + const { general_store, payment_agent, account_prompt_dialog } = useCashierStore(); const { accounts, available_crypto_currencies, diff --git a/packages/cashier/src/components/crypto-fiat-converter/__tests__/crypto-fiat-converter.spec.tsx b/packages/cashier/src/components/crypto-fiat-converter/__tests__/crypto-fiat-converter.spec.tsx index 2abd42c018ae..79ce1ba999a6 100644 --- a/packages/cashier/src/components/crypto-fiat-converter/__tests__/crypto-fiat-converter.spec.tsx +++ b/packages/cashier/src/components/crypto-fiat-converter/__tests__/crypto-fiat-converter.spec.tsx @@ -1,9 +1,9 @@ import React from 'react'; import { fireEvent, render, screen } from '@testing-library/react'; import CryptoFiatConverter from '../crypto-fiat-converter'; -import { StoreProvider } from '@deriv/stores'; import { Formik } from 'formik'; import * as formik from 'formik'; +import CashierProviders from '../../../cashier-providers'; describe('', () => { let mockRootStore, mockProps; @@ -34,11 +34,11 @@ describe('', () => { const renderCryptoFiatConverter = () => { return render( - + - + ); }; diff --git a/packages/cashier/src/components/crypto-fiat-converter/crypto-fiat-converter.tsx b/packages/cashier/src/components/crypto-fiat-converter/crypto-fiat-converter.tsx index b85c3b8a4821..059090126f33 100644 --- a/packages/cashier/src/components/crypto-fiat-converter/crypto-fiat-converter.tsx +++ b/packages/cashier/src/components/crypto-fiat-converter/crypto-fiat-converter.tsx @@ -3,8 +3,9 @@ import { Field, FieldProps, useFormikContext } from 'formik'; import { DesktopWrapper, Input, Icon, MobileWrapper, Text, useInterval } from '@deriv/components'; import { getCurrencyDisplayCode } from '@deriv/shared'; import { localize, Localize } from '@deriv/translations'; -import { useStore, observer } from '@deriv/stores'; +import { observer } from '@deriv/stores'; import { TReactChangeEvent, TReactChildren } from 'Types'; +import { useCashierStore } from '../../stores/useCashierStores'; import './crypto-fiat-converter.scss'; type TTimerProps = { @@ -74,11 +75,7 @@ const CryptoFiatConverter = observer( validateFromAmount, validateToAmount, }: TCryptoFiatConverterProps) => { - const { - modules: { - cashier: { crypto_fiat_converter }, - }, - } = useStore(); + const { crypto_fiat_converter } = useCashierStore(); const { converter_from_amount, diff --git a/packages/cashier/src/components/crypto-transactions-history/__tests__/crypto-transactions-cancel-modal.spec.tsx b/packages/cashier/src/components/crypto-transactions-history/__tests__/crypto-transactions-cancel-modal.spec.tsx index 335975a6ccb6..a01fa2776a1a 100644 --- a/packages/cashier/src/components/crypto-transactions-history/__tests__/crypto-transactions-cancel-modal.spec.tsx +++ b/packages/cashier/src/components/crypto-transactions-history/__tests__/crypto-transactions-cancel-modal.spec.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { fireEvent, render, screen } from '@testing-library/react'; import CryptoTransactionsCancelModal from '../crypto-transactions-cancel-modal'; -import { StoreProvider } from '@deriv/stores'; +import CashierProviders from '../../../cashier-providers'; describe('', () => { let modal_root_el, mockRootStore; @@ -31,7 +31,7 @@ describe('', () => { const renderCryptoTransactionsCancelModal = () => render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => {children}, }); it('should show "Are you sure you want to cancel this transaction" and "Cancel transaction" messages, "Yes" and "No" buttons', () => { diff --git a/packages/cashier/src/components/crypto-transactions-history/__tests__/crypto-transactions-history.spec.tsx b/packages/cashier/src/components/crypto-transactions-history/__tests__/crypto-transactions-history.spec.tsx index cdc6b3651de5..5f75b7b3fd40 100644 --- a/packages/cashier/src/components/crypto-transactions-history/__tests__/crypto-transactions-history.spec.tsx +++ b/packages/cashier/src/components/crypto-transactions-history/__tests__/crypto-transactions-history.spec.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { fireEvent, render, screen } from '@testing-library/react'; import CryptoTransactionsHistory from '../crypto-transactions-history'; -import { StoreProvider } from '@deriv/stores'; +import CashierProviders from '../../../cashier-providers'; describe('', () => { let mockRootStore; @@ -28,7 +28,7 @@ describe('', () => { const renderCryptoTransactionsHistory = () => render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => {children}, }); it('should show "USD recent transactions" and "No current transactions available" messages', () => { diff --git a/packages/cashier/src/components/crypto-transactions-history/__tests__/crypto-transactions-renderer.spec.tsx b/packages/cashier/src/components/crypto-transactions-history/__tests__/crypto-transactions-renderer.spec.tsx index 8918985656fd..290c38cab97a 100644 --- a/packages/cashier/src/components/crypto-transactions-history/__tests__/crypto-transactions-renderer.spec.tsx +++ b/packages/cashier/src/components/crypto-transactions-history/__tests__/crypto-transactions-renderer.spec.tsx @@ -2,7 +2,7 @@ import React from 'react'; import { fireEvent, render, screen, waitFor } from '@testing-library/react'; import { isMobile } from '@deriv/shared'; import CryptoTransactionsRenderer from '../crypto-transactions-renderer'; -import { StoreProvider } from '@deriv/stores'; +import CashierProviders from '../../../cashier-providers'; jest.mock('@deriv/shared/src/utils/screen/responsive', () => ({ ...jest.requireActual('@deriv/shared/src/utils/screen/responsive'), @@ -44,7 +44,7 @@ describe('', () => { const renderCryptoTransactionsRenderer = () => render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => {children}, }); it('should show the proper data in Desktop mode', () => { diff --git a/packages/cashier/src/components/crypto-transactions-history/__tests__/crypto-transactions-status-modal.spec.tsx b/packages/cashier/src/components/crypto-transactions-history/__tests__/crypto-transactions-status-modal.spec.tsx index e5d86fb12742..9c1809a4b7a2 100644 --- a/packages/cashier/src/components/crypto-transactions-history/__tests__/crypto-transactions-status-modal.spec.tsx +++ b/packages/cashier/src/components/crypto-transactions-history/__tests__/crypto-transactions-status-modal.spec.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { fireEvent, render, screen } from '@testing-library/react'; import CryptoTransactionsStatusModal from '../crypto-transactions-status-modal'; -import { StoreProvider } from '@deriv/stores'; +import CashierProviders from '../../../cashier-providers'; describe('', () => { let modal_root_el, mockRootStore; @@ -31,7 +31,7 @@ describe('', () => { const renderCryptoTransactionsStatusModal = () => render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => {children}, }); it('should show proper messages and "OK" button', () => { diff --git a/packages/cashier/src/components/crypto-transactions-history/crypto-transactions-cancel-modal.tsx b/packages/cashier/src/components/crypto-transactions-history/crypto-transactions-cancel-modal.tsx index fdfc6fadde1e..bc71bca5a0bb 100644 --- a/packages/cashier/src/components/crypto-transactions-history/crypto-transactions-cancel-modal.tsx +++ b/packages/cashier/src/components/crypto-transactions-history/crypto-transactions-cancel-modal.tsx @@ -1,14 +1,11 @@ import React from 'react'; import { Button, Modal } from '@deriv/components'; import { localize, Localize } from '@deriv/translations'; -import { useStore, observer } from '@deriv/stores'; +import { observer } from '@deriv/stores'; +import { useCashierStore } from '../../stores/useCashierStores'; const CryptoTransactionsCancelModal = observer(() => { - const { - modules: { - cashier: { transaction_history }, - }, - } = useStore(); + const { transaction_history } = useCashierStore(); const { cancelCryptoTransaction, hideCryptoTransactionsCancelModal, diff --git a/packages/cashier/src/components/crypto-transactions-history/crypto-transactions-history.tsx b/packages/cashier/src/components/crypto-transactions-history/crypto-transactions-history.tsx index 3fa7c009b05b..187bef4fc5f0 100644 --- a/packages/cashier/src/components/crypto-transactions-history/crypto-transactions-history.tsx +++ b/packages/cashier/src/components/crypto-transactions-history/crypto-transactions-history.tsx @@ -7,6 +7,7 @@ import { TCryptoTransactionDetails } from 'Types'; import CryptoTransactionsCancelModal from './crypto-transactions-cancel-modal'; import CryptoTransactionsStatusModal from './crypto-transactions-status-modal'; import CryptoTransactionsRenderer from './crypto-transactions-renderer'; +import { useCashierStore } from '../../stores/useCashierStores'; const getHeaders = () => [ { text: localize('Transaction') }, @@ -19,12 +20,8 @@ const getHeaders = () => [ ]; const CryptoTransactionsHistory = observer(() => { - const { - modules: { - cashier: { transaction_history, general_store }, - }, - client, - } = useStore(); + const { client } = useStore(); + const { transaction_history, general_store } = useCashierStore(); const { crypto_transactions, is_loading, setIsCryptoTransactionsVisible } = transaction_history; const { setIsDeposit } = general_store; const { currency } = client; diff --git a/packages/cashier/src/components/crypto-transactions-history/crypto-transactions-renderer.tsx b/packages/cashier/src/components/crypto-transactions-history/crypto-transactions-renderer.tsx index 18422d94b8fc..4e23286123ad 100644 --- a/packages/cashier/src/components/crypto-transactions-history/crypto-transactions-renderer.tsx +++ b/packages/cashier/src/components/crypto-transactions-history/crypto-transactions-renderer.tsx @@ -6,18 +6,15 @@ import { localize, Localize } from '@deriv/translations'; import { useStore, observer } from '@deriv/stores'; import { getStatus } from 'Constants/transaction-status'; import { TCryptoTransactionDetails } from 'Types'; +import { useCashierStore } from '../../stores/useCashierStores'; type TCryptoTransactionsRendererProps = { row: TCryptoTransactionDetails; }; const CryptoTransactionsRenderer = observer(({ row: crypto }: TCryptoTransactionsRendererProps) => { - const { - modules: { - cashier: { transaction_history }, - }, - client, - } = useStore(); + const { client } = useStore(); + const { transaction_history } = useCashierStore(); const { cancelCryptoTransaction, showCryptoTransactionsCancelModal, showCryptoTransactionsStatusModal } = transaction_history; const { currency } = client; diff --git a/packages/cashier/src/components/crypto-transactions-history/crypto-transactions-status-modal.tsx b/packages/cashier/src/components/crypto-transactions-history/crypto-transactions-status-modal.tsx index 3da43159cd99..467ea85b5b81 100644 --- a/packages/cashier/src/components/crypto-transactions-history/crypto-transactions-status-modal.tsx +++ b/packages/cashier/src/components/crypto-transactions-history/crypto-transactions-status-modal.tsx @@ -1,14 +1,11 @@ import React from 'react'; import { Button, Modal } from '@deriv/components'; import { localize } from '@deriv/translations'; -import { useStore, observer } from '@deriv/stores'; +import { observer } from '@deriv/stores'; +import { useCashierStore } from '../../stores/useCashierStores'; const CryptoTransactionsStatusModal = observer(() => { - const { - modules: { - cashier: { transaction_history }, - }, - } = useStore(); + const { transaction_history } = useCashierStore(); const { hideCryptoTransactionsStatusModal, is_crypto_transactions_status_modal_visible: is_status_modal_visible, diff --git a/packages/cashier/src/components/email-verification-empty-state/__tests__/email-verification-empty-state.test.tsx b/packages/cashier/src/components/email-verification-empty-state/__tests__/email-verification-empty-state.test.tsx index 004ff2d8a9c5..87a157bc470a 100644 --- a/packages/cashier/src/components/email-verification-empty-state/__tests__/email-verification-empty-state.test.tsx +++ b/packages/cashier/src/components/email-verification-empty-state/__tests__/email-verification-empty-state.test.tsx @@ -1,8 +1,8 @@ import React from 'react'; import { render, screen } from '@testing-library/react'; import EmailVerificationEmptyState from '../email-verification-empty-state'; -import { StoreProvider } from '@deriv/stores'; import { TRootStore } from 'Types'; +import CashierProviders from '../../../cashier-providers'; const mock_store: DeepPartial = { client: { @@ -13,7 +13,7 @@ const mock_store: DeepPartial = { describe('EmailVerificationEmptyState', () => { test('should disable resend button after sending the request', () => { render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => {children}, }); expect(screen.queryByTestId('dt_empty_state_action')).toBeInTheDocument(); diff --git a/packages/cashier/src/components/error-dialog/__tests__/error-dialog.spec.tsx b/packages/cashier/src/components/error-dialog/__tests__/error-dialog.spec.tsx index e89f65ac52e1..fb66fa5d8eca 100644 --- a/packages/cashier/src/components/error-dialog/__tests__/error-dialog.spec.tsx +++ b/packages/cashier/src/components/error-dialog/__tests__/error-dialog.spec.tsx @@ -4,8 +4,8 @@ import { createBrowserHistory } from 'history'; import { Router } from 'react-router'; import { fireEvent, render, screen, waitFor } from '@testing-library/react'; import { routes } from '@deriv/shared'; -import { StoreProvider } from '@deriv/stores'; import { TRootStore } from 'Types'; +import CashierProviders from '../../../cashier-providers'; const mockRootStore: DeepPartial = { ui: { disableApp: jest.fn(), enableApp: jest.fn() }, @@ -25,7 +25,9 @@ describe('', () => { it('should show "Please verify your identity" message, "Cancel" and "Verify identity" buttons', () => { render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect(screen.getByText('Please verify your identity')).toBeInTheDocument(); @@ -47,7 +49,7 @@ describe('', () => { , { wrapper: ({ children }) => ( - {children} + {children} ), } ); @@ -59,7 +61,9 @@ describe('', () => { it('should show "Cashier Error" message and "OK" button', () => { render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect(screen.getByText('Cashier Error')).toBeInTheDocument(); @@ -74,7 +78,9 @@ describe('', () => { setErrorMessage, }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); const ok_btn = screen.getByText('OK'); fireEvent.click(ok_btn); @@ -92,7 +98,9 @@ describe('', () => { setErrorMessage, }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); const cancel_btn = screen.getByText('Cancel'); fireEvent.click(cancel_btn); @@ -118,7 +126,7 @@ describe('', () => { , { wrapper: ({ children }) => ( - {children} + {children} ), } ); diff --git a/packages/cashier/src/components/no-balance/__tests__/no-balance.spec.tsx b/packages/cashier/src/components/no-balance/__tests__/no-balance.spec.tsx index 44cf1c2f7cf8..9acf52065469 100644 --- a/packages/cashier/src/components/no-balance/__tests__/no-balance.spec.tsx +++ b/packages/cashier/src/components/no-balance/__tests__/no-balance.spec.tsx @@ -4,7 +4,7 @@ import { createBrowserHistory } from 'history'; import { Router } from 'react-router'; import { routes } from '@deriv/shared'; import NoBalance from '../no-balance'; -import { StoreProvider } from '@deriv/stores'; +import CashierProviders from '../../../cashier-providers'; describe('', () => { const history = createBrowserHistory(); @@ -36,7 +36,7 @@ describe('', () => { , { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => {children}, } ); @@ -51,7 +51,7 @@ describe('', () => { , { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => {children}, } ); diff --git a/packages/cashier/src/components/no-balance/no-balance.tsx b/packages/cashier/src/components/no-balance/no-balance.tsx index dcac52adcfc6..771692081545 100644 --- a/packages/cashier/src/components/no-balance/no-balance.tsx +++ b/packages/cashier/src/components/no-balance/no-balance.tsx @@ -5,17 +5,14 @@ import { useDepositLocked } from '@deriv/hooks'; import { routes, getCurrencyDisplayCode } from '@deriv/shared'; import { localize, Localize } from '@deriv/translations'; import { useStore, observer } from '@deriv/stores'; +import { useCashierStore } from '../../stores/useCashierStores'; const NoBalance = observer(({ history }: RouteComponentProps) => { + const { client } = useStore(); + const { currency } = client; + const { general_store } = useCashierStore(); + const { setCashierTabIndex: setTabIndex } = general_store; const is_deposit_locked = useDepositLocked(); - const { - client: { currency }, - modules: { - cashier: { - general_store: { setCashierTabIndex: setTabIndex }, - }, - }, - } = useStore(); const onClickDeposit = () => { // index of deposit tab in the cashier modal is 0 diff --git a/packages/cashier/src/components/recent-transaction/__tests__/recent-transaction.spec.tsx b/packages/cashier/src/components/recent-transaction/__tests__/recent-transaction.spec.tsx index 932c807316f6..c8ca30dfc777 100644 --- a/packages/cashier/src/components/recent-transaction/__tests__/recent-transaction.spec.tsx +++ b/packages/cashier/src/components/recent-transaction/__tests__/recent-transaction.spec.tsx @@ -3,7 +3,7 @@ import { fireEvent, render, screen } from '@testing-library/react'; import RecentTransaction from '../recent-transaction'; import { createBrowserHistory } from 'history'; import { Router } from 'react-router'; -import { StoreProvider } from '@deriv/stores'; +import CashierProviders from '../../../cashier-providers'; describe('', () => { let history, mockRootStore; @@ -41,11 +41,11 @@ describe('', () => { const renderRecentTransaction = () => { return render( - + - + ); }; diff --git a/packages/cashier/src/components/recent-transaction/recent-transaction.tsx b/packages/cashier/src/components/recent-transaction/recent-transaction.tsx index 09b57040f0d2..c48fc11c9f15 100644 --- a/packages/cashier/src/components/recent-transaction/recent-transaction.tsx +++ b/packages/cashier/src/components/recent-transaction/recent-transaction.tsx @@ -5,18 +5,13 @@ import { Localize } from '@deriv/translations'; import { epochToMoment } from '@deriv/shared'; import { useStore, observer } from '@deriv/stores'; import { getStatus } from 'Constants/transaction-status'; +import { useCashierStore } from '../../stores/useCashierStores'; import './recent-transaction.scss'; const RecentTransaction = observer(() => { - const { - client, - modules: { - cashier: { transaction_history }, - }, - } = useStore(); - + const { client } = useStore(); const { currency } = client; - + const { transaction_history } = useCashierStore(); const { crypto_transactions, onMount, setIsCryptoTransactionsVisible } = transaction_history; React.useEffect(() => { diff --git a/packages/cashier/src/components/transfer-confirm/__tests__/transfer-confirm.spec.tsx b/packages/cashier/src/components/transfer-confirm/__tests__/transfer-confirm.spec.tsx index fbeaceba98ae..b7f718707365 100644 --- a/packages/cashier/src/components/transfer-confirm/__tests__/transfer-confirm.spec.tsx +++ b/packages/cashier/src/components/transfer-confirm/__tests__/transfer-confirm.spec.tsx @@ -1,8 +1,8 @@ import React from 'react'; import { fireEvent, render, screen } from '@testing-library/react'; import TransferConfirm from '../transfer-confirm'; -import { StoreProvider } from '@deriv/stores'; import { TRootStore } from 'Types'; +import CashierProviders from '../../../cashier-providers'; const mockRootStore: DeepPartial = { ui: { @@ -35,7 +35,9 @@ describe('', () => { it('should show proper icon, messages and buttons', () => { render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); const [back_btn, transfer_now_btn] = screen.getAllByRole('button'); @@ -70,7 +72,7 @@ describe('', () => { />, { wrapper: ({ children }) => ( - {children} + {children} ), } ); @@ -82,7 +84,9 @@ describe('', () => { it('should trigger onClickBack method when the client clicks on Back button', () => { render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); const [back_btn, _] = screen.getAllByRole('button'); @@ -93,7 +97,9 @@ describe('', () => { it('should enable Transfer now button when checkbox is checked', () => { render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); const el_checkbox = screen.getByRole('checkbox'); @@ -104,7 +110,9 @@ describe('', () => { }); it('should show proer checkbox label text when is_payment_agent_withdraw property is equal to true/false', () => { const { rerender } = render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect( @@ -120,7 +128,9 @@ describe('', () => { it('should trigger onClickConfirm method when the client clicks on Transfer now button', () => { render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); const el_checkbox = screen.getByRole('checkbox'); diff --git a/packages/cashier/src/containers/cashier/__tests__/cashier.spec.tsx b/packages/cashier/src/containers/cashier/__tests__/cashier.spec.tsx index 83f273cf7590..bb6950fb2709 100644 --- a/packages/cashier/src/containers/cashier/__tests__/cashier.spec.tsx +++ b/packages/cashier/src/containers/cashier/__tests__/cashier.spec.tsx @@ -5,8 +5,8 @@ import { Router } from 'react-router'; import { isMobile } from '@deriv/shared'; import getRoutesConfig from 'Constants/routes-config'; import Cashier from '../cashier'; -import { StoreProvider } from '@deriv/stores'; import { TRootStore } from 'Types'; +import CashierProviders from '../../../cashier-providers'; jest.mock('@deriv/components', () => { const original_module = jest.requireActual('@deriv/components'); @@ -42,7 +42,7 @@ describe('', () => { history = createBrowserHistory(); return { ...render({component}, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => {children}, }), }; }; diff --git a/packages/cashier/src/containers/cashier/cashier.tsx b/packages/cashier/src/containers/cashier/cashier.tsx index 06bb910cd7e9..b7d1bd095b19 100644 --- a/packages/cashier/src/containers/cashier/cashier.tsx +++ b/packages/cashier/src/containers/cashier/cashier.tsx @@ -16,8 +16,9 @@ import { localize } from '@deriv/translations'; import AccountPromptDialog from 'Components/account-prompt-dialog'; import ErrorDialog from 'Components/error-dialog'; import { TRoute } from 'Types'; -import './cashier.scss'; import { observer, useStore } from '@deriv/stores'; +import { useCashierStore } from '../../stores/useCashierStores'; +import './cashier.scss'; type TCashierProps = RouteComponentProps & { routes: TRoute[]; @@ -34,8 +35,7 @@ type TCashierOptions = { }; const Cashier = observer(({ history, location, routes: routes_config }: TCashierProps) => { - const { common, ui, client, modules } = useStore(); - const { cashier } = modules; + const { common, ui, client } = useStore(); const { withdraw, general_store, @@ -45,7 +45,7 @@ const Cashier = observer(({ history, location, routes: routes_config }: TCashier payment_agent_transfer, payment_agent, account_prompt_dialog, - } = cashier; + } = useCashierStore(); const { error } = withdraw; const { is_cashier_onboarding, diff --git a/packages/cashier/src/containers/routes/__tests__/routes.spec.tsx b/packages/cashier/src/containers/routes/__tests__/routes.spec.tsx index 7d6401287764..52d7c17ed465 100644 --- a/packages/cashier/src/containers/routes/__tests__/routes.spec.tsx +++ b/packages/cashier/src/containers/routes/__tests__/routes.spec.tsx @@ -3,8 +3,8 @@ import { render, screen } from '@testing-library/react'; import Routes from '../routes'; import { Router } from 'react-router'; import { createBrowserHistory } from 'history'; -import { StoreProvider } from '@deriv/stores'; import { TRootStore } from 'Types'; +import CashierProviders from '../../../cashier-providers'; jest.mock('../binary-routes', () => jest.fn(() => 'BinaryRoutes')); @@ -35,7 +35,11 @@ describe('', () => { , - { wrapper: ({ children }) => {children} } + { + wrapper: ({ children }) => ( + {children} + ), + } ); expect(screen.getByText('Something’s not right')).toBeInTheDocument(); @@ -59,7 +63,11 @@ describe('', () => { , - { wrapper: ({ children }) => {children} } + { + wrapper: ({ children }) => ( + {children} + ), + } ); expect(screen.getByText('BinaryRoutes')).toBeInTheDocument(); diff --git a/packages/cashier/src/containers/routes/error-component/error-component.tsx b/packages/cashier/src/containers/routes/error-component/error-component.tsx index d5b528e4fa3e..4bc404b28bca 100644 --- a/packages/cashier/src/containers/routes/error-component/error-component.tsx +++ b/packages/cashier/src/containers/routes/error-component/error-component.tsx @@ -2,8 +2,8 @@ import React from 'react'; import { useHistory } from 'react-router-dom'; import { PageError } from '@deriv/components'; import { routes } from '@deriv/shared'; +import { TStores } from '@deriv/stores'; import { Localize } from '@deriv/translations'; -import { TRootStore } from 'Types'; const ErrorComponent = ({ header, @@ -14,7 +14,7 @@ const ErrorComponent = ({ setError, redirect_to = routes.trade, should_show_refresh = true, -}: TRootStore['common']['error']) => { +}: TStores['common']['error']) => { const history = useHistory(); React.useEffect(() => { diff --git a/packages/cashier/src/containers/routes/route-with-sub-routes.tsx b/packages/cashier/src/containers/routes/route-with-sub-routes.tsx index 179670399491..d1514880cd1e 100644 --- a/packages/cashier/src/containers/routes/route-with-sub-routes.tsx +++ b/packages/cashier/src/containers/routes/route-with-sub-routes.tsx @@ -9,12 +9,13 @@ import { removeBranchName, default_title, } from '@deriv/shared'; +import { TStores } from '@deriv/stores'; import { getLanguage } from '@deriv/translations'; -import { TRootStore, TRouteConfig, TRoute } from 'Types'; +import { TRouteConfig, TRoute } from 'Types'; type TRouteWithSubRoutesProps = TRouteConfig & { - is_logged_in: TRootStore['client']['is_logged_in']; - is_logging_in: TRootStore['client']['is_logging_in']; + is_logged_in: TStores['client']['is_logged_in']; + is_logging_in: TStores['client']['is_logging_in']; }; type TDefaultSubroute = TRoute | undefined; diff --git a/packages/cashier/src/pages/account-transfer/__tests__/account-transfer.spec.tsx b/packages/cashier/src/pages/account-transfer/__tests__/account-transfer.spec.tsx index 5c837061429d..c6189ed4c1ee 100644 --- a/packages/cashier/src/pages/account-transfer/__tests__/account-transfer.spec.tsx +++ b/packages/cashier/src/pages/account-transfer/__tests__/account-transfer.spec.tsx @@ -1,9 +1,9 @@ import React from 'react'; import { render, screen, waitFor } from '@testing-library/react'; import { Router } from 'react-router'; -import { StoreProvider } from '@deriv/stores'; import { createBrowserHistory } from 'history'; import AccountTransfer from '../account-transfer'; +import CashierProviders from '../../../cashier-providers'; jest.mock('@deriv/shared/src/services/ws-methods', () => ({ __esModule: true, @@ -72,7 +72,7 @@ describe('', () => { const renderAccountTransfer = () => { render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => {children}, }); }; @@ -98,9 +98,9 @@ describe('', () => { render(, { wrapper: ({ children }) => ( - + {children} - + ), }); @@ -149,9 +149,9 @@ describe('', () => { render(, { wrapper: ({ children }) => ( - + {children} - + ), }); diff --git a/packages/cashier/src/pages/account-transfer/account-transfer-form/__tests__/account-transfer-form.spec.tsx b/packages/cashier/src/pages/account-transfer/account-transfer-form/__tests__/account-transfer-form.spec.tsx index 82a2f9816c07..6c03c16ef65b 100644 --- a/packages/cashier/src/pages/account-transfer/account-transfer-form/__tests__/account-transfer-form.spec.tsx +++ b/packages/cashier/src/pages/account-transfer/account-transfer-form/__tests__/account-transfer-form.spec.tsx @@ -1,8 +1,8 @@ import React from 'react'; import { fireEvent, render, screen } from '@testing-library/react'; import { isMobile } from '@deriv/shared'; -import { StoreProvider } from '@deriv/stores'; import AccountTransferForm from '../account-transfer-form'; +import CashierProviders from '../../../../cashier-providers'; jest.mock('@deriv/shared/src/utils/screen/responsive', () => ({ ...jest.requireActual('@deriv/shared/src/utils/screen/responsive'), @@ -109,7 +109,7 @@ describe('', () => { const renderAccountTransferForm = () => { render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => {children}, }); }; diff --git a/packages/cashier/src/pages/account-transfer/account-transfer-form/account-transfer-form.tsx b/packages/cashier/src/pages/account-transfer/account-transfer-form/account-transfer-form.tsx index 5ff9887c74ac..0e2a727a981e 100644 --- a/packages/cashier/src/pages/account-transfer/account-transfer-form/account-transfer-form.tsx +++ b/packages/cashier/src/pages/account-transfer/account-transfer-form/account-transfer-form.tsx @@ -20,6 +20,7 @@ import PercentageSelector from 'Components/percentage-selector'; import RecentTransaction from 'Components/recent-transaction'; import AccountTransferNote from './account-transfer-form-side-note'; import SideNote from 'Components/side-note'; +import { useCashierStore } from '../../../stores/useCashierStores'; import './account-transfer-form.scss'; type TAccountTransferFormProps = { @@ -78,12 +79,10 @@ const AccountTransferForm = observer(({ error, setSideNotes }: TAccountTransferF const { client, common: { is_from_derivgo }, - modules: { cashier }, } = useStore(); const { account_limits, authentication_status, is_dxtrade_allowed, getLimits: onMount } = client; - const { account_transfer, crypto_fiat_converter, transaction_history, general_store } = cashier; - + const { account_transfer, crypto_fiat_converter, transaction_history, general_store } = useCashierStore(); const { account_transfer_amount, accounts_list, @@ -112,21 +111,17 @@ const AccountTransferForm = observer(({ error, setSideNotes }: TAccountTransferF resetConverter, } = crypto_fiat_converter; const { crypto_transactions, onMount: recentTransactionOnMount } = transaction_history; - const [from_accounts, setFromAccounts] = React.useState({}); const [to_accounts, setToAccounts] = React.useState({}); const [transfer_to_hint, setTransferToHint] = React.useState(); - const { daily_transfers } = account_limits; const mt5_remaining_transfers = daily_transfers?.mt5; const dxtrade_remaining_transfers = daily_transfers?.dxtrade; const derivez_remaining_transfers = daily_transfers?.derivez; const internal_remaining_transfers = daily_transfers?.internal; - const is_mt_transfer = selected_to.is_mt || selected_from.is_mt; const is_dxtrade_transfer = selected_to.is_dxtrade || selected_from.is_dxtrade; const is_derivez_transfer = selected_to.is_derivez || selected_from.is_derivez; - const platform_name_dxtrade = getPlatformSettings('dxtrade').name; React.useEffect(() => { diff --git a/packages/cashier/src/pages/account-transfer/account-transfer-locked/__tests__/account-transfer-locked.spec.tsx b/packages/cashier/src/pages/account-transfer/account-transfer-locked/__tests__/account-transfer-locked.spec.tsx index 9bf3edbd7d80..8635963c93cb 100644 --- a/packages/cashier/src/pages/account-transfer/account-transfer-locked/__tests__/account-transfer-locked.spec.tsx +++ b/packages/cashier/src/pages/account-transfer/account-transfer-locked/__tests__/account-transfer-locked.spec.tsx @@ -4,8 +4,8 @@ import { createBrowserHistory } from 'history'; import { fireEvent, render, screen } from '@testing-library/react'; import { Checklist } from '@deriv/components'; import { routes } from '@deriv/shared'; -import { StoreProvider } from '@deriv/stores'; import AccountTransferLocked from '../account-transfer-locked'; +import CashierProviders from '../../../../cashier-providers'; describe('AccountTransferLocked', () => { let mockRootStore; @@ -24,7 +24,7 @@ describe('AccountTransferLocked', () => { mockRootStore.client.is_trading_experience_incomplete = true; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => {children}, }); expect(screen.getByText('Transfers are locked')).toBeInTheDocument(); @@ -35,7 +35,7 @@ describe('AccountTransferLocked', () => { mockRootStore.client.is_trading_experience_incomplete = true; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => {children}, }); expect(screen.getByText('Transfers are locked')).toBeInTheDocument(); @@ -69,9 +69,9 @@ describe('AccountTransferLocked', () => { render(, { wrapper: ({ children }) => ( - + {children} - + ), }); const btn = screen.getByTestId('dt_checklist_item_status_action'); diff --git a/packages/cashier/src/pages/account-transfer/account-transfer-no-account/__tests__/account-transfer-no-account.spec.tsx b/packages/cashier/src/pages/account-transfer/account-transfer-no-account/__tests__/account-transfer-no-account.spec.tsx index c7fa4d1f5451..d64cbe66f834 100644 --- a/packages/cashier/src/pages/account-transfer/account-transfer-no-account/__tests__/account-transfer-no-account.spec.tsx +++ b/packages/cashier/src/pages/account-transfer/account-transfer-no-account/__tests__/account-transfer-no-account.spec.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { fireEvent, render, screen } from '@testing-library/react'; -import { StoreProvider } from '@deriv/stores'; import AccountTransferNoAccount from '../account-transfer-no-account'; +import CashierProviders from '../../../../cashier-providers'; describe('', () => { let mockRootStore; @@ -18,7 +18,7 @@ describe('', () => { const renderAccountTransferNoAccount = () => { render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => {children}, }); }; diff --git a/packages/cashier/src/pages/account-transfer/account-transfer-receipt/__tests__/account-transfer-receipt.spec.tsx b/packages/cashier/src/pages/account-transfer/account-transfer-receipt/__tests__/account-transfer-receipt.spec.tsx index d211be52417c..e499f47e160f 100644 --- a/packages/cashier/src/pages/account-transfer/account-transfer-receipt/__tests__/account-transfer-receipt.spec.tsx +++ b/packages/cashier/src/pages/account-transfer/account-transfer-receipt/__tests__/account-transfer-receipt.spec.tsx @@ -3,8 +3,8 @@ import { fireEvent, render, screen, waitFor } from '@testing-library/react'; import { Router } from 'react-router'; import { createBrowserHistory } from 'history'; import { routes } from '@deriv/shared'; -import { StoreProvider } from '@deriv/stores'; import AccountTransferReceipt from '../account-transfer-receipt'; +import CashierProviders from '../../../../cashier-providers'; describe('', () => { let mockRootStore; @@ -54,9 +54,9 @@ describe('', () => { const renderAccountTransferReceipt = () => render(, { wrapper: ({ children }) => ( - + {children} - + ), }); diff --git a/packages/cashier/src/pages/account-transfer/account-transfer-receipt/account-transfer-receipt.tsx b/packages/cashier/src/pages/account-transfer/account-transfer-receipt/account-transfer-receipt.tsx index 5fb87c7921c8..e0094dd2c005 100644 --- a/packages/cashier/src/pages/account-transfer/account-transfer-receipt/account-transfer-receipt.tsx +++ b/packages/cashier/src/pages/account-transfer/account-transfer-receipt/account-transfer-receipt.tsx @@ -4,6 +4,7 @@ import { Button, Modal, Icon, Text } from '@deriv/components'; import { formatMoney, getCurrencyDisplayCode, isMobile, routes } from '@deriv/shared'; import { localize, Localize } from '@deriv/translations'; import { useStore, observer } from '@deriv/stores'; +import { useCashierStore } from '../../../stores/useCashierStores'; import './account-transfer-receipt.scss'; type TSwitch = { @@ -12,20 +13,12 @@ type TSwitch = { }; const AccountTransferReceipt = observer(({ history }: RouteComponentProps) => { - const { - ui, - common, - client, - modules: { - cashier: { account_transfer }, - }, - } = useStore(); - + const { ui, common, client } = useStore(); + const { account_transfer } = useCashierStore(); const { disableApp, enableApp } = ui; const { is_from_derivgo } = common; const { loginid, switchAccount } = client; const { receipt, resetAccountTransfer, selected_from, selected_to } = account_transfer; - const [is_switch_visible, setIsSwitchVisible] = React.useState(false); const [switch_to, setSwitchTo] = React.useState({}); diff --git a/packages/cashier/src/pages/account-transfer/account-transfer.tsx b/packages/cashier/src/pages/account-transfer/account-transfer.tsx index 04ff2a5b86c4..0f032aee4676 100644 --- a/packages/cashier/src/pages/account-transfer/account-transfer.tsx +++ b/packages/cashier/src/pages/account-transfer/account-transfer.tsx @@ -12,19 +12,15 @@ import AccountTransferReceipt from './account-transfer-receipt'; import AccountTransferForm from './account-transfer-form'; import AccountTransferNoAccount from './account-transfer-no-account'; import AccountTransferLocked from './account-transfer-locked'; +import { useCashierStore } from '../../stores/useCashierStores'; type TAccountTransferProps = { setSideNotes: (notes: TSideNotesProps) => void; }; const AccountTransfer = observer(({ setSideNotes }: TAccountTransferProps) => { - const { - modules: { - cashier: { account_transfer, general_store, transaction_history }, - }, - client, - } = useStore(); - + const { client } = useStore(); + const { account_transfer, general_store, transaction_history } = useCashierStore(); const { accounts_list, container, @@ -37,13 +33,9 @@ const AccountTransfer = observer(({ setSideNotes }: TAccountTransferProps) => { setAccountTransferAmount, setIsTransferConfirm, } = account_transfer; - const { is_cashier_locked, is_loading, setActiveTab } = general_store; - const { is_crypto_transactions_visible, onMount: recentTransactionOnMount } = transaction_history; - const { is_switching, is_virtual } = client; - const [is_loading_status, setIsLoadingStatus] = React.useState(true); React.useEffect(() => { diff --git a/packages/cashier/src/pages/deposit/__tests__/deposit.spec.tsx b/packages/cashier/src/pages/deposit/__tests__/deposit.spec.tsx index 87fe12ba73f2..4c1c03cd7899 100644 --- a/packages/cashier/src/pages/deposit/__tests__/deposit.spec.tsx +++ b/packages/cashier/src/pages/deposit/__tests__/deposit.spec.tsx @@ -1,8 +1,8 @@ import React from 'react'; import { render, screen } from '@testing-library/react'; -import { StoreProvider } from '@deriv/stores'; import Deposit from '../deposit'; import { TRootStore } from 'Types'; +import CashierProviders from '../../../cashier-providers'; jest.mock('@deriv/components', () => ({ ...jest.requireActual('@deriv/components'), @@ -89,7 +89,9 @@ describe('', () => { }; const { rerender } = render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect(screen.getByText('Loading')).toBeInTheDocument(); @@ -139,7 +141,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect(screen.getByText('Virtual')).toBeInTheDocument(); @@ -184,7 +188,9 @@ describe('', () => { }, }; const { rerender } = render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect(screen.getByText('CashierLocked')).toBeInTheDocument(); @@ -238,7 +244,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect(screen.getByText('FundsProtection')).toBeInTheDocument(); @@ -285,7 +293,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect(screen.getByText('DepositLocked')).toBeInTheDocument(); @@ -331,7 +341,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect(screen.getByText('CryptoTransactionsHistory')).toBeInTheDocument(); @@ -377,7 +389,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect(screen.getByText('Error')).toBeInTheDocument(); @@ -424,7 +438,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect(screen.getByText('CryptoDeposit')).toBeInTheDocument(); @@ -470,7 +486,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect(screen.getByText('Real')).toBeInTheDocument(); @@ -516,7 +534,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect(screen.getByText('CashierOnboarding')).toBeInTheDocument(); @@ -566,7 +586,9 @@ describe('', () => { const setSideNotes = jest.fn(); render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect(setSideNotes).toHaveBeenCalledTimes(2); diff --git a/packages/cashier/src/pages/deposit/crypto-deposit/__tests__/crypto-deposit.spec.tsx b/packages/cashier/src/pages/deposit/crypto-deposit/__tests__/crypto-deposit.spec.tsx index a98e215ab87e..2f810ecb0c6a 100644 --- a/packages/cashier/src/pages/deposit/crypto-deposit/__tests__/crypto-deposit.spec.tsx +++ b/packages/cashier/src/pages/deposit/crypto-deposit/__tests__/crypto-deposit.spec.tsx @@ -3,9 +3,9 @@ import { fireEvent, render, screen } from '@testing-library/react'; import { createBrowserHistory } from 'history'; import { Router } from 'react-router'; import { getCurrencyName, isMobile } from '@deriv/shared'; -import { StoreProvider } from '@deriv/stores'; import CryptoDeposit from '../crypto-deposit'; import { TRootStore } from 'Types'; +import CashierProviders from '../../../../cashier-providers'; jest.mock('@deriv/components', () => ({ ...jest.requireActual('@deriv/components'), @@ -32,7 +32,9 @@ describe('', () => { const renderWithRouter = (component: JSX.Element, mockRootStore: TRootStore) => { history = createBrowserHistory(); return render({component}, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); }; @@ -361,7 +363,11 @@ describe('', () => { , - { wrapper: ({ children }) => {children} } + { + wrapper: ({ children }) => ( + {children} + ), + } ); expect(screen.getByText('RecentTransactions')).toBeInTheDocument(); diff --git a/packages/cashier/src/pages/deposit/crypto-deposit/crypto-deposit.tsx b/packages/cashier/src/pages/deposit/crypto-deposit/crypto-deposit.tsx index efc9a41939b9..b8d43ab613b6 100644 --- a/packages/cashier/src/pages/deposit/crypto-deposit/crypto-deposit.tsx +++ b/packages/cashier/src/pages/deposit/crypto-deposit/crypto-deposit.tsx @@ -5,13 +5,13 @@ import { CryptoConfig, getCurrencyName, isCryptocurrency, isMobile } from '@deri import { useStore, observer } from '@deriv/stores'; import QRCode from 'qrcode.react'; import RecentTransaction from 'Components/recent-transaction'; +import { useCashierStore } from '../../../stores/useCashierStores'; import './crypto-deposit.scss'; const CryptoDeposit = observer(() => { - const { client, modules } = useStore(); - const { cashier } = modules; + const { client } = useStore(); const { currency } = client; - const { onramp, transaction_history, general_store } = cashier; + const { onramp, transaction_history, general_store } = useCashierStore(); const { api_error, deposit_address, is_deposit_address_loading, pollApiForDepositAddress } = onramp; const { crypto_transactions, onMount: recentTransactionOnMount } = transaction_history; const { setIsDeposit } = general_store; diff --git a/packages/cashier/src/pages/deposit/deposit-locked/__tests__/deposit-locked.spec.tsx b/packages/cashier/src/pages/deposit/deposit-locked/__tests__/deposit-locked.spec.tsx index b1fb512b0116..2661a802fb64 100644 --- a/packages/cashier/src/pages/deposit/deposit-locked/__tests__/deposit-locked.spec.tsx +++ b/packages/cashier/src/pages/deposit/deposit-locked/__tests__/deposit-locked.spec.tsx @@ -1,9 +1,9 @@ import React from 'react'; import { fireEvent, render, screen } from '@testing-library/react'; import { Checklist } from '@deriv/components'; -import { StoreProvider } from '@deriv/stores'; import DepositLocked from '../deposit-locked'; import { TRootStore } from 'Types'; +import CashierProviders from '../../../../cashier-providers'; jest.mock('Components/cashier-locked', () => { const CashierLocked = () => ( @@ -44,7 +44,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect(screen.getByText('To enable this feature you must complete the following:')).toBeInTheDocument(); @@ -76,7 +78,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect(screen.getByText('To enable this feature you must complete the following:')).toBeInTheDocument(); @@ -100,7 +104,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect(screen.getByText('To enable this feature you must complete the following:')).toBeInTheDocument(); @@ -128,7 +134,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect( diff --git a/packages/cashier/src/pages/deposit/deposit-locked/deposit-locked.tsx b/packages/cashier/src/pages/deposit/deposit-locked/deposit-locked.tsx index 6ed93d5d0cfd..06a135eb9f90 100644 --- a/packages/cashier/src/pages/deposit/deposit-locked/deposit-locked.tsx +++ b/packages/cashier/src/pages/deposit/deposit-locked/deposit-locked.tsx @@ -5,9 +5,10 @@ import { Localize, localize } from '@deriv/translations'; import { routes, WS } from '@deriv/shared'; import { useStore, observer } from '@deriv/stores'; import CashierLocked from 'Components/cashier-locked'; +import { useCashierStore } from '../../../stores/useCashierStores'; const DepositLocked = observer(() => { - const { client, modules } = useStore(); + const { client } = useStore(); const { account_status, is_financial_account, @@ -16,8 +17,7 @@ const DepositLocked = observer(() => { is_trading_experience_incomplete, standpoint, } = client; - const { cashier } = modules; - const { deposit } = cashier; + const { deposit } = useCashierStore(); const { onMountDeposit: onMount } = deposit; // handle authentication locked diff --git a/packages/cashier/src/pages/deposit/deposit.tsx b/packages/cashier/src/pages/deposit/deposit.tsx index 773028763896..216cfcad309e 100644 --- a/packages/cashier/src/pages/deposit/deposit.tsx +++ b/packages/cashier/src/pages/deposit/deposit.tsx @@ -13,14 +13,14 @@ import RecentTransaction from 'Components/recent-transaction'; import CryptoDeposit from './crypto-deposit'; import DepositLocked from './deposit-locked'; import SideNote from 'Components/side-note'; +import { useCashierStore } from '../../stores/useCashierStores'; type TDeposit = { setSideNotes: (notes: object | null) => void; }; const Deposit = observer(({ setSideNotes }: TDeposit) => { - const is_deposit_locked = useDepositLocked(); - const { client, modules } = useStore(); + const { client } = useStore(); const { can_change_fiat_currency, currency, @@ -30,8 +30,7 @@ const Deposit = observer(({ setSideNotes }: TDeposit) => { is_virtual, landing_company_shortcode, } = client; - const { cashier } = modules; - const { iframe, deposit, transaction_history, general_store } = cashier; + const { iframe, deposit, transaction_history, general_store } = useCashierStore(); const { clearIframe, iframe_height, iframe_url } = iframe; const { container, error, onMountDeposit: onMount } = deposit; const { @@ -50,6 +49,7 @@ const Deposit = observer(({ setSideNotes }: TDeposit) => { setIsDeposit, cashier_route_tab_index: tab_index, } = general_store; + const is_deposit_locked = useDepositLocked(); const is_fiat_currency_banner_visible_for_MF_clients = landing_company_shortcode === 'maltainvest' && !is_crypto && !can_change_fiat_currency && !!iframe_height; diff --git a/packages/cashier/src/pages/on-ramp/__tests__/on-ramp.spec.tsx b/packages/cashier/src/pages/on-ramp/__tests__/on-ramp.spec.tsx index e9956d88986a..9fcce920025d 100644 --- a/packages/cashier/src/pages/on-ramp/__tests__/on-ramp.spec.tsx +++ b/packages/cashier/src/pages/on-ramp/__tests__/on-ramp.spec.tsx @@ -1,10 +1,10 @@ import React from 'react'; import { fireEvent, render, screen } from '@testing-library/react'; import { isMobile, routes } from '@deriv/shared'; -import { StoreProvider } from '@deriv/stores'; import OnRamp from '../on-ramp'; import { TRootStore } from 'Types'; import type { TOnRampProps } from '../on-ramp'; +import CashierProviders from '../../../cashier-providers'; jest.mock('@deriv/components', () => { return { @@ -94,9 +94,9 @@ describe('', () => { }); const renderOnRamp = (is_rerender = false) => { const ui = ( - + - + ); return is_rerender ? ui : render(ui); }; diff --git a/packages/cashier/src/pages/on-ramp/on-ramp-provider-card/__tests__/on-ramp-provider-card.spec.tsx b/packages/cashier/src/pages/on-ramp/on-ramp-provider-card/__tests__/on-ramp-provider-card.spec.tsx index 8ba0e28f85f9..5679aebd8b10 100644 --- a/packages/cashier/src/pages/on-ramp/on-ramp-provider-card/__tests__/on-ramp-provider-card.spec.tsx +++ b/packages/cashier/src/pages/on-ramp/on-ramp-provider-card/__tests__/on-ramp-provider-card.spec.tsx @@ -1,38 +1,29 @@ import React from 'react'; import { fireEvent, render, screen } from '@testing-library/react'; import OnRampProviderCard from '../on-ramp-provider-card'; -import { StoreProvider } from '@deriv/stores'; import { TRootStore } from 'Types'; +import CashierProviders from '../../../../cashier-providers'; describe('', () => { - const props = { - is_dark_mode_on: false, - is_mobile: false, - provider: { - name: 'Banxa', - icon: { - dark: 'IcCashierBanxaDark', - light: 'IcCashierBanxaLight', - }, - getDescription: jest.fn( - () => - 'A fast and secure fiat-to-crypto payment service. Deposit cryptocurrencies from anywhere in the world using your credit/debit cards and bank transfers.' - ), - getPaymentIcons: jest.fn(() => [{ dark: 'IcCashierFlexepinDark', light: 'IcCashierFlexepinLight' }]), - getAllowedResidencies: jest.fn(() => []), - getScriptDependencies: jest.fn(() => []), - getDefaultFromCurrency: jest.fn(() => ''), - getFromCurrencies: jest.fn(() => ''), - getToCurrencies: jest.fn(() => ''), - getWidgetHtml: jest.fn(() => Promise.resolve()), - onMountWidgetContainer: jest.fn(), - should_show_deposit_address: false, + const provider = { + name: 'Banxa', + icon: { + dark: 'IcCashierBanxaDark', + light: 'IcCashierBanxaLight', }, getDescription: jest.fn( () => - 'Your simple access to crypto. Fast and secure way to exchange and purchase cryptocurrencies. 24/7 live chat support.' + 'A fast and secure fiat-to-crypto payment service. Deposit cryptocurrencies from anywhere in the world using your credit/debit cards and bank transfers.' ), - getPaymentIcons: jest.fn(() => [{ dark: 'IcCashierFpsDark', light: 'IcCashierFpsLight' }]), + getPaymentIcons: jest.fn(() => [{ dark: 'IcCashierFlexepinDark', light: 'IcCashierFlexepinLight' }]), + getAllowedResidencies: jest.fn(() => []), + getScriptDependencies: jest.fn(() => []), + getDefaultFromCurrency: jest.fn(() => ''), + getFromCurrencies: jest.fn(() => ''), + getToCurrencies: jest.fn(() => ''), + getWidgetHtml: jest.fn(() => Promise.resolve()), + onMountWidgetContainer: jest.fn(), + should_show_deposit_address: false, }; it('should show proper messages and button', () => { @@ -50,8 +41,10 @@ describe('', () => { }, }; - render(, { - wrapper: ({ children }) => {children}, + render(, { + wrapper: ({ children }) => ( + {children} + ), }); expect(screen.getByText('Banxa')).toBeInTheDocument(); @@ -78,8 +71,10 @@ describe('', () => { }, }; - render(, { - wrapper: ({ children }) => {children}, + render(, { + wrapper: ({ children }) => ( + {children} + ), }); expect(screen.getByTestId('dti_provider_icon_dark')).toBeInTheDocument(); @@ -101,8 +96,10 @@ describe('', () => { }, }; - render(, { - wrapper: ({ children }) => {children}, + render(, { + wrapper: ({ children }) => ( + {children} + ), }); const btn = screen.getByRole('button', { name: 'Select' }); diff --git a/packages/cashier/src/pages/on-ramp/on-ramp-provider-card/on-ramp-provider-card.tsx b/packages/cashier/src/pages/on-ramp/on-ramp-provider-card/on-ramp-provider-card.tsx index 0b75afea838a..7c595149706d 100644 --- a/packages/cashier/src/pages/on-ramp/on-ramp-provider-card/on-ramp-provider-card.tsx +++ b/packages/cashier/src/pages/on-ramp/on-ramp-provider-card/on-ramp-provider-card.tsx @@ -3,16 +3,16 @@ import { Button, Icon, NewsTicker, Text } from '@deriv/components'; import { localize } from '@deriv/translations'; import { TProviderDetails } from 'Types'; import { observer, useStore } from '@deriv/stores'; +import { useCashierStore } from '../../../stores/useCashierStores'; type TOnRampProviderCardProps = { provider: TProviderDetails; }; const OnRampProviderCard = observer(({ provider }: TOnRampProviderCardProps) => { - const { ui, modules } = useStore(); + const { ui } = useStore(); const { is_dark_mode_on, is_mobile } = ui; - const { cashier } = modules; - const { onramp } = cashier; + const { onramp } = useCashierStore(); const { setSelectedProvider } = onramp; const payment_icons = provider.getPaymentIcons(); diff --git a/packages/cashier/src/pages/on-ramp/on-ramp-provider-popup/__tests__/on-ramp-provider-popup.spec.tsx b/packages/cashier/src/pages/on-ramp/on-ramp-provider-popup/__tests__/on-ramp-provider-popup.spec.tsx index 574e2ab832d7..861eb6b237d2 100644 --- a/packages/cashier/src/pages/on-ramp/on-ramp-provider-popup/__tests__/on-ramp-provider-popup.spec.tsx +++ b/packages/cashier/src/pages/on-ramp/on-ramp-provider-popup/__tests__/on-ramp-provider-popup.spec.tsx @@ -1,8 +1,8 @@ import React from 'react'; import { fireEvent, render, screen } from '@testing-library/react'; import OnRampProviderPopup from '../on-ramp-provider-popup'; -import { StoreProvider } from '@deriv/stores'; import { TRootStore } from 'Types'; +import CashierProviders from '../../../../cashier-providers'; jest.mock('@deriv/components', () => ({ ...(jest.requireActual('@deriv/components') as any), @@ -54,7 +54,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect(screen.queryByTestId('dti_on-ramp_popup')).not.toBeInTheDocument(); @@ -90,7 +92,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect(screen.getByText('Loading')).toBeInTheDocument(); @@ -126,7 +130,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect(screen.getByText('Widget error')).toBeInTheDocument(); @@ -162,7 +168,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect(screen.getByText('Please go to the Deposit page to get an address.')).toBeInTheDocument(); @@ -198,7 +206,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect( @@ -240,7 +250,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); const cancel_btn = screen.getByRole('button', { name: 'Cancel' }); @@ -284,7 +296,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); expect( @@ -335,7 +349,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); const deposit_address_input = screen.getByRole('textbox'); @@ -372,7 +388,9 @@ describe('', () => { }; render(, { - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + {children} + ), }); const cancel_btn = screen.getByRole('button', { name: 'Cancel' }); diff --git a/packages/cashier/src/pages/on-ramp/on-ramp-provider-popup/on-ramp-provider-popup.tsx b/packages/cashier/src/pages/on-ramp/on-ramp-provider-popup/on-ramp-provider-popup.tsx index c2b9f06d1b9a..7d1ea7dff972 100644 --- a/packages/cashier/src/pages/on-ramp/on-ramp-provider-popup/on-ramp-provider-popup.tsx +++ b/packages/cashier/src/pages/on-ramp/on-ramp-provider-popup/on-ramp-provider-popup.tsx @@ -4,12 +4,12 @@ import { Button, HintBox, Icon, Loading, Popover, Text, useCopyToClipboard } fro import { getKebabCase, website_name, isMobile } from '@deriv/shared'; import { localize, Localize } from '@deriv/translations'; import { observer, useStore } from '@deriv/stores'; +import { useCashierStore } from '../../../stores/useCashierStores'; const OnRampProviderPopup = observer(() => { - const { ui, modules } = useStore(); + const { ui } = useStore(); const { is_dark_mode_on } = ui; - const { cashier } = modules; - const { onramp } = cashier; + const { onramp } = useCashierStore(); const { api_error, deposit_address, @@ -24,9 +24,9 @@ const OnRampProviderPopup = observer(() => { widget_error, widget_html, } = onramp; - const el_onramp_widget_container_ref = React.useRef(null); const [is_copied, copyToClipboard, setIsCopied] = useCopyToClipboard(); + let timeout_clipboard: ReturnType; const onClickCopyDepositAddress = () => { diff --git a/packages/cashier/src/pages/on-ramp/on-ramp.tsx b/packages/cashier/src/pages/on-ramp/on-ramp.tsx index 9134465b0ac5..89752cbd527e 100644 --- a/packages/cashier/src/pages/on-ramp/on-ramp.tsx +++ b/packages/cashier/src/pages/on-ramp/on-ramp.tsx @@ -9,6 +9,7 @@ import SideNote from 'Components/side-note'; import { TReactFormEvent } from 'Types'; import OnRampProviderCard from './on-ramp-provider-card'; import OnRampProviderPopup from './on-ramp-provider-popup'; +import { useCashierStore } from '../../stores/useCashierStores'; import './on-ramp.scss'; type TMenuOption = { @@ -56,9 +57,8 @@ const OnRampInfo = () => ( ); const OnRamp = observer(({ menu_options, setSideNotes }: TOnRampProps) => { - const is_deposit_locked = useDepositLocked(); - const { modules, common, client } = useStore(); - const { onramp, general_store } = modules.cashier; + const { common, client } = useStore(); + const { onramp, general_store } = useCashierStore(); const { filtered_onramp_providers, is_onramp_modal_open, @@ -72,6 +72,7 @@ const OnRamp = observer(({ menu_options, setSideNotes }: TOnRampProps) => { const { is_cashier_onboarding, is_cashier_locked, is_loading, cashier_route_tab_index } = general_store; const { is_switching } = client; const { routeTo } = common; + const is_deposit_locked = useDepositLocked(); const [selected_cashier_path, setSelectedCashierPath] = React.useState(routes.cashier_onramp); diff --git a/packages/cashier/src/pages/p2p-cashier/__tests__/p2p-cashier.spec.js b/packages/cashier/src/pages/p2p-cashier/__tests__/p2p-cashier.spec.js index c0f28c648515..fe58c799309f 100644 --- a/packages/cashier/src/pages/p2p-cashier/__tests__/p2p-cashier.spec.js +++ b/packages/cashier/src/pages/p2p-cashier/__tests__/p2p-cashier.spec.js @@ -4,7 +4,7 @@ import P2PCashier from '../p2p-cashier'; import { createBrowserHistory } from 'history'; import { Router } from 'react-router'; import { routes } from '@deriv/shared'; -import { StoreProvider } from '@deriv/stores'; +import CashierProviders from '../../../cashier-providers'; jest.mock('@deriv/components', () => ({ ...jest.requireActual('@deriv/components'), @@ -59,7 +59,7 @@ describe('', () => { , - { wrapper: ({ children }) => {children} } + { wrapper: ({ children }) => {children} } ); expect(screen.getByText('Loading')).toBeInTheDocument(); @@ -108,7 +108,7 @@ describe('', () => { , - { wrapper: ({ children }) => {children} } + { wrapper: ({ children }) => {children} } ); expect(screen.getByText('P2P')).toBeInTheDocument(); @@ -158,7 +158,7 @@ describe('', () => { , - { wrapper: ({ children }) => {children} } + { wrapper: ({ children }) => {children} } ); expect(history.location.pathname).toBe(routes.cashier_p2p); diff --git a/packages/cashier/src/pages/p2p-cashier/p2p-cashier.jsx b/packages/cashier/src/pages/p2p-cashier/p2p-cashier.jsx index c5d7fa399e71..d2fa623afd1a 100644 --- a/packages/cashier/src/pages/p2p-cashier/p2p-cashier.jsx +++ b/packages/cashier/src/pages/p2p-cashier/p2p-cashier.jsx @@ -7,10 +7,11 @@ import { Loading } from '@deriv/components'; import P2P from '@deriv/p2p'; import { get, init, timePromise } from 'Utils/server_time'; import { observer, useStore } from '@deriv/stores'; +import { useCashierStore } from '../../stores/useCashierStores'; /* P2P will use the same websocket connection as Deriv/Binary, we need to pass it as a prop */ const P2PCashier = observer(({ history, location }) => { - const { notifications, client, ui, common, modules } = useStore(); + const { notifications, client, ui, common } = useStore(); const { addNotificationMessage, filterNotificationMessages, @@ -22,8 +23,7 @@ const P2PCashier = observer(({ history, location }) => { const { balance, currency, local_currency_config, loginid, is_logging_in, is_virtual, residence } = client; const { notification_messages_ui: Notifications, is_dark_mode_on, is_mobile, setCurrentFocus, current_focus } = ui; const { platform } = common; - const { cashier } = modules; - const { general_store } = cashier; + const { general_store } = useCashierStore(); const { setNotificationCount, setOnRemount } = general_store; const [order_id, setOrderId] = React.useState(null); const [action_param, setActionParam] = React.useState(); diff --git a/packages/cashier/src/pages/payment-agent-transfer/__tests__/payment-agent-transfer.spec.js b/packages/cashier/src/pages/payment-agent-transfer/__tests__/payment-agent-transfer.spec.js index ce4cd1b4ab5b..0627632fb4a2 100644 --- a/packages/cashier/src/pages/payment-agent-transfer/__tests__/payment-agent-transfer.spec.js +++ b/packages/cashier/src/pages/payment-agent-transfer/__tests__/payment-agent-transfer.spec.js @@ -3,7 +3,7 @@ import { render, screen } from '@testing-library/react'; import { Router } from 'react-router'; import { createBrowserHistory } from 'history'; import PaymentAgentTransfer from '../payment-agent-transfer'; -import { StoreProvider } from '@deriv/stores'; +import CashierProviders from '../../../cashier-providers'; jest.mock('@deriv/components', () => { const original_module = jest.requireActual('@deriv/components'); @@ -75,9 +75,9 @@ describe('', () => { const renderPaymentAgentTransfer = () => { return render( - + - + ); }; diff --git a/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-confirm/__tests__/payment-agent-transfer-confirm.spec.js b/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-confirm/__tests__/payment-agent-transfer-confirm.spec.js index 9f1d507a7f26..5b9f91820a7d 100644 --- a/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-confirm/__tests__/payment-agent-transfer-confirm.spec.js +++ b/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-confirm/__tests__/payment-agent-transfer-confirm.spec.js @@ -2,7 +2,7 @@ import React from 'react'; import ReactDOM from 'react-dom'; import { fireEvent, render, screen } from '@testing-library/react'; import PaymentAgentTransferConfirm from '../payment-agent-transfer-confirm.jsx'; -import { StoreProvider } from '@deriv/stores'; +import CashierProviders from '../../../../cashier-providers'; describe('', () => { let mockRootStore; @@ -47,9 +47,9 @@ describe('', () => { const renderPaymentAgentTransferConfirm = () => { return render( - + - + ); }; diff --git a/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-confirm/payment-agent-transfer-confirm.jsx b/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-confirm/payment-agent-transfer-confirm.jsx index d35d4f1e63ad..37048f1d95f6 100644 --- a/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-confirm/payment-agent-transfer-confirm.jsx +++ b/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-confirm/payment-agent-transfer-confirm.jsx @@ -3,17 +3,12 @@ import { Money } from '@deriv/components'; import { observer, useStore } from '@deriv/stores'; import { localize } from '@deriv/translations'; import TransferConfirm from 'Components/transfer-confirm'; +import { useCashierStore } from '../../../stores/useCashierStores'; const PaymentAgentTransferConfirm = observer(() => { - const { - client, - modules: { - cashier: { payment_agent_transfer }, - }, - } = useStore(); - + const { client } = useStore(); + const { payment_agent_transfer } = useCashierStore(); const { currency, loginid } = client; - const { confirm: { amount, description, client_id: transfer_to, client_name: transfer_to_name }, error, diff --git a/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-form/__tests__/payment-agent-transfer-form.spec.js b/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-form/__tests__/payment-agent-transfer-form.spec.js index ae3b4196a256..620955e86eed 100644 --- a/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-form/__tests__/payment-agent-transfer-form.spec.js +++ b/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-form/__tests__/payment-agent-transfer-form.spec.js @@ -1,7 +1,7 @@ import React from 'react'; import { fireEvent, render, screen, waitFor } from '@testing-library/react'; import PaymentAgentTransferForm from '../payment-agent-transfer-form'; -import { StoreProvider } from '@deriv/stores'; +import CashierProviders from '../../../../cashier-providers'; jest.mock('@deriv/shared/src/utils/validation/declarative-validation-rules', () => ({ __esModule: true, @@ -56,9 +56,9 @@ describe('', () => { const renderPaymentAgentTransferForm = () => { return render( - + - + ); }; diff --git a/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-form/payment-agent-transfer-form.jsx b/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-form/payment-agent-transfer-form.jsx index 37c039c94f91..06474cd0798e 100644 --- a/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-form/payment-agent-transfer-form.jsx +++ b/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-form/payment-agent-transfer-form.jsx @@ -6,6 +6,7 @@ import { getDecimalPlaces, validNumber, getCurrencyDisplayCode } from '@deriv/sh import { observer, useStore } from '@deriv/stores'; import { localize, Localize } from '@deriv/translations'; import ErrorDialog from 'Components/error-dialog'; +import { useCashierStore } from '../../../stores/useCashierStores'; import './payment-agent-transfer-form.scss'; const validateTransfer = (values, { balance, currency, transfer_limit }) => { @@ -40,22 +41,15 @@ const validateTransfer = (values, { balance, currency, transfer_limit }) => { }; const PaymentAgentTransferForm = observer(() => { - const { - client, - modules: { - cashier: { payment_agent_transfer: payment_agent_transfer_store }, - }, - } = useStore(); - + const { client } = useStore(); const { balance, currency } = client; - + const { payment_agent_transfer: payment_agent_transfer_store } = useCashierStore(); const { confirm: { amount, description, client_id: transfer_to }, error, requestTryPaymentAgentTransfer, transfer_limit, } = payment_agent_transfer_store; - const { setErrorMessage } = error; const validateTransferPassthrough = values => diff --git a/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-receipt/__tests__/payment-agent-transfer-receipt.spec.js b/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-receipt/__tests__/payment-agent-transfer-receipt.spec.js index d2de0dff0fad..556ec33a3cae 100644 --- a/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-receipt/__tests__/payment-agent-transfer-receipt.spec.js +++ b/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-receipt/__tests__/payment-agent-transfer-receipt.spec.js @@ -4,7 +4,7 @@ import { fireEvent, render, screen } from '@testing-library/react'; import { createBrowserHistory } from 'history'; import { Router } from 'react-router'; import { routes } from '@deriv/shared'; -import { StoreProvider } from '@deriv/stores'; +import CashierProviders from '../../../../cashier-providers'; describe('', () => { let history, mockRootStore; @@ -33,9 +33,9 @@ describe('', () => { const renderPaymentAgentTransferReceipt = () => { return render( - + - + ); }; diff --git a/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-receipt/payment-agent-transfer-receipt.jsx b/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-receipt/payment-agent-transfer-receipt.jsx index 022cef3d0539..adce13194782 100644 --- a/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-receipt/payment-agent-transfer-receipt.jsx +++ b/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer-receipt/payment-agent-transfer-receipt.jsx @@ -5,6 +5,7 @@ import { Button, Icon, Text } from '@deriv/components'; import { routes, formatMoney, getCurrencyDisplayCode, getCurrencyName } from '@deriv/shared'; import { observer, useStore } from '@deriv/stores'; import { localize, Localize } from '@deriv/translations'; +import { useCashierStore } from '../../../stores/useCashierStores'; import './payment-agent-transfer-receipt.scss'; const openStatement = (history, resetPaymentAgentTransfer) => { @@ -13,18 +14,10 @@ const openStatement = (history, resetPaymentAgentTransfer) => { }; const PaymentAgentTransferReceipt = observer(({ history }) => { - const { - client, - common, - modules: { - cashier: { payment_agent_transfer }, - }, - } = useStore(); - + const { client, common } = useStore(); const { currency, loginid } = client; - const { is_from_derivgo } = common; - + const { payment_agent_transfer } = useCashierStore(); const { receipt, resetPaymentAgentTransfer } = payment_agent_transfer; return ( diff --git a/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer.jsx b/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer.jsx index 80152cc35531..0fa5d7ce6adf 100644 --- a/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer.jsx +++ b/packages/cashier/src/pages/payment-agent-transfer/payment-agent-transfer.jsx @@ -8,19 +8,13 @@ import { Virtual } from 'Components/cashier-container'; import PaymentAgentTransferConfirm from './payment-agent-transfer-confirm'; import PaymentAgentTransferForm from './payment-agent-transfer-form'; import PaymentAgentTransferReceipt from './payment-agent-transfer-receipt'; +import { useCashierStore } from '../../stores/useCashierStores'; const PaymentAgentTransfer = observer(() => { - const { - client, - modules: { - cashier: { general_store, payment_agent_transfer }, - }, - } = useStore(); - + const { client } = useStore(); const { balance, is_virtual } = client; - + const { general_store, payment_agent_transfer } = useCashierStore(); const { is_cashier_locked, is_loading, setActiveTab } = general_store; - const { container, error, diff --git a/packages/cashier/src/pages/payment-agent/__tests__/payment-agent.spec.js b/packages/cashier/src/pages/payment-agent/__tests__/payment-agent.spec.js index 6e566847f8fe..1f6c53f41280 100644 --- a/packages/cashier/src/pages/payment-agent/__tests__/payment-agent.spec.js +++ b/packages/cashier/src/pages/payment-agent/__tests__/payment-agent.spec.js @@ -3,7 +3,7 @@ import { render, screen } from '@testing-library/react'; import { Router } from 'react-router'; import { createBrowserHistory } from 'history'; import PaymentAgent from '../payment-agent'; -import { StoreProvider } from '@deriv/stores'; +import CashierProviders from '../../../cashier-providers'; jest.mock('@deriv/components', () => { const original_module = jest.requireActual('@deriv/components'); @@ -53,9 +53,9 @@ describe('', () => { const renderPaymentAgent = () => { return render( - + - + ); }; diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-container/__tests__/payment-agent-container.spec.js b/packages/cashier/src/pages/payment-agent/payment-agent-container/__tests__/payment-agent-container.spec.js index dcbbaa866c01..082c9442b3e0 100644 --- a/packages/cashier/src/pages/payment-agent/payment-agent-container/__tests__/payment-agent-container.spec.js +++ b/packages/cashier/src/pages/payment-agent/payment-agent-container/__tests__/payment-agent-container.spec.js @@ -2,7 +2,7 @@ import React from 'react'; import { fireEvent, screen, render } from '@testing-library/react'; import PaymentAgentContainer from '../payment-agent-container'; import { isMobile } from '@deriv/shared'; -import { StoreProvider } from '@deriv/stores'; +import CashierProviders from '../../../../cashier-providers'; jest.mock('@deriv/shared', () => ({ ...jest.requireActual('@deriv/shared'), @@ -83,9 +83,9 @@ describe('', () => { const renderPaymentAgentContainer = (is_deposit = true) => { return render( - + - + ); }; diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-container/payment-agent-container.jsx b/packages/cashier/src/pages/payment-agent/payment-agent-container/payment-agent-container.jsx index 5a125fa87fec..5e7afebb77d7 100644 --- a/packages/cashier/src/pages/payment-agent/payment-agent-container/payment-agent-container.jsx +++ b/packages/cashier/src/pages/payment-agent/payment-agent-container/payment-agent-container.jsx @@ -11,6 +11,7 @@ import PaymentAgentReceipt from '../payment-agent-receipt'; import PaymentAgentSearchBox from '../payment-agent-search-box'; import PaymentAgentUnlistedWithdrawForm from '../payment-agent-unlisted-withdraw-form'; import PaymentAgentWithdrawConfirm from '../payment-agent-withdraw-confirm'; +import { useCashierStore } from '../../../stores/useCashierStores'; import './payment-agent-container.scss'; const PaymentAgentSearchWarning = () => { @@ -28,15 +29,9 @@ const PaymentAgentSearchWarning = () => { }; const PaymentAgentContainer = observer(({ is_deposit, verification_code }) => { - const { - ui, - modules: { - cashier: { payment_agent: payment_agent_store }, - }, - } = useStore(); - + const { ui } = useStore(); const { app_contents_scroll_ref, is_dark_mode_on } = ui; - + const { payment_agent: payment_agent_store } = useCashierStore(); const { has_payment_agent_search_warning, is_search_loading, diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-list/deposit-tab.tsx b/packages/cashier/src/pages/payment-agent/payment-agent-list/deposit-tab.tsx index 5f33104ed67c..da8bc21ec79c 100644 --- a/packages/cashier/src/pages/payment-agent/payment-agent-list/deposit-tab.tsx +++ b/packages/cashier/src/pages/payment-agent/payment-agent-list/deposit-tab.tsx @@ -1,11 +1,11 @@ import React from 'react'; import { Loading } from '@deriv/components'; -import { useStore, observer } from '@deriv/stores'; +import { observer } from '@deriv/stores'; import PaymentAgentContainer from '../payment-agent-container'; +import { useCashierStore } from '../../../stores/useCashierStores'; const DepositTab = observer(() => { - const { modules } = useStore(); - const { payment_agent, general_store } = modules.cashier; + const { payment_agent, general_store } = useCashierStore(); React.useEffect(() => { payment_agent.onMountPaymentAgentList(); diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-list/payment-agent-list.tsx b/packages/cashier/src/pages/payment-agent/payment-agent-list/payment-agent-list.tsx index 2bda655d4450..e9ba36dc7921 100644 --- a/packages/cashier/src/pages/payment-agent/payment-agent-list/payment-agent-list.tsx +++ b/packages/cashier/src/pages/payment-agent/payment-agent-list/payment-agent-list.tsx @@ -3,13 +3,14 @@ import classNames from 'classnames'; import { Tabs } from '@deriv/components'; import { localize } from '@deriv/translations'; import { isDesktop } from '@deriv/shared'; -import { useStore, observer } from '@deriv/stores'; +import { observer } from '@deriv/stores'; import SideNote from 'Components/side-note'; import { TSideNotesProps } from 'Types'; import DepositTab from './deposit-tab'; import WithdrawalTab from './withdrawal-tab'; import MissingPaymentMethodNote from '../missing-payment-method-note'; import PaymentAgentDisclaimer from '../payment-agent-disclaimer'; +import { useCashierStore } from '../../../stores/useCashierStores'; import './payment-agent-list.scss'; type TProps = { @@ -17,8 +18,7 @@ type TProps = { }; const PaymentAgentList = observer(({ setSideNotes }: TProps) => { - const { modules } = useStore(); - const { payment_agent, general_store } = modules.cashier; + const { payment_agent, general_store } = useCashierStore(); React.useEffect(() => { if (!general_store.is_loading && !payment_agent.is_try_withdraw_successful) { diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-list/withdrawal-tab.tsx b/packages/cashier/src/pages/payment-agent/payment-agent-list/withdrawal-tab.tsx index cc5feba24bce..c66ab243567a 100644 --- a/packages/cashier/src/pages/payment-agent/payment-agent-list/withdrawal-tab.tsx +++ b/packages/cashier/src/pages/payment-agent/payment-agent-list/withdrawal-tab.tsx @@ -4,11 +4,12 @@ import { useStore, observer } from '@deriv/stores'; import EmailVerificationEmptyState from 'Components/email-verification-empty-state'; import PaymentAgentContainer from '../payment-agent-container'; import PaymentAgentWithdrawalLocked from '../payment-agent-withdrawal-locked'; +import { useCashierStore } from '../../../stores/useCashierStores'; const WithdrawalTab = observer(() => { const verify = useVerifyEmail('paymentagent_withdraw'); - const { client, modules } = useStore(); - const { payment_agent } = modules.cashier; + const { client } = useStore(); + const { payment_agent } = useCashierStore(); const verification_code = client.verification_code.payment_agent_withdraw; React.useEffect(() => { diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-listed-withdraw-form/__tests__/payment-agent-listed-withdraw-form.spec.js b/packages/cashier/src/pages/payment-agent/payment-agent-listed-withdraw-form/__tests__/payment-agent-listed-withdraw-form.spec.js index 497b7013d051..cdb24cb0279b 100644 --- a/packages/cashier/src/pages/payment-agent/payment-agent-listed-withdraw-form/__tests__/payment-agent-listed-withdraw-form.spec.js +++ b/packages/cashier/src/pages/payment-agent/payment-agent-listed-withdraw-form/__tests__/payment-agent-listed-withdraw-form.spec.js @@ -3,7 +3,7 @@ import ReactDOM from 'react-dom'; import { fireEvent, render, screen, waitFor } from '@testing-library/react'; import PaymentAgentListedWithdrawForm from '../payment-agent-listed-withdraw-form'; import { validNumber } from '@deriv/shared'; -import { StoreProvider } from '@deriv/stores'; +import CashierProviders from '../../../../cashier-providers'; jest.mock('@deriv/components', () => ({ ...jest.requireActual('@deriv/components'), @@ -98,9 +98,9 @@ describe('', () => { const renderPaymentAgentListedWithdrawForm = (is_rerender = false) => { const ui = ( - + - + ); return is_rerender ? ui : render(ui); }; diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-listed-withdraw-form/payment-agent-listed-withdraw-form.jsx b/packages/cashier/src/pages/payment-agent/payment-agent-listed-withdraw-form/payment-agent-listed-withdraw-form.jsx index 7b3e3f7ce855..040be9f20fed 100644 --- a/packages/cashier/src/pages/payment-agent/payment-agent-listed-withdraw-form/payment-agent-listed-withdraw-form.jsx +++ b/packages/cashier/src/pages/payment-agent/payment-agent-listed-withdraw-form/payment-agent-listed-withdraw-form.jsx @@ -7,6 +7,7 @@ import { getDecimalPlaces, getCurrencyDisplayCode, validNumber } from '@deriv/sh import { localize, Localize } from '@deriv/translations'; import { observer, useStore } from '@deriv/stores'; import ErrorDialog from 'Components/error-dialog'; +import { useCashierStore } from '../../../stores/useCashierStores'; import './payment-agent-listed-withdraw-form.scss'; const validateWithdrawal = (values, { balance, currency, payment_agent = {} }) => { @@ -33,19 +34,13 @@ const validateWithdrawal = (values, { balance, currency, payment_agent = {} }) = }; const PaymentAgentListedWithdrawForm = observer(({ payment_agent }) => { - const { - client, - modules: { - cashier: { general_store, payment_agent: payment_agenr_store }, - }, - } = useStore(); - + const { client } = useStore(); + const { general_store, payment_agent: payment_agent_store } = useCashierStore(); const { balance, currency, verification_code: { payment_agent_withdraw: verification_code }, } = client; - const { is_crypto, is_loading } = general_store; const { error, @@ -53,7 +48,7 @@ const PaymentAgentListedWithdrawForm = observer(({ payment_agent }) => { agents: payment_agent_list, requestTryPaymentAgentWithdraw, selected_bank, - } = payment_agenr_store; + } = payment_agent_store; React.useEffect(() => { onMount(); diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-receipt/__tests__/payment-agent-receipt.spec.js b/packages/cashier/src/pages/payment-agent/payment-agent-receipt/__tests__/payment-agent-receipt.spec.js index 4360516425fc..c4b0a7880d11 100644 --- a/packages/cashier/src/pages/payment-agent/payment-agent-receipt/__tests__/payment-agent-receipt.spec.js +++ b/packages/cashier/src/pages/payment-agent/payment-agent-receipt/__tests__/payment-agent-receipt.spec.js @@ -4,7 +4,7 @@ import { fireEvent, render, screen } from '@testing-library/react'; import { createBrowserHistory } from 'history'; import { Router } from 'react-router'; import { isMobile, routes } from '@deriv/shared'; -import { StoreProvider } from '@deriv/stores'; +import CashierProviders from '../../../../cashier-providers'; jest.mock('@deriv/shared', () => ({ ...jest.requireActual('@deriv/shared'), @@ -47,9 +47,9 @@ describe('', () => { const renderPaymentAgentReceipt = () => { return render( - + - + ); }; diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-receipt/payment-agent-receipt.jsx b/packages/cashier/src/pages/payment-agent/payment-agent-receipt/payment-agent-receipt.jsx index 886dbdfd298f..04416f9b9eea 100644 --- a/packages/cashier/src/pages/payment-agent/payment-agent-receipt/payment-agent-receipt.jsx +++ b/packages/cashier/src/pages/payment-agent/payment-agent-receipt/payment-agent-receipt.jsx @@ -9,6 +9,7 @@ import { localize, Localize } from '@deriv/translations'; import PaymentAgentDetail from '../payment-agent-detail'; import PaymentAgentDisclaimer from '../payment-agent-disclaimer'; import SideNote from 'Components/side-note'; +import { useCashierStore } from '../../../stores/useCashierStores'; import './payment-agent-receipt.scss'; const openStatement = (history, resetPaymentAgent) => { @@ -39,18 +40,10 @@ const PaymentAgentDetails = ({ payment_agent_email, payment_agent_phones, paymen }; const PaymentAgentReceipt = observer(({ history }) => { - const { - client, - common, - modules: { - cashier: { payment_agent: payment_agent_store }, - }, - } = useStore(); - + const { client, common } = useStore(); + const { payment_agent: payment_agent_store } = useCashierStore(); const { currency } = client; - const { is_from_derivgo } = common; - const { receipt, resetPaymentAgent } = payment_agent_store; React.useEffect(() => { diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-search-box/payment-agent-search-box.jsx b/packages/cashier/src/pages/payment-agent/payment-agent-search-box/payment-agent-search-box.jsx index 1e9349b14eff..57e8ade75164 100644 --- a/packages/cashier/src/pages/payment-agent/payment-agent-search-box/payment-agent-search-box.jsx +++ b/packages/cashier/src/pages/payment-agent/payment-agent-search-box/payment-agent-search-box.jsx @@ -1,16 +1,12 @@ import React from 'react'; import debounce from 'lodash.debounce'; -import { observer, useStore } from '@deriv/stores'; +import { observer } from '@deriv/stores'; import { localize } from '@deriv/translations'; import CashierSearchBox from 'Components/cashier-search-box'; +import { useCashierStore } from '../../../stores/useCashierStores'; const PaymentAgentSearchBox = observer(() => { - const { - modules: { - cashier: { payment_agent }, - }, - } = useStore(); - + const { payment_agent } = useCashierStore(); const { filterPaymentAgentList, setIsSearchLoading, search_term, setSearchTerm } = payment_agent; const debouncedFunction = debounce(() => { diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-unlisted-withdraw-form/__tests__/payment-agent-withdraw-form.spec.js b/packages/cashier/src/pages/payment-agent/payment-agent-unlisted-withdraw-form/__tests__/payment-agent-withdraw-form.spec.js index 0d9c4dba2ba7..c92487d18e58 100644 --- a/packages/cashier/src/pages/payment-agent/payment-agent-unlisted-withdraw-form/__tests__/payment-agent-withdraw-form.spec.js +++ b/packages/cashier/src/pages/payment-agent/payment-agent-unlisted-withdraw-form/__tests__/payment-agent-withdraw-form.spec.js @@ -3,7 +3,7 @@ import ReactDOM from 'react-dom'; import { fireEvent, render, screen, waitFor } from '@testing-library/react'; import PaymentAgentUnlistedWithdrawForm from '../payment-agent-unlisted-withdraw-form'; import { isMobile, validNumber } from '@deriv/shared'; -import { StoreProvider } from '@deriv/stores'; +import CashierProviders from '../../../../cashier-providers'; jest.mock('@deriv/shared', () => ({ ...jest.requireActual('@deriv/shared'), @@ -49,12 +49,12 @@ describe('', () => { const renderPaymentAgentUnlistedWithdrawForm = (is_rerender = false) => { const ui = ( - + - + ); return is_rerender ? ui : render(ui); }; diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-unlisted-withdraw-form/payment-agent-unlisted-withdraw-form.jsx b/packages/cashier/src/pages/payment-agent/payment-agent-unlisted-withdraw-form/payment-agent-unlisted-withdraw-form.jsx index 5b6756dabd50..07438a7d8c03 100644 --- a/packages/cashier/src/pages/payment-agent/payment-agent-unlisted-withdraw-form/payment-agent-unlisted-withdraw-form.jsx +++ b/packages/cashier/src/pages/payment-agent/payment-agent-unlisted-withdraw-form/payment-agent-unlisted-withdraw-form.jsx @@ -9,6 +9,7 @@ import { localize, Localize } from '@deriv/translations'; import PaymentAgentDisclaimer from '../payment-agent-disclaimer'; import ErrorDialog from 'Components/error-dialog'; import SideNote from 'Components/side-note'; +import { useCashierStore } from '../../../stores/useCashierStores'; import './payment-agent-unlisted-withdraw-form.scss'; const validateWithdrawal = (values, { balance, currency }) => { @@ -36,15 +37,9 @@ const validateWithdrawal = (values, { balance, currency }) => { }; const PaymentAgentUnlistedWithdrawForm = observer(({ verification_code, setIsUnlistedWithdraw }) => { - const { - client, - modules: { - cashier: { payment_agent }, - }, - } = useStore(); - + const { client } = useStore(); const { balance, currency } = client; - + const { payment_agent } = useCashierStore(); const { error, onMountPaymentAgentWithdraw: onMount, requestTryPaymentAgentWithdraw } = payment_agent; React.useEffect(() => { diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-withdraw-confirm/__tests__/payment-agent-withdraw-confirm.spec.js b/packages/cashier/src/pages/payment-agent/payment-agent-withdraw-confirm/__tests__/payment-agent-withdraw-confirm.spec.js index 6ece99f73875..fc09e152e03a 100644 --- a/packages/cashier/src/pages/payment-agent/payment-agent-withdraw-confirm/__tests__/payment-agent-withdraw-confirm.spec.js +++ b/packages/cashier/src/pages/payment-agent/payment-agent-withdraw-confirm/__tests__/payment-agent-withdraw-confirm.spec.js @@ -2,7 +2,7 @@ import React from 'react'; import ReactDOM from 'react-dom'; import { fireEvent, render, screen } from '@testing-library/react'; import PaymentAgentWithdrawConfirm from '../payment-agent-withdraw-confirm'; -import { StoreProvider } from '@deriv/stores'; +import CashierProviders from '../../../../cashier-providers'; describe('', () => { let mockRootStore, verification_code; @@ -43,9 +43,9 @@ describe('', () => { const renderPaymentAgentWithdrawConfirm = () => { return render( - + - + ); }; diff --git a/packages/cashier/src/pages/payment-agent/payment-agent-withdraw-confirm/payment-agent-withdraw-confirm.jsx b/packages/cashier/src/pages/payment-agent/payment-agent-withdraw-confirm/payment-agent-withdraw-confirm.jsx index 9a154f46d104..87f11c5aa6fb 100644 --- a/packages/cashier/src/pages/payment-agent/payment-agent-withdraw-confirm/payment-agent-withdraw-confirm.jsx +++ b/packages/cashier/src/pages/payment-agent/payment-agent-withdraw-confirm/payment-agent-withdraw-confirm.jsx @@ -4,17 +4,12 @@ import { Money } from '@deriv/components'; import { observer, useStore } from '@deriv/stores'; import { localize } from '@deriv/translations'; import TransferConfirm from 'Components/transfer-confirm'; +import { useCashierStore } from '../../../stores/useCashierStores'; const PaymentAgentWithdrawConfirm = observer(({ verification_code }) => { - const { - client, - modules: { - cashier: { payment_agent }, - }, - } = useStore(); - + const { client } = useStore(); const { loginid: client_loginid } = client; - + const { payment_agent } = useCashierStore(); const { confirm: { amount, currency, loginid, payment_agent_name }, error, diff --git a/packages/cashier/src/pages/payment-agent/payment-agent.jsx b/packages/cashier/src/pages/payment-agent/payment-agent.jsx index 5e241cea3447..5017fdf95144 100644 --- a/packages/cashier/src/pages/payment-agent/payment-agent.jsx +++ b/packages/cashier/src/pages/payment-agent/payment-agent.jsx @@ -5,32 +5,26 @@ import { observer, useStore } from '@deriv/stores'; import CashierLocked from 'Components/cashier-locked'; import { Virtual } from 'Components/cashier-container'; import PaymentAgentList from './payment-agent-list'; +import { useCashierStore } from '../../stores/useCashierStores'; const PaymentAgent = observer(({ setSideNotes }) => { - const { - client, - modules: { - cashier: { general_store, payment_agent }, - }, - } = useStore(); - + const { client } = useStore(); const { is_switching, is_virtual, verification_code: { payment_agent_withdraw: verification_code }, } = client; - + const { general_store, payment_agent } = useCashierStore(); const { is_cashier_locked, setActiveTab } = general_store; - const { container, is_withdraw: is_payment_agent_withdraw, active_tab_index: payment_agent_active_tab_index, setActiveTabIndex: setPaymentAgentActiveTabIndex, } = payment_agent; - const initial_active_index = verification_code || is_payment_agent_withdraw || payment_agent_active_tab_index ? 1 : 0; + setPaymentAgentActiveTabIndex(initial_active_index); React.useEffect(() => { diff --git a/packages/cashier/src/pages/withdrawal/__tests__/withdrawal.spec.tsx b/packages/cashier/src/pages/withdrawal/__tests__/withdrawal.spec.tsx index 3b393305d92e..740dc5784cf0 100644 --- a/packages/cashier/src/pages/withdrawal/__tests__/withdrawal.spec.tsx +++ b/packages/cashier/src/pages/withdrawal/__tests__/withdrawal.spec.tsx @@ -3,8 +3,8 @@ import { render, screen } from '@testing-library/react'; import { Router } from 'react-router'; import { createBrowserHistory } from 'history'; import { isDesktop } from '@deriv/shared'; -import { StoreProvider } from '@deriv/stores'; import Withdrawal from '../withdrawal'; +import CashierProviders from '../../../cashier-providers'; jest.mock('Components/cashier-locked', () => jest.fn(() => 'CashierLocked')); jest.mock('Components/cashier-container/virtual', () => jest.fn(() => 'Virtual')); @@ -77,11 +77,11 @@ describe('', () => { const renderWithdrawal = (is_rerender = false) => { const ui = ( - + - + ); return is_rerender ? ui : render(ui); }; diff --git a/packages/cashier/src/pages/withdrawal/crypto-withdraw-form/__tests__/crypto-withdraw-form.spec.tsx b/packages/cashier/src/pages/withdrawal/crypto-withdraw-form/__tests__/crypto-withdraw-form.spec.tsx index 37fd21b338de..f193fa244c46 100644 --- a/packages/cashier/src/pages/withdrawal/crypto-withdraw-form/__tests__/crypto-withdraw-form.spec.tsx +++ b/packages/cashier/src/pages/withdrawal/crypto-withdraw-form/__tests__/crypto-withdraw-form.spec.tsx @@ -1,8 +1,8 @@ import React from 'react'; import { act } from 'react-dom/test-utils'; import { fireEvent, render, screen, waitFor } from '@testing-library/react'; -import { StoreProvider } from '@deriv/stores'; import CryptoWithdrawForm from '../crypto-withdraw-form'; +import CashierProviders from '../../../../cashier-providers'; describe('', () => { let mockRootStore; @@ -41,9 +41,9 @@ describe('', () => { const renderCryptoWithdrawForm = () => { return render( - + - + ); }; diff --git a/packages/cashier/src/pages/withdrawal/crypto-withdraw-form/crypto-withdraw-form.tsx b/packages/cashier/src/pages/withdrawal/crypto-withdraw-form/crypto-withdraw-form.tsx index d6f56aa9e5a5..4e214088bcbb 100644 --- a/packages/cashier/src/pages/withdrawal/crypto-withdraw-form/crypto-withdraw-form.tsx +++ b/packages/cashier/src/pages/withdrawal/crypto-withdraw-form/crypto-withdraw-form.tsx @@ -9,6 +9,7 @@ import CryptoFiatConverter from 'Components/crypto-fiat-converter'; import PercentageSelector from 'Components/percentage-selector'; import RecentTransaction from 'Components/recent-transaction'; import { TReactChangeEvent } from 'Types'; +import { useCashierStore } from '../../../stores/useCashierStores'; import './crypto-withdraw-form.scss'; type THeaderProps = { @@ -47,22 +48,15 @@ const Header = ({ currency }: THeaderProps) => { }; const CryptoWithdrawForm = observer(() => { - const { - client, - modules: { - cashier: { crypto_fiat_converter, general_store, transaction_history, withdraw }, - }, - } = useStore(); - + const { client } = useStore(); const { balance, currency, current_fiat_currency, verification_code: { payment_withdraw: verification_code }, } = client; - + const { crypto_fiat_converter, general_store, transaction_history, withdraw } = useCashierStore(); const crypto_currency = currency; - const { account_platform_icon, blockchain_address, @@ -74,7 +68,6 @@ const CryptoWithdrawForm = observer(() => { validateWithdrawToAmount, resetWithrawForm, } = withdraw; - const { converter_from_error, converter_to_error, @@ -82,9 +75,7 @@ const CryptoWithdrawForm = observer(() => { onChangeConverterToAmount, resetConverter, } = crypto_fiat_converter; - const { is_loading, percentage, percentageSelectorSelectionStatus, should_percentage_reset } = general_store; - const { crypto_transactions, onMount: recentTransactionOnMount } = transaction_history; React.useEffect(() => { diff --git a/packages/cashier/src/pages/withdrawal/crypto-withdraw-receipt/__tests__/crypto-withdraw-receipt.spec.tsx b/packages/cashier/src/pages/withdrawal/crypto-withdraw-receipt/__tests__/crypto-withdraw-receipt.spec.tsx index 66a7c91e2cd5..d5d699ea43aa 100644 --- a/packages/cashier/src/pages/withdrawal/crypto-withdraw-receipt/__tests__/crypto-withdraw-receipt.spec.tsx +++ b/packages/cashier/src/pages/withdrawal/crypto-withdraw-receipt/__tests__/crypto-withdraw-receipt.spec.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { fireEvent, render, screen } from '@testing-library/react'; -import { StoreProvider } from '@deriv/stores'; import CryptoWithdrawReceipt from '../crypto-withdraw-receipt'; +import CashierProviders from '../../../../cashier-providers'; describe('', () => { let mockRootStore; @@ -43,9 +43,9 @@ describe('', () => { const renderCryptoWithdrawReceipt = () => { return render( - + - + ); }; diff --git a/packages/cashier/src/pages/withdrawal/crypto-withdraw-receipt/crypto-withdraw-receipt.tsx b/packages/cashier/src/pages/withdrawal/crypto-withdraw-receipt/crypto-withdraw-receipt.tsx index dd39234fe199..9a05d46982d3 100644 --- a/packages/cashier/src/pages/withdrawal/crypto-withdraw-receipt/crypto-withdraw-receipt.tsx +++ b/packages/cashier/src/pages/withdrawal/crypto-withdraw-receipt/crypto-withdraw-receipt.tsx @@ -6,6 +6,7 @@ import { useStore, observer } from '@deriv/stores'; import { TAccount } from 'Types'; import { getAccountText } from 'Utils/utility'; import RecentTransaction from 'Components/recent-transaction'; +import { useCashierStore } from '../../../stores/useCashierStores'; import './crypto-withdraw-receipt.scss'; type TWalletInformationProps = { @@ -97,19 +98,11 @@ const WalletInformation = ({ account, blockchain_address }: TWalletInformationPr }; const CryptoWithdrawReceipt = observer(() => { - const { - client, - modules: { - cashier: { account_transfer, general_store, transaction_history, withdraw }, - }, - } = useStore(); - - const { selected_from: account } = account_transfer; - + const { client } = useStore(); const { currency, is_switching } = client; - + const { account_transfer, general_store, transaction_history, withdraw } = useCashierStore(); + const { selected_from: account } = account_transfer; const { cashier_route_tab_index: tab_index } = general_store; - const { crypto_transactions, onMount: recentTransactionOnMount, diff --git a/packages/cashier/src/pages/withdrawal/withdraw/__tests__/withdraw.spec.tsx b/packages/cashier/src/pages/withdrawal/withdraw/__tests__/withdraw.spec.tsx index 183f747f249c..84a5f1b1f7bc 100644 --- a/packages/cashier/src/pages/withdrawal/withdraw/__tests__/withdraw.spec.tsx +++ b/packages/cashier/src/pages/withdrawal/withdraw/__tests__/withdraw.spec.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { render, screen } from '@testing-library/react'; -import { StoreProvider } from '@deriv/stores'; import Withdraw from '../withdraw'; +import CashierProviders from '../../../../cashier-providers'; jest.mock('Components/cashier-container/real', () => jest.fn(() => 'mockedReal')); @@ -32,9 +32,9 @@ describe('', () => { it('should render the cashier container component', () => { render( - + - + ); expect(mockRootStore.modules.cashier.withdraw.onMountWithdraw).toHaveBeenCalledWith('code'); diff --git a/packages/cashier/src/pages/withdrawal/withdraw/withdraw.tsx b/packages/cashier/src/pages/withdrawal/withdraw/withdraw.tsx index 5a85bd1f4837..a1e3f409b4c2 100644 --- a/packages/cashier/src/pages/withdrawal/withdraw/withdraw.tsx +++ b/packages/cashier/src/pages/withdrawal/withdraw/withdraw.tsx @@ -1,23 +1,16 @@ import React from 'react'; import { useStore, observer } from '@deriv/stores'; import { Real } from 'Components/cashier-container'; +import { useCashierStore } from '../../../stores/useCashierStores'; const Withdraw = observer(() => { - const { - client, - modules: { - cashier: { iframe, general_store, withdraw }, - }, - } = useStore(); - + const { client } = useStore(); const { verification_code: { payment_withdraw: verification_code }, } = client; - + const { iframe, general_store, withdraw } = useCashierStore(); const { is_loading, setActiveTab } = general_store; - const { iframe_height, iframe_url, clearIframe } = iframe; - const { container, onMountWithdraw: onMount } = withdraw; React.useEffect(() => { diff --git a/packages/cashier/src/pages/withdrawal/withdrawal-locked/__tests__/withdrawal-locked.spec.tsx b/packages/cashier/src/pages/withdrawal/withdrawal-locked/__tests__/withdrawal-locked.spec.tsx index bb110f0fa4da..ff0d331cd87c 100644 --- a/packages/cashier/src/pages/withdrawal/withdrawal-locked/__tests__/withdrawal-locked.spec.tsx +++ b/packages/cashier/src/pages/withdrawal/withdrawal-locked/__tests__/withdrawal-locked.spec.tsx @@ -3,8 +3,8 @@ import { Router } from 'react-router'; import { createBrowserHistory } from 'history'; import { fireEvent, render, screen } from '@testing-library/react'; import { routes } from '@deriv/shared'; -import { StoreProvider } from '@deriv/stores'; import WithdrawalLocked from '../withdrawal-locked'; +import CashierProviders from '../../../../cashier-providers'; type TStatus = 'document' | 'none' | 'pending' | ''; @@ -70,11 +70,11 @@ describe('WithdrawalLocked', () => { const renderWithdrawalLocked = () => { return render( - + - + ); }; diff --git a/packages/cashier/src/pages/withdrawal/withdrawal-locked/withdrawal-locked.tsx b/packages/cashier/src/pages/withdrawal/withdrawal-locked/withdrawal-locked.tsx index 4c33f5a92573..12e3e82da12b 100644 --- a/packages/cashier/src/pages/withdrawal/withdrawal-locked/withdrawal-locked.tsx +++ b/packages/cashier/src/pages/withdrawal/withdrawal-locked/withdrawal-locked.tsx @@ -5,6 +5,7 @@ import { localize, Localize } from '@deriv/translations'; import { routes } from '@deriv/shared'; import { useStore, observer } from '@deriv/stores'; import CashierLocked from 'Components/cashier-locked'; +import { useCashierStore } from '../../../stores/useCashierStores'; type TItem = { content: string; @@ -13,20 +14,13 @@ type TItem = { }; const WithdrawalLocked = observer(() => { - const { - client, - modules: { - cashier: { withdraw }, - }, - } = useStore(); - + const { client } = useStore(); const { account_status } = client; - + const { withdraw } = useCashierStore(); const { is_10k_withdrawal_limit_reached: is_10K_limit, error: { is_ask_financial_risk_approval }, } = withdraw; - const document = account_status.authentication?.document; const identity = account_status.authentication?.identity; const needs_verification = account_status.authentication?.needs_verification; diff --git a/packages/cashier/src/pages/withdrawal/withdrawal-verification-email/withdrawal-verification-email.tsx b/packages/cashier/src/pages/withdrawal/withdrawal-verification-email/withdrawal-verification-email.tsx index c720175550e8..281ad807064b 100644 --- a/packages/cashier/src/pages/withdrawal/withdrawal-verification-email/withdrawal-verification-email.tsx +++ b/packages/cashier/src/pages/withdrawal/withdrawal-verification-email/withdrawal-verification-email.tsx @@ -8,11 +8,12 @@ import RecentTransaction from 'Components/recent-transaction'; import EmailVerificationEmptyState from 'Components/email-verification-empty-state'; import EmptyState from 'Components/empty-state'; import Error from 'Components/error'; +import { useCashierStore } from '../../../stores/useCashierStores'; const WithdrawalVerificationEmail = observer(() => { const verify = useVerifyEmail('payment_withdraw'); - const { client, modules } = useStore(); - const { transaction_history } = modules.cashier; + const { client } = useStore(); + const { transaction_history } = useCashierStore(); React.useEffect(() => { transaction_history.onMount(); diff --git a/packages/cashier/src/pages/withdrawal/withdrawal.tsx b/packages/cashier/src/pages/withdrawal/withdrawal.tsx index a011a7e29995..b68dd2cd546e 100644 --- a/packages/cashier/src/pages/withdrawal/withdrawal.tsx +++ b/packages/cashier/src/pages/withdrawal/withdrawal.tsx @@ -16,6 +16,7 @@ import RecentTransaction from 'Components/recent-transaction'; import SideNote from 'Components/side-note'; import USDTSideNote from 'Components/usdt-side-note'; import { Virtual } from 'Components/cashier-container'; +import { useCashierStore } from '../../stores/useCashierStores'; type TWithdrawalSideNoteProps = { currency: string; @@ -48,13 +49,7 @@ const WithdrawalSideNote = ({ is_mobile, currency }: TWithdrawalSideNoteProps) = }; const Withdrawal = observer(({ setSideNotes }: TWithdrawalProps) => { - const { - client, - modules: { - cashier: { iframe, general_store, transaction_history, withdraw }, - }, - } = useStore(); - + const { client } = useStore(); const { balance, currency, @@ -63,7 +58,7 @@ const Withdrawal = observer(({ setSideNotes }: TWithdrawalProps) => { is_virtual, verification_code: { payment_withdraw: verification_code }, } = client; - + const { iframe, general_store, transaction_history, withdraw } = useCashierStore(); const { is_cashier_locked, is_crypto, @@ -71,15 +66,12 @@ const Withdrawal = observer(({ setSideNotes }: TWithdrawalProps) => { setActiveTab, cashier_route_tab_index: tab_index, } = general_store; - const { iframe_url } = iframe; - const { crypto_transactions, is_crypto_transactions_visible, onMount: recentTransactionOnMount, } = transaction_history; - const { check10kLimit, container, diff --git a/packages/cashier/src/stores/useCashierStores.tsx b/packages/cashier/src/stores/useCashierStores.tsx new file mode 100644 index 000000000000..230a893fac6a --- /dev/null +++ b/packages/cashier/src/stores/useCashierStores.tsx @@ -0,0 +1,29 @@ +import React, { createContext, PropsWithChildren, useContext } from 'react'; +import { useStore } from '@deriv/stores'; +import CashierStore from './cashier-store'; + +const CashierStoreContext = createContext(null); + +export const CashierStoreProvider = ({ children }: PropsWithChildren) => { + const { modules } = useStore(); + // const memoizedValue = useMemo(() => new CashierStore(), []); + + return ( + + {children} + + ); +}; + +export const useCashierStore = () => { + const store = useContext(CashierStoreContext); + + if (!store) { + throw new Error('useCashierStore must be used within CashierStoreContext'); + } + + return store; +}; diff --git a/packages/cashier/src/types/stores/index.ts b/packages/cashier/src/types/stores/index.ts index bc3d9cb7c316..770bfe5d8e5d 100644 --- a/packages/cashier/src/types/stores/index.ts +++ b/packages/cashier/src/types/stores/index.ts @@ -1,3 +1,8 @@ -import { useStore } from '@deriv/stores'; +import type { TStores } from '@deriv/stores'; +import type CashierStore from '../../stores/cashier-store'; -export type TRootStore = ReturnType; +export type TRootStore = TStores & { + modules: { + cashier: CashierStore; + }; +}; diff --git a/packages/cashier/tsconfig.json b/packages/cashier/tsconfig.json index 4ef66721411e..c50a410b87f2 100644 --- a/packages/cashier/tsconfig.json +++ b/packages/cashier/tsconfig.json @@ -15,5 +15,5 @@ "outDir": "./dist", "baseUrl": "./" }, - "include": ["src", "@deriv-stores.d.ts", "../../utils.d.ts"] + "include": ["src", "../../utils.d.ts"] } From c4aa8f710a7e3f53ad581b208167603806afeabd Mon Sep 17 00:00:00 2001 From: kate-deriv <121025168+kate-deriv@users.noreply.github.com> Date: Tue, 31 Jan 2023 05:51:40 +0300 Subject: [PATCH 81/84] fix: change text in frame for creation a new MF account (#7234) --- .../components/add-options-account/add-options-account.tsx | 4 ++-- packages/components/src/components/label/label.tsx | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/appstore/src/components/add-options-account/add-options-account.tsx b/packages/appstore/src/components/add-options-account/add-options-account.tsx index b56847b5827e..bb60f69f9963 100644 --- a/packages/appstore/src/components/add-options-account/add-options-account.tsx +++ b/packages/appstore/src/components/add-options-account/add-options-account.tsx @@ -11,8 +11,8 @@ const AddOptions = ({ ui }: Pick) => { const { client } = useStores(); const { is_eu } = client; const is_eu_country_text = is_eu - ? 'You need to create a Multipliers account to create a CFD account.' - : 'You need to create an Options and Multipliers account to add a CFD account.'; + ? 'You need to create a Multipliers account before you can add a CFD account.' + : 'You need to create an Options and Multipliers account to create a CFD account.'; const is_eu_country_btn = is_eu ? localize('Get a Multipliers account') diff --git a/packages/components/src/components/label/label.tsx b/packages/components/src/components/label/label.tsx index cbd4f7bf6a8d..8bb0c5f953f8 100644 --- a/packages/components/src/components/label/label.tsx +++ b/packages/components/src/components/label/label.tsx @@ -17,8 +17,8 @@ const available_modes = [ const available_sizes = ['regular', 'large'] as const; type TLabel = { - mode: (typeof available_modes)[number]; - size: (typeof available_sizes)[number]; + mode: typeof available_modes[number]; + size: typeof available_sizes[number]; className?: string; }; From 4540ad27ba5d166b9332cd9c8ca0476812555b1a Mon Sep 17 00:00:00 2001 From: kate-deriv <121025168+kate-deriv@users.noreply.github.com> Date: Tue, 31 Jan 2023 05:52:19 +0300 Subject: [PATCH 82/84] fix: delete defaultchecked property in order to make component controlled (#7428) --- packages/components/src/components/checkbox/checkbox.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/components/src/components/checkbox/checkbox.tsx b/packages/components/src/components/checkbox/checkbox.tsx index 7e1400c895fb..70951e0747ac 100644 --- a/packages/components/src/components/checkbox/checkbox.tsx +++ b/packages/components/src/components/checkbox/checkbox.tsx @@ -67,8 +67,7 @@ const Checkbox = React.forwardRef( ref={ref} disabled={disabled} onChange={onInputChange} - defaultChecked={checked} - checked={value} + checked={checked} {...otherProps} /> Date: Tue, 31 Jan 2023 05:53:24 +0300 Subject: [PATCH 83/84] Kate/86838/ add one more available proptype for component DigitDisplay (#7430) * fix: add one more available proptypes for component LastDiggitPrediction * chore: trigger codecov --- .../Contract/Components/LastDigitPrediction/digit-display.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/trader/src/Modules/Contract/Components/LastDigitPrediction/digit-display.jsx b/packages/trader/src/Modules/Contract/Components/LastDigitPrediction/digit-display.jsx index ae8122e8f94e..6fba7ca7bdfd 100644 --- a/packages/trader/src/Modules/Contract/Components/LastDigitPrediction/digit-display.jsx +++ b/packages/trader/src/Modules/Contract/Components/LastDigitPrediction/digit-display.jsx @@ -92,7 +92,7 @@ DigitDisplay.propTypes = { latest_digit: PropTypes.object, onLastDigitSpot: PropTypes.func, onSelect: PropTypes.func, - selected_digit: PropTypes.number, + selected_digit: PropTypes.oneOfType([PropTypes.number, PropTypes.bool]), stats: PropTypes.number, status: PropTypes.string, value: PropTypes.number, From acc3d690ce137d28831b4755b93497f0cf82358c Mon Sep 17 00:00:00 2001 From: aizad-deriv Date: Wed, 1 Feb 2023 14:26:00 +0800 Subject: [PATCH 84/84] fix: replace any with TRootStore --- packages/reports/src/Containers/progress-slider-stream.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/reports/src/Containers/progress-slider-stream.tsx b/packages/reports/src/Containers/progress-slider-stream.tsx index 8088d53c4dd1..ddddd9597c2a 100644 --- a/packages/reports/src/Containers/progress-slider-stream.tsx +++ b/packages/reports/src/Containers/progress-slider-stream.tsx @@ -5,6 +5,7 @@ import { connect } from 'Stores/connect'; import { getCardLabels } from '_common/contract'; import moment from 'moment'; import { TContractInfo } from '@deriv/shared/src/utils/contract/contract-types'; +import { TRootStore } from 'Stores/index'; type TProgressSliderStream = { contract_info: Required; @@ -31,8 +32,7 @@ const ProgressSliderStream = ({ contract_info, is_loading, server_time }: TProgr ); }; -// TODO: implement reports store TRootStore in types.ts -export default connect(({ common, portfolio }: any) => ({ +export default connect(({ common, portfolio }: TRootStore) => ({ is_loading: portfolio.is_loading, server_time: common.server_time, }))(ProgressSliderStream);