diff --git a/package.json b/package.json index e3db0fb8..b42bd8a4 100644 --- a/package.json +++ b/package.json @@ -4,40 +4,39 @@ "homepage": "", "private": true, "dependencies": { - "@tanstack/react-query": "^4.1.3", - "@tanstack/react-query-devtools": "^4.0.10", - "@testing-library/jest-dom": "^5.11.9", - "@testing-library/react": "^11.2.5", - "@testing-library/user-event": "^12.7.4", + "@tanstack/react-query": "^4.29.5", + "@tanstack/react-query-devtools": "^4.29.6", + "@testing-library/jest-dom": "^5.16.5", + "@testing-library/react": "^14.0.0", + "@testing-library/user-event": "^14.4.3", "axios": "^0.27.2", "bignumber.js": "^9.1.1", - "faker": "^5.4.0", - "i18next": "^21.8.0", - "i18next-browser-languagedetector": "^6.1.4", - "i18next-http-backend": "^1.4.0", + "i18next": "^22.4.15", + "i18next-browser-languagedetector": "^7.0.1", + "i18next-http-backend": "^2.2.0", "js-api-client": "https://github.com/opexdev/js-api-client.git#develop", "jwt-decode": "^3.1.2", - "lightweight-charts": "^3.8.0", - "moment-jalaali": "^0.9.2", + "lightweight-charts": "^4.0.1", + "moment-jalaali": "^0.10.0", "normalize.css": "^8.0.1", "radium": "^0.26.2", - "rc-scrollbars": "^1.1.3", - "react": "^17.0.1", - "react-countdown": "^2.3.2", - "react-device-detect": "^2.2.2", - "react-dom": "^17.0.1", + "rc-scrollbars": "^1.1.5", + "react": "^18.2.0", + "react-countdown": "^2.3.5", + "react-device-detect": "^2.2.3", + "react-dom": "^18.2.0", "react-dropzone": "^11.3.1", "react-hot-toast": "^2.4.1", - "react-i18next": "^11.16.9", + "react-i18next": "^12.2.2", "react-number-format": "^4.9.3", - "react-qr-code": "^2.0.7", - "react-redux": "^7.2.2", - "react-router-dom": "^6.3.0", + "react-qr-code": "^2.0.11", + "react-redux": "^8.0.5", + "react-router-dom": "^6.11.1", "react-scripts": "^5.0.1", - "react-select": "^5.3.2", + "react-select": "^5.7.3", "react-tooltip": "^5.11.2", - "redux": "^4.2.0", - "redux-saga": "^1.1.3", + "redux": "^4.2.1", + "redux-saga": "^1.2.3", "web-vitals": "^0.2.4" }, "scripts": { diff --git a/src/FakeData/FakeData.js b/src/FakeData/FakeData.js deleted file mode 100644 index 1b05a014..00000000 --- a/src/FakeData/FakeData.js +++ /dev/null @@ -1,537 +0,0 @@ -import Faker from "faker"; - -export const OverViewData = { - lastDay: { - change: Faker.datatype.number({min: 0, max: 10}), - min: Faker.datatype.number({min: 413990000, max: 513990000}), - max: Faker.datatype.number({min: 513990000, max: 613990000}), - volume: Faker.datatype.number({min: 513990000, max: 613990000}), - type: Faker.datatype.boolean(), - }, - lastWeek: { - change: Faker.datatype.number({min: 0, max: 10}), - min: Faker.datatype.number({min: 413990000, max: 513990000}), - max: Faker.datatype.number({min: 513990000, max: 613990000}), - volume: Faker.datatype.number({min: 513990000, max: 613990000}), - type: Faker.datatype.boolean(), - }, - lastMonth: { - change: Faker.datatype.number({min: 0, max: 10}), - min: Faker.datatype.number({min: 413990000, max: 513990000}), - max: Faker.datatype.number({min: 513990000, max: 613990000}), - volume: Faker.datatype.number({min: 513990000, max: 613990000}), - type: Faker.datatype.boolean(), - }, -}; - -export const OrderData = { - Buy: { - CurrencyBalance: "12،350،000 تومان", - BestOffer: "450،000،000 ", - type: true, - }, - sale: {CurrencyBalance: "0.3 بیتکوین", BestOffer: "450،000،000 ", type: true}, -}; - -export const OrderBookBuyData = () => { - const data = []; - for (let i = 0; i < 100; i++) { - data.push({ - id: Faker.datatype.number, - amount: Faker.datatype.number({min: 0, max: 1.5, precision: 0.0001}), - pricePerUnit: Faker.datatype.number({min: 4990000, max: 3990000}), - totalPrice: Faker.datatype.number({min: 139900000, max: 4139900000}), - percent: Faker.datatype.number({min: 1, max: 70}), - }); - } - return data; -}; -export const OrderBookData = () => { - const data = { - lastUpdateId: null, - bids: [], - asks: [], - }; - for (let i = 0; i < 100; i++) { - data.bids.push([ - Faker.datatype.number({min: 4990000, max: 3990000}), - Faker.datatype.number({min: 0, max: 1.5, precision: 0.0001}), - ]); - } - for (let i = 0; i < 100; i++) { - data.asks.push([ - Faker.datatype.number({min: 4990000, max: 3990000}), - Faker.datatype.number({min: 0, max: 1.5, precision: 0.0001}), - ]); - } - return data; -}; - -export const lastTradesData = () => { - const data = []; - for (let i = 0; i < 100; i++) { - data.push({ - id: Faker.datatype.number, - timestamp: Faker.date.between("2020-01-01", "2021-02-05"), - amount: Faker.datatype.number({min: 0, max: 1, precision: 0.0001}), - price: Faker.datatype.number({min: 413990000, max: 613990000}), - totalPrice: Faker.datatype.number({min: 13990000, max: 413990000}), - Type: Faker.random.arrayElement(["buy", "sell"]), - }); - } - - return data; -}; - -export const MyOrderCurrentData = () => { - const data = []; - const count = Faker.datatype.number({min: 2, max: 15}); - for (let i = 0; i < count; i++) { - data.push({ - orderId: Faker.datatype.number({min: 11000, max: 1000000}), - timestamp: Faker.date.between("2020-01-01", "2021-02-05"), - volume: Faker.datatype.number({min: 0, max: 1, precision: 0.0001}), - price: Faker.datatype.number({min: 413990000, max: 613990000}), - totalPrice: Faker.datatype.number({min: 13990000, max: 413990000}), - tradedAmount: Faker.datatype.number({min: 0, max: 1, precision: 0.0001}), - avgTradedAmount: Faker.datatype.number({ - min: 0, - max: 1, - precision: 0.0001, - }), - tradedPrice: Faker.datatype.number({min: 0, max: 1, precision: 0.0001}), - type: Faker.random.arrayElement(["buy", "sell"]), - progress: Faker.datatype.number({min: 0, max: 100, precision: 0.5}), - }); - } - return data; -}; - -export const MyOrderHistoryData = () => { - const data = []; - const count = Faker.datatype.number({min: 2, max: 15}); - for (let i = 0; i < count; i++) { - data.push({ - orderId: Faker.datatype.number({min: 11000, max: 1000000}), - orderType: Faker.random.arrayElement(["stopLimit", "stopMarket"]), - timestamp: Faker.date.between("2020-01-01", "2021-02-05"), - stopOrderTime: Faker.date.between("2020-01-01", "2021-02-05"), - startOrderTime: Faker.date.between("2020-01-01", "2021-02-05"), - volume: Faker.datatype.number({min: 0, max: 1, precision: 0.0001}), - price: Faker.datatype.number({min: 413990000, max: 613990000}), - stoppedPrice: Faker.datatype.number({min: 413990000, max: 613990000}), - totalPrice: Faker.datatype.number({min: 13990000, max: 413990000}), - type: Faker.random.arrayElement(["buy", "sell"]), - status: Faker.random.arrayElement(["NEW", "FILLED", "CANCELED","PARTIALLY_FILLED", "REJECTED"]), - }); - } - return data; -}; -export const MyOrderStopData = () => { - const data = []; - const count = Faker.datatype.number({min: 2, max: 15}); - for (let i = 0; i < count; i++) { - data.push({ - orderId: Faker.datatype.number({min: 11000, max: 1000000}), - timestamp: Faker.date.between("2020-01-01", "2021-02-05"), - volume: Faker.datatype.number({min: 0, max: 1, precision: 0.0001}), - price: Faker.datatype.number({min: 413990000, max: 613990000}), - totalPrice: Faker.datatype.number({min: 13990000, max: 413990000}), - stopPrice: Faker.datatype.number({min: 13990000, max: 413990000}), - type: Faker.random.arrayElement(["buy", "sell"]), - }); - } - return data; -}; -export const MyOrderTradeData = () => { - const data = []; - const count = Faker.datatype.number({min: 2, max: 15}); - for (let i = 0; i < count; i++) { - data.push({ - orderId: Faker.datatype.number({min: 11000, max: 1000000}), - tradeId: Faker.datatype.number({min: 11000, max: 1000000}), - timestamp: Faker.date.between("2020-01-01", "2021-02-05"), - volume: Faker.datatype.number({min: 0, max: 1, precision: 0.0001}), - price: Faker.datatype.number({min: 413990000, max: 613990000}), - totalPrice: Faker.datatype.number({min: 13990000, max: 413990000}), - type: Faker.random.arrayElement(["buy", "sell"]), - }); - } - return data; -}; - -export const DTAllTransactionsData = () => { - const data = []; - const count = Faker.datatype.number({min: 2, max: 15}); - for (let i = 0; i < count; i++) { - data.push({ - orderId: Faker.datatype.number({min: 11000, max: 1000000}), - timestamp: Faker.date.between("2020-01-01", "2021-02-05"), - transactionType: Faker.random.arrayElement([ - "deposit", - "withdrawal", - "Received", - "send", - ]), - volume: Faker.datatype.number({min: 0, max: 1, precision: 0.0001}), - inventory: Faker.datatype.number({min: 0, max: 2, precision: 0.0001}), - destination: "009891****" + Faker.datatype.number({min: 1000, max: 9999}), - transactionId: Faker.datatype.number({ - min: 8439201925530, - max: 8539201925530, - }), - blockchainTransactionId: - "befe" + - Faker.datatype.number({min: 8439201925530, max: 8539201925530}), - status: Faker.random.arrayElement(["NEW", "FILLED", "CANCELED","PARTIALLY_FILLED", "REJECTED"]), - progress: Faker.datatype.number({min: 0, max: 100, precision: 0.5}), - }); - } - return data; -}; - -export const OrdersTradesAliveOrderData = () => { - const data = []; - const count = Faker.datatype.number({min: 2, max: 15}); - for (let i = 0; i < count; i++) { - data.push({ - orderId: Faker.datatype.number({min: 11000, max: 1000000}), - timestamp: Faker.date.between("2020-01-01", "2021-02-05"), - market: Faker.random.arrayElement(["BTC/IRT", "ETH/BTC", "BTC/USDT"]), - side: Faker.random.arrayElement(["buy", "sell"]), - order: Faker.datatype.number({min: 0, max: 10, precision: 0.0001}), - done: Faker.datatype.number({min: 0, max: 0.5, precision: 0.0001}), - pricePerUnit: Faker.datatype.number({min: 0, max: 2, precision: 0.0001}), - totalPrice: Faker.datatype.number({min: 0, max: 5, precision: 0.0001}), - donePercentage: Faker.datatype.number({min: 0, max: 100, precision: 0.5}), - }); - } - return data; -}; - -export const OrdersTradesStopData = () => { - const data = []; - const count = Faker.datatype.number({min: 2, max: 15}); - for (let i = 0; i < count; i++) { - data.push({ - orderId: Faker.datatype.number({min: 11000, max: 1000000}), - timestamp: Faker.date.between("2020-01-01", "2021-02-05"), - market: Faker.random.arrayElement(["BTC/IRT", "ETH/BTC", "BTC/USDT"]), - side: Faker.random.arrayElement(["buy", "sell"]), - order: Faker.datatype.number({min: 0, max: 10, precision: 0.0001}), - stoppedPrice: Faker.datatype.number({min: 0, max: 450000540}), - pricePerUnit: Faker.datatype.number({min: 0, max: 450000540}), - totalPrice: Faker.datatype.number({min: 0, max: 450000540}), - donePercentage: Faker.datatype.number({min: 0, max: 100, precision: 0.5}), - }); - } - return data; -}; - -export const OrdersTradesOrdersHistoryData = () => { - const data = []; - const count = Faker.datatype.number({min: 2, max: 15}); - for (let i = 0; i < count; i++) { - data.push({ - orderId: Faker.datatype.number({min: 11000, max: 1000000}), - timestamp: Faker.date.between("2020-01-01", "2021-02-05"), - market: Faker.random.arrayElement(["BTC/IRT", "ETH/BTC", "BTC/USDT"]), - side: Faker.random.arrayElement(["buy", "sell"]), - type: Faker.random.arrayElement(["market", "limit"]), - order: Faker.datatype.number({min: 0, max: 1, precision: 0.0001}), - done: Faker.datatype.number({min: 0, max: 1, precision: 0.0001}), - pricePerUnit: Faker.datatype.number({min: 0, max: 450000540}), - paid: Faker.datatype.number({min: 0, max: 450000540}), - status: Faker.random.arrayElement(["NEW", "FILLED", "CANCELED","PARTIALLY_FILLED", "REJECTED"]), - }); - } - return data; -}; - -export const OrdersTradesTradesData = () => { - const data = []; - const count = Faker.datatype.number({min: 2, max: 15}); - for (let i = 0; i < count; i++) { - data.push({ - orderId: Faker.datatype.number({min: 11000, max: 1000000}), - timestamp: Faker.date.between("2020-01-01", "2021-02-05"), - market: Faker.random.arrayElement(["BTC/IRT", "ETH/BTC", "BTC/USDT"]), - side: Faker.random.arrayElement(["buy", "sell"]), - type: Faker.random.arrayElement(["market", "limit"]), - order: Faker.datatype.number({min: 0, max: 1, precision: 0.0001}), - stoppedPrice: Faker.datatype.number({min: 0, max: 450000540}), - pricePerUnit: Faker.datatype.number({min: 0, max: 450000540}), - totalPrice: Faker.datatype.number({min: 0, max: 450000540}), - }); - } - return data; -}; - -export const MarketPair = [ - { - name: "BTC/IRT", - Change: Faker.datatype.number({min: 0, max: 20, precision: 0.01}), - Price: Faker.datatype.number({min: 0, max: 450000540}), - Vol: Faker.datatype.number({min: 200, max: 3000}), - Type: Faker.random.arrayElement(["increase", "decrease"]), - price7d: [ - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - ], - }, - { - name: "BTC/USDT", - Change: Faker.datatype.number({min: 0, max: 20, precision: 0.01}), - Price: Faker.datatype.number({min: 0, max: 450000540}), - Vol: Faker.datatype.number({min: 200, max: 3000}), - Type: Faker.random.arrayElement(["increase", "decrease"]), - price7d: [ - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - ], - }, - { - name: "ETH/BTC", - Change: Faker.datatype.number({min: 0, max: 20, precision: 0.01}), - Price: Faker.datatype.number({min: 0, max: 450000540}), - Vol: Faker.datatype.number({min: 200, max: 3000}), - Type: Faker.random.arrayElement(["increase", "decrease"]), - price7d: [ - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - ], - }, - { - name: "LTC/BTC", - Change: Faker.datatype.number({min: 0, max: 20, precision: 0.01}), - Price: Faker.datatype.number({min: 0, max: 450000540}), - Vol: Faker.datatype.number({min: 200, max: 3000}), - Type: Faker.random.arrayElement(["increase", "decrease"]), - price7d: [ - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - ], - }, - { - name: "DOGE/BTC", - Change: Faker.datatype.number({min: 0, max: 20, precision: 0.01}), - Price: Faker.datatype.number({min: 0, max: 450000540}), - Vol: Faker.datatype.number({min: 200, max: 3000}), - Type: Faker.random.arrayElement(["increase", "decrease"]), - price7d: [ - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - ], - }, - { - name: "BCH/BTC", - Change: Faker.datatype.number({min: 0, max: 20, precision: 0.01}), - Price: Faker.datatype.number({min: 0, max: 450000540}), - Vol: Faker.datatype.number({min: 200, max: 3000}), - Type: Faker.random.arrayElement(["increase", "decrease"]), - price7d: [ - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - ], - }, - - { - name: "ETH/IRT", - Change: Faker.datatype.number({min: 0, max: 20, precision: 0.01}), - Price: Faker.datatype.number({min: 0, max: 450000540}), - Vol: Faker.datatype.number({min: 200, max: 3000}), - Type: Faker.random.arrayElement(["increase", "decrease"]), - price7d: [ - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - ], - }, - { - name: "LTC/IRT", - Change: Faker.datatype.number({min: 0, max: 20, precision: 0.01}), - Price: Faker.datatype.number({min: 0, max: 450000540}), - Vol: Faker.datatype.number({min: 200, max: 3000}), - Type: Faker.random.arrayElement(["increase", "decrease"]), - price7d: [ - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - ], - }, - { - name: "DOGE/IRT", - Change: Faker.datatype.number({min: 0, max: 20, precision: 0.01}), - Price: Faker.datatype.number({min: 0, max: 450000540}), - Vol: Faker.datatype.number({min: 200, max: 3000}), - Type: Faker.random.arrayElement(["increase", "decrease"]), - price7d: [ - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - ], - }, - { - name: "BCH/IRT", - Change: Faker.datatype.number({min: 0, max: 20, precision: 0.01}), - Price: Faker.datatype.number({min: 0, max: 450000540}), - Vol: Faker.datatype.number({min: 200, max: 3000}), - Type: Faker.random.arrayElement(["increase", "decrease"]), - price7d: [ - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - ], - }, - - { - name: "ETH/USDT", - Change: Faker.datatype.number({min: 0, max: 20, precision: 0.01}), - Price: Faker.datatype.number({min: 0, max: 450000540}), - Vol: Faker.datatype.number({min: 200, max: 3000}), - Type: Faker.random.arrayElement(["increase", "decrease"]), - price7d: [ - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - ], - }, - { - name: "LTC/USDT", - Change: Faker.datatype.number({min: 0, max: 20, precision: 0.01}), - Price: Faker.datatype.number({min: 0, max: 450000540}), - Vol: Faker.datatype.number({min: 200, max: 3000}), - Type: Faker.random.arrayElement(["increase", "decrease"]), - price7d: [ - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - ], - }, - { - name: "DOGE/USDT", - Change: Faker.datatype.number({min: 0, max: 20, precision: 0.01}), - Price: Faker.datatype.number({min: 0, max: 450000540}), - Vol: Faker.datatype.number({min: 200, max: 3000}), - Type: Faker.random.arrayElement(["increase", "decrease"]), - price7d: [ - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - ], - }, - { - name: "BCH/USDT", - Change: Faker.datatype.number({min: 0, max: 20, precision: 0.01}), - Price: Faker.datatype.number({min: 0, max: 450000540}), - Vol: Faker.datatype.number({min: 200, max: 3000}), - Type: Faker.random.arrayElement(["increase", "decrease"]), - price7d: [ - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - Faker.datatype.number({min: 0, max: 20}), - ], - }, -]; - -export const MyMessagesData = () => { - const data = []; - const count = Faker.datatype.number({min: 28, max: 38}); - for (let i = 0; i < count; i++) { - data.push({ - orderId: Faker.datatype.number({min: 11000, max: 1000000}), - timestamp: Faker.date.between("2020-01-01", "2021-02-05"), - title: Faker.random.arrayElement(["NEW", "FILLED", "CANCELED","PARTIALLY_FILLED", "REJECTED"]), - }); - } - return data; -}; - -export const newsData = () => { - const data = []; - const count = Faker.datatype.number({min: 1, max: 1}); - for (let i = 0; i < count; i++) { - data.push({ - orderId: Faker.datatype.number({min: 11000, max: 1000000}), - timestamp: Faker.date.between("2020-01-01", "2021-02-05"), - title: Faker.random.arrayElement(["NEW", "FILLED", "CANCELED","PARTIALLY_FILLED", "REJECTED"]), - }); - } - return data; -}; - -export const AccountStatusData = () => { - const data = []; - const count = Faker.datatype.number({min: 1, max: 1}); - for (let i = 0; i < count; i++) { - data.push({ - dailyWithdrawal: Faker.datatype.number({min: 11000, max: 1000000}), - dailyDeposit: Faker.datatype.number({min: 0, max: 0}), - monthlyWithdrawal: Faker.datatype.number({min: 11000, max: 1000000}), - monthlyDeposit: Faker.datatype.number({min: 11000, max: 1000000}), - }); - } - return data; -}; diff --git a/src/constants/chart.js b/src/constants/chart.js index ac88935b..e7aa2482 100644 --- a/src/constants/chart.js +++ b/src/constants/chart.js @@ -1,3 +1,5 @@ +import {ColorType} from "lightweight-charts"; + export const candleColors = { upColor: "#18a979", downColor: "#d73e36", @@ -12,6 +14,7 @@ export const histogramColors = { priceFormat: { type: "volume", }, + priceScaleId: '', overlay: true, scaleMargins: { top: 0.8, @@ -20,7 +23,7 @@ export const histogramColors = { }; export const darkTheme = { layout: { - backgroundColor: "#282a36", + background: { type: ColorType.Solid, color: '#282a36' }, textColor: "rgba(255, 255, 255, 0.9)", }, grid: { @@ -40,7 +43,7 @@ export const darkTheme = { }; export const lightTheme = { layout: { - backgroundColor: "#ffffff", + background: { type: ColorType.Solid, color: '#ffffff' }, textColor: "#191919", }, grid: { diff --git a/src/index.js b/src/index.js index 07b105a1..a80c0f71 100644 --- a/src/index.js +++ b/src/index.js @@ -1,5 +1,5 @@ -import React, {Suspense} from "react"; -import ReactDOM from "react-dom"; +import React from "react"; +import {createRoot} from 'react-dom/client'; import "./i18n/i18n"; import {Provider} from "react-redux"; import {createStore, applyMiddleware, combineReducers, compose} from "redux"; @@ -16,7 +16,7 @@ import axios from "axios"; import exchangeReducer from "./store/reducers/exchangeReducer"; import {StyleRoot} from "radium"; import {QueryClient, QueryClientProvider} from '@tanstack/react-query'; -import { ReactQueryDevtools } from '@tanstack/react-query-devtools' +import {ReactQueryDevtools} from '@tanstack/react-query-devtools' import 'react-tooltip/dist/react-tooltip.css'; const sagaMiddleware = createSagaMiddleware(); @@ -54,18 +54,16 @@ setupAxios(axios, store); //React query client const queryClient = new QueryClient() -ReactDOM.render( - - - - - -
- - - - - - , - document.getElementById("root"), +const container = document.getElementById('root'); +const root = createRoot(container); + +root.render( + + + +
+ + + + ); diff --git a/src/main/Browser/Pages/AllMarket/Sections/AllMarketContent/components/PriceInfo/PriceInfo.js b/src/main/Browser/Pages/AllMarket/Sections/AllMarketContent/components/PriceInfo/PriceInfo.js index 74c886ef..53607ee1 100644 --- a/src/main/Browser/Pages/AllMarket/Sections/AllMarketContent/components/PriceInfo/PriceInfo.js +++ b/src/main/Browser/Pages/AllMarket/Sections/AllMarketContent/components/PriceInfo/PriceInfo.js @@ -7,7 +7,6 @@ import Loading from "../../../../../../../../components/Loading/Loading"; import Error from "../../../../../../../../components/Error/Error"; import MostIncreasedPrice from "./components/MostIncreasedPrice/MostIncreasedPrice"; import MostDecreasedPrice from "./components/MostDecreasedPrice/MostDecreasedPrice"; -import NullMarketStats from "../../../../../../../../components/NullMarketStats/NullMarketStats"; const PriceInfo = () => { @@ -27,14 +26,12 @@ const PriceInfo = () => { const mostIncreasedPriceContent = () => { if (isLoading) return if (error) return - // if (mostIncreasedPrice?.lastPrice === 0) return else return } const mostDecreasedPriceContent = () => { if (isLoading) return if (error) return - // if (mostDecreasedPrice?.lastPrice === 0) return else return } diff --git a/src/main/Browser/Pages/Landing/Sections/LandingContent/LandingContent.js b/src/main/Browser/Pages/Landing/Sections/LandingContent/LandingContent.js index b3eb71d4..f33e82e6 100644 --- a/src/main/Browser/Pages/Landing/Sections/LandingContent/LandingContent.js +++ b/src/main/Browser/Pages/Landing/Sections/LandingContent/LandingContent.js @@ -6,19 +6,14 @@ import Spinner from "./components/Spinner/Spinner"; import MarketView from "./components/MarketView/MarketView"; import MarketTitle from "./components/MarketTitle/MarketTitle"; import GeneralInfo from "./components/GeneralInfo/GeneralInfo"; -import {images} from "../../../../../../assets/images"; -import {useSelector} from "react-redux"; import MarketInfo from "./components/MarketInfo/MarketInfo"; const LandingContent = () => { - - const isDark = useSelector((state) => state.global.isDark) - return (
-
-
+
+
@@ -29,12 +24,9 @@ const LandingContent = () => {
-
+
- {/*
- OpexMockup -
*/}
diff --git a/src/main/Browser/Pages/Login/components/EmailVerification/EmailVerification.js b/src/main/Browser/Pages/Login/components/EmailVerification/EmailVerification.js index 55a43c8d..2b5e1a4e 100644 --- a/src/main/Browser/Pages/Login/components/EmailVerification/EmailVerification.js +++ b/src/main/Browser/Pages/Login/components/EmailVerification/EmailVerification.js @@ -2,7 +2,7 @@ import React, {useEffect, useState} from 'react'; import classes from "../../Login.module.css"; import Button from "../../../../../../components/Button/Button"; import {useTranslation} from "react-i18next"; -import {getCaptchaImage, getPanelToken, requestForVerifyEmail} from "js-api-client"; +import {getCaptchaImage, requestForVerifyEmail} from "js-api-client"; import LoginFormLoading from "../LoginLoading/LoginFormLoading"; import {validateEmail} from "../../../../../../utils/utils"; import {images} from "../../../../../../assets/images"; @@ -14,9 +14,6 @@ import {setVerifyEmailLockInitiate} from "../../../../../../store/actions"; const EmailVerification = ({returnFunc, email, disable, returnFuncDisableFalse, returnFuncDisableTrue}) => { - const clientSecret = window.env.REACT_APP_CLIENT_SECRET - const clientId = window.env.REACT_APP_CLIENT_ID - const {t} = useTranslation(); const dispatch = useDispatch(); @@ -86,7 +83,6 @@ const EmailVerification = ({returnFunc, email, disable, returnFuncDisableFalse, } setLoading(true); - //const {data: {access_token: panelToken}} = await getPanelToken(clientId, clientSecret); const captchaValue = `${captcha.SessionKey.value}-${activeEmail.captchaAnswer.value}` requestForVerifyEmail(activeEmail.email.value, captchaValue) .then(() => { diff --git a/src/main/Browser/Pages/Login/components/ForgetPassword/ForgetPassword.js b/src/main/Browser/Pages/Login/components/ForgetPassword/ForgetPassword.js index 7702669b..c763a76c 100644 --- a/src/main/Browser/Pages/Login/components/ForgetPassword/ForgetPassword.js +++ b/src/main/Browser/Pages/Login/components/ForgetPassword/ForgetPassword.js @@ -7,13 +7,10 @@ import Button from "../../../../../../components/Button/Button"; import Icon from "../../../../../../components/Icon/Icon"; import {images} from "../../../../../../assets/images"; import {validateEmail} from "../../../../../../utils/utils"; -import {getCaptchaImage, getPanelToken, requestForForgetPassword} from "js-api-client"; +import {getCaptchaImage, requestForForgetPassword} from "js-api-client"; const ForgetPassword = ({returnFunc}) => { - const clientSecret = window.env.REACT_APP_CLIENT_SECRET - const clientId = window.env.REACT_APP_CLIENT_ID - const {t} = useTranslation(); const [loading, setLoading] = useState(false); const [isLoading, setIsLoading] = useState(true); @@ -76,7 +73,6 @@ const ForgetPassword = ({returnFunc}) => { } setLoading(true); - //const {data: {access_token: panelToken}} = await getPanelToken(clientId, clientSecret); const captchaValue = `${captcha.SessionKey.value}-${forgetPass.captchaAnswer.value}` requestForForgetPassword(forgetPass.email.value, captchaValue) .then(() => { diff --git a/src/main/Browser/Pages/UserPanel/Sections/Content/components/Market/components/TradingView/components/MarketChart/MarketChart.js b/src/main/Browser/Pages/UserPanel/Sections/Content/components/Market/components/TradingView/components/MarketChart/MarketChart.js index cbb32782..3390c1f9 100644 --- a/src/main/Browser/Pages/UserPanel/Sections/Content/components/Market/components/TradingView/components/MarketChart/MarketChart.js +++ b/src/main/Browser/Pages/UserPanel/Sections/Content/components/Market/components/TradingView/components/MarketChart/MarketChart.js @@ -1,12 +1,11 @@ import React, {useEffect, useRef} from "react"; import classes from "../../TradingView.module.css"; -import * as LightweightCharts from "lightweight-charts"; +import { createChart } from 'lightweight-charts'; import {useSelector} from "react-redux"; import moment from "moment-jalaali"; import { candleColors, darkTheme, - histogramColors, lightTheme } from "../../../../../../../../../../../../constants/chart"; import i18n from "i18next"; @@ -26,6 +25,7 @@ const MarketChart = ({type}) => { const chartContainerRef = useRef(); const resizeObserver = useRef(); + console.log(data) const timeScale = { tickMarkFormatter: (time) => { if (i18n.language === undefined || i18n.language === "fa") return moment(time * 1000).format("jYYYY/jM/jD") @@ -74,16 +74,28 @@ const MarketChart = ({type}) => { if (chart.current !== null) { chart.current = null; } - chart.current = LightweightCharts.createChart( + chart.current = createChart( chartContainerRef.current, chartProperties, ); candleSeries = chart.current.addCandlestickSeries(isDark ? darkTheme : candleColors); - volumeSeries = chart.current.addHistogramSeries(histogramColors); + volumeSeries = chart.current.addHistogramSeries({ + priceFormat: { + type: 'volume', + }, + priceScaleId: '', + }); + volumeSeries.priceScale().applyOptions({ + scaleMargins: { + top: 0.8, + bottom: 0, + }, + }); candleSeries.setData(data); volumeSeries.setData(data); + chart.current .timeScale().fitContent(); return () => { if (chart.current !== null) { chart.current.remove(); diff --git a/src/main/Browser/Pages/UserPanel/Sections/Content/components/Settings/components/APIKey/APIKey.js b/src/main/Browser/Pages/UserPanel/Sections/Content/components/Settings/components/APIKey/APIKey.js index de03ec31..2db9beb8 100644 --- a/src/main/Browser/Pages/UserPanel/Sections/Content/components/Settings/components/APIKey/APIKey.js +++ b/src/main/Browser/Pages/UserPanel/Sections/Content/components/Settings/components/APIKey/APIKey.js @@ -1,20 +1,14 @@ - import React from 'react'; - import classes from './APIKey.module.css' - import {useTranslation} from "react-i18next"; - import CreateAPIKey from "./components/CreateAPIKey/CreateAPIKey"; - import APIKeyList from "./components/APIKeyList/APIKeyList"; - - const APIKey = () => { - - const {t} = useTranslation(); - - - return (<> - - - - - ); - }; - - export default APIKey; +import React from 'react'; +import CreateAPIKey from "./components/CreateAPIKey/CreateAPIKey"; +import APIKeyList from "./components/APIKeyList/APIKeyList"; + +const APIKey = () => { + return ( + <> + + + + ); +}; + +export default APIKey; diff --git a/src/main/Browser/Pages/UserPanel/Sections/Content/components/Settings/components/APIKey/components/CreateAPIKey/components/ResultPage/ResultPage.js b/src/main/Browser/Pages/UserPanel/Sections/Content/components/Settings/components/APIKey/components/CreateAPIKey/components/ResultPage/ResultPage.js index 34a9f32b..bf3e2104 100644 --- a/src/main/Browser/Pages/UserPanel/Sections/Content/components/Settings/components/APIKey/components/CreateAPIKey/components/ResultPage/ResultPage.js +++ b/src/main/Browser/Pages/UserPanel/Sections/Content/components/Settings/components/APIKey/components/CreateAPIKey/components/ResultPage/ResultPage.js @@ -1,6 +1,5 @@ import React from 'react'; import classes from './ResultPage.module.css' -import {images} from "../../../../../../../../../../../../../../assets/images"; import {useNavigate} from "react-router-dom"; import Button from "../../../../../../../../../../../../../../components/Button/Button"; import {useTranslation} from "react-i18next"; @@ -11,10 +10,8 @@ import QRCode from "react-qr-code"; const ResultPage = ({data, returnFunc}) => { - let navigate = useNavigate(); const {t} = useTranslation(); - const copyToClipboard = (value, e) => { e.preventDefault(); navigator.clipboard.writeText(value) diff --git a/src/main/Browser/Pages/UserPanel/Sections/SubMenu/components/MessagesSubMenu/MessagesSubMenu.js b/src/main/Browser/Pages/UserPanel/Sections/SubMenu/components/MessagesSubMenu/MessagesSubMenu.js index efc341b4..a73eb6ae 100644 --- a/src/main/Browser/Pages/UserPanel/Sections/SubMenu/components/MessagesSubMenu/MessagesSubMenu.js +++ b/src/main/Browser/Pages/UserPanel/Sections/SubMenu/components/MessagesSubMenu/MessagesSubMenu.js @@ -1,11 +1,10 @@ -import React, {Fragment, useEffect, useState} from "react"; +import React, {Fragment, useState} from "react"; import classes from "./MessagesSubMenu.module.css"; import {useTranslation} from "react-i18next"; import moment from "moment-jalaali"; import ScrollBar from "../../../../../../../../components/ScrollBar"; import Icon from "../../../../../../../../components/Icon/Icon"; import AccordionBox from "../../../../../../../../components/AccordionBox/AccordionBox"; -import {MyMessagesData, newsData} from "../../../../../../../../FakeData/FakeData"; import {useNavigate} from "react-router-dom"; import {Login as LoginRoute} from "../../../../../../Routes/routes"; import i18n from "i18next"; @@ -20,12 +19,12 @@ const MessagesSubMenu = () => { myMessages: [], news: [], }); - useEffect(() => { +/* useEffect(() => { setCustomData({ myMessages: MyMessagesData(), news: newsData(), }); - }, []); + }, []);*/ const navigate = useNavigate(); diff --git a/src/main/Mobile/Mobile.js b/src/main/Mobile/Mobile.js index 4b82298b..23ff3ee8 100644 --- a/src/main/Mobile/Mobile.js +++ b/src/main/Mobile/Mobile.js @@ -1,63 +1,7 @@ -import React, {useEffect} from "react"; -import {useDispatch, useSelector} from "react-redux"; -import {loadConfig} from "../../store/actions"; -import "./Mobille.css"; -import FullWidthLoading from "../../components/FullWidthLoading/FullWidthLoading"; -import i18n from "i18next"; -import Radium from "radium"; -import {useTranslation} from "react-i18next"; - +import React from "react"; const Mobile = () => { - - - const redirectURL = window.env.REACT_APP_MOBILE_URL - - const redirectFunc = () => { - window.location.replace(redirectURL); - }; - - useEffect(()=>{ - redirectFunc() - }, []) - - const {t} = useTranslation(); - const isLoading = useSelector((state) => state.global.isLoading) - const isDark = useSelector((state) => state.global.isDark) - const dispatch = useDispatch(); - - isDark ? document.body.classList.add('dark') : document.body.classList.remove('dark'); - - useEffect(() => { - dispatch(loadConfig()) - i18n.language !== "fa" ? document.body.classList.add('ltr') : document.body.classList.remove('ltr'); - i18n.on("languageChanged", (lng) => { - lng !== "fa" ? document.body.classList.add('ltr') : document.body.classList.remove('ltr'); - }); - }, []); - - if (isLoading) { - return - } - - const Style = { - "@media (max-width: 480px)": {} - } - - return ( -
-
- {/*{t("title")} -

- {t("title")} - {t("improperMobileView ")} -

*/} - Loading... -
-
- ); -}; - -export default Radium(Mobile); + window.location.replace(redirectURL); +} +export default Mobile; \ No newline at end of file diff --git a/src/main/main.js b/src/main/main.js index a8d2be5d..b05a64e8 100644 --- a/src/main/main.js +++ b/src/main/main.js @@ -1,14 +1,11 @@ -import React, {lazy} from "react"; +import React from "react"; import {BrowserRouter as Router} from "react-router-dom"; import {isBrowser} from "react-device-detect"; +import Browser from "./Browser/Browser"; +import Mobile from "./Mobile/Mobile"; const Main = ({baseURL}) => { - - const Mobile = lazy(() => import('./Mobile/Mobile')) - const Browser = lazy(() => import('./Browser/Browser')) - return {isBrowser ? : } - }; export default Main; \ No newline at end of file diff --git a/src/queries/hooks/useGetAPIKeyList.js b/src/queries/hooks/useGetAPIKeyList.js index d9dec4c5..63cf0f96 100644 --- a/src/queries/hooks/useGetAPIKeyList.js +++ b/src/queries/hooks/useGetAPIKeyList.js @@ -1,5 +1,5 @@ import {useQuery} from "@tanstack/react-query"; -import {getAPIKeyList, getLastPrices} from "js-api-client"; +import {getAPIKeyList} from "js-api-client"; export const useGetAPIKeyList = () => { return useQuery( diff --git a/yarn.lock b/yarn.lock index 83d55b21..677866c9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,6 +5,13 @@ __metadata: version: 6 cacheKey: 8 +"@adobe/css-tools@npm:^4.0.1": + version: 4.2.0 + resolution: "@adobe/css-tools@npm:4.2.0" + checksum: dc5cc92ba3d562e7ffddb79d6d222c7e00b65f255fd2725b3d71490ff268844be322f917415d8c4ab39eca646343b632058db8bd5b1d646193fcc94d1d3e420b + languageName: node + linkType: hard + "@alloc/quick-lru@npm:^5.2.0": version: 5.2.0 resolution: "@alloc/quick-lru@npm:5.2.0" @@ -1900,17 +1907,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime-corejs3@npm:^7.10.2": - version: 7.13.10 - resolution: "@babel/runtime-corejs3@npm:7.13.10" - dependencies: - core-js-pure: ^3.0.0 - regenerator-runtime: ^0.13.4 - checksum: 9f88f6dbd800ab70d4c116c9df9aa555f6879ef4e54899a13c20082b57f0cf161397663cfa061c1351162d130bcb60ab52bc87d472ec1314c2d472c5bf04aee4 - languageName: node - linkType: hard - -"@babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.6.3, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": +"@babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.6.3, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": version: 7.13.10 resolution: "@babel/runtime@npm:7.13.10" dependencies: @@ -1919,7 +1916,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.14.5, @babel/runtime@npm:^7.14.6, @babel/runtime@npm:^7.17.2": +"@babel/runtime@npm:^7.13.10": version: 7.17.9 resolution: "@babel/runtime@npm:7.17.9" dependencies: @@ -1928,7 +1925,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.16.3, @babel/runtime@npm:^7.20.7": +"@babel/runtime@npm:^7.16.3, @babel/runtime@npm:^7.19.4, @babel/runtime@npm:^7.20.6, @babel/runtime@npm:^7.20.7": version: 7.21.5 resolution: "@babel/runtime@npm:7.21.5" dependencies: @@ -1937,15 +1934,6 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.7.6": - version: 7.18.3 - resolution: "@babel/runtime@npm:7.18.3" - dependencies: - regenerator-runtime: ^0.13.4 - checksum: db8526226aa02cfa35a5a7ac1a34b5f303c62a1f000c7db48cb06c6290e616483e5036ab3c4e7a84d0f3be6d4e2148d5fe5cec9564bf955f505c3e764b83d7f1 - languageName: node - linkType: hard - "@babel/template@npm:^7.12.13, @babel/template@npm:^7.3.3": version: 7.12.13 resolution: "@babel/template@npm:7.12.13" @@ -2422,7 +2410,7 @@ __metadata: languageName: node linkType: hard -"@floating-ui/dom@npm:^1.0.0": +"@floating-ui/dom@npm:^1.0.0, @floating-ui/dom@npm:^1.0.1": version: 1.2.7 resolution: "@floating-ui/dom@npm:1.2.7" dependencies: @@ -2917,59 +2905,66 @@ __metadata: languageName: node linkType: hard -"@redux-saga/core@npm:^1.1.3": - version: 1.1.3 - resolution: "@redux-saga/core@npm:1.1.3" +"@redux-saga/core@npm:^1.2.3": + version: 1.2.3 + resolution: "@redux-saga/core@npm:1.2.3" dependencies: "@babel/runtime": ^7.6.3 - "@redux-saga/deferred": ^1.1.2 - "@redux-saga/delay-p": ^1.1.2 - "@redux-saga/is": ^1.1.2 - "@redux-saga/symbols": ^1.1.2 - "@redux-saga/types": ^1.1.0 + "@redux-saga/deferred": ^1.2.1 + "@redux-saga/delay-p": ^1.2.1 + "@redux-saga/is": ^1.1.3 + "@redux-saga/symbols": ^1.1.3 + "@redux-saga/types": ^1.2.1 redux: ^4.0.4 typescript-tuple: ^2.2.1 - checksum: b90c90fcba498442631fe5913be665b6cf4efa58d9e37223fa1d4837b7bd85e1be64e156489f5824b28d91e3fa946192020216d762a5c16e4f75d802517c3cb6 + checksum: a18249aa4e771699f103c2e18952d5fc0f65124f88c1fe33f4551b658b5ef7fb2d827091fea3e339c91f324e5d9098f758282d92536e1701bd003812353dd004 languageName: node linkType: hard -"@redux-saga/deferred@npm:^1.1.2": - version: 1.1.2 - resolution: "@redux-saga/deferred@npm:1.1.2" - checksum: 98bc41ca1cbc716b8b4d5ad3ffb2f04c7fc7298e75736cb197f1d18a084bca8a6e86c0fa547341db200695a45b15110e01d418a9ef32dc5f5ed6274b0e4f234a +"@redux-saga/deferred@npm:^1.2.1": + version: 1.2.1 + resolution: "@redux-saga/deferred@npm:1.2.1" + checksum: 2caca8d2fe559c74889562dbd7fabc6f139cc24871a41122e2ac8e4c98fb1c44a081d0fc762f13c12d6320fd759ee2b799d57141025fef93ae553c09338c3fff languageName: node linkType: hard -"@redux-saga/delay-p@npm:^1.1.2": - version: 1.1.2 - resolution: "@redux-saga/delay-p@npm:1.1.2" +"@redux-saga/delay-p@npm:^1.2.1": + version: 1.2.1 + resolution: "@redux-saga/delay-p@npm:1.2.1" dependencies: - "@redux-saga/symbols": ^1.1.2 - checksum: 0fda0b8ce947069deb9e35824dedb2393e956174e909e2c17942c6fa519d26f79847fd295832245e80a44c9c352a7154c45ff3389ed998a6ddaee945be68580f + "@redux-saga/symbols": ^1.1.3 + checksum: 060533ce8ba6b919caa5d47961eb5d8c1d171519fccd5d44208c26a0b94f3f315c8ea440f1b23af70ed53ebd0445b64567d6a0ac9663a6f703dd8088746ce2b5 languageName: node linkType: hard -"@redux-saga/is@npm:^1.1.2": - version: 1.1.2 - resolution: "@redux-saga/is@npm:1.1.2" +"@redux-saga/is@npm:^1.1.3": + version: 1.1.3 + resolution: "@redux-saga/is@npm:1.1.3" dependencies: - "@redux-saga/symbols": ^1.1.2 - "@redux-saga/types": ^1.1.0 - checksum: 18ff4ceb98cd57d00692841a2abb1a13d070561bb8290dd2785b65f792a55641553077231e4986c15b151c115ab5829f7346940c11dc99786dfabcaa293b021b + "@redux-saga/symbols": ^1.1.3 + "@redux-saga/types": ^1.2.1 + checksum: 8e24194d365e9a8896fa232a92c09a02a8f881f7a3a0d8004311568762ae3865d40391e4719b789114124f71904160a8942bb285e3fd1611599267bf2ae7d5fc languageName: node linkType: hard -"@redux-saga/symbols@npm:^1.1.2": - version: 1.1.2 - resolution: "@redux-saga/symbols@npm:1.1.2" - checksum: b75b6979a94ebc9b4db76eef84e05427e2134ca5cc0711592fab2aca621725c561213a900a75068f83b97ef85038688c36e088a07fedd8c076bf8ecfa9899044 +"@redux-saga/symbols@npm:^1.1.3": + version: 1.1.3 + resolution: "@redux-saga/symbols@npm:1.1.3" + checksum: 65a8ea23c1ab7b122823f1a4d957f881d48fa50f90898c26db65cac6524f22e2f337b768dadfa87324925b41e3279ff1ebce1c4141e53dc19e74855167b49b74 languageName: node linkType: hard -"@redux-saga/types@npm:^1.1.0": - version: 1.1.0 - resolution: "@redux-saga/types@npm:1.1.0" - checksum: e75a6ddc896007e76bd505dee1b3f8401464036ce9db2f4c4ac469215437d61013c17a54b9c342574bac27f2cb6ae628fe24419d17d9f85cb922181d81ec2321 +"@redux-saga/types@npm:^1.2.1": + version: 1.2.1 + resolution: "@redux-saga/types@npm:1.2.1" + checksum: 754f183bd1bdd589a29d2b976f666e9ee9e6d28e88268538c11f679d019334999676d5425af14d2a99d5c91c0c87a01e7ac1c4d81a656d93dd529df315bbd0c7 + languageName: node + linkType: hard + +"@remix-run/router@npm:1.6.1": + version: 1.6.1 + resolution: "@remix-run/router@npm:1.6.1" + checksum: 4ca65d9c7d6fa277227ad8fd4ef53bebab99460b714d835b609c998f9a7e7c33a964ce2b8af853b50025a60d9113968f256abc5f71f451939ff14a5187d327fe languageName: node linkType: hard @@ -3206,39 +3201,42 @@ __metadata: languageName: node linkType: hard -"@tanstack/match-sorter-utils@npm:^8.0.0-alpha.82": - version: 8.1.1 - resolution: "@tanstack/match-sorter-utils@npm:8.1.1" +"@tanstack/match-sorter-utils@npm:^8.7.0": + version: 8.8.4 + resolution: "@tanstack/match-sorter-utils@npm:8.8.4" dependencies: remove-accents: 0.4.2 - checksum: bf1458b7ca08cf79750ebd46fddef9c9b845ef55b5b69c0f7f69d48d6cbd73dbfd98763509f655298033b93cfc92b21d54f9f13a4d631cc68ca9191913967205 + checksum: d005f500754f52ef94966cbbe4217f26e7e3c07291faa2578b06bca9a5abe01689569994c37a1d01c6e783addf5ffbb28fa82eba7961d36eabf43ec43d1e496b languageName: node linkType: hard -"@tanstack/query-core@npm:^4.0.0-beta.1": - version: 4.0.10 - resolution: "@tanstack/query-core@npm:4.0.10" - checksum: 581d4506c5edbe91cdb35a2c4fe273aadb51a64ddaf73be63f92088202bda8495a909e286370357740291962149dabb5dd24fe7c048d71c29e702a1c61df5fc4 +"@tanstack/query-core@npm:4.29.5": + version: 4.29.5 + resolution: "@tanstack/query-core@npm:4.29.5" + checksum: 367176beccd78e959c74e69e96497b626dd1c139398501eb7a04cf92215edf262665c3e7bb59df68320779d49893d3153a3b41e750b9046655b45cfe44691b36 languageName: node linkType: hard -"@tanstack/react-query-devtools@npm:^4.0.10": - version: 4.0.10 - resolution: "@tanstack/react-query-devtools@npm:4.0.10" +"@tanstack/react-query-devtools@npm:^4.29.6": + version: 4.29.6 + resolution: "@tanstack/react-query-devtools@npm:4.29.6" dependencies: - "@tanstack/match-sorter-utils": ^8.0.0-alpha.82 - "@types/use-sync-external-store": ^0.0.3 + "@tanstack/match-sorter-utils": ^8.7.0 + superjson: ^1.10.0 use-sync-external-store: ^1.2.0 - checksum: a337609b5576ecc6c5f044c7374500413e72b16ac11d4a7b365a7f4eb5bb99537341f72c77781846bca0f8f98c7e73a5ced0bc0dc699cbd1bc8dcdaea0b99cbc + peerDependencies: + "@tanstack/react-query": 4.29.5 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: aeab54a9e8d5c25a60fccd78326259214b9dc0838cf24d272fedf06f6a628dacb58cddddfe245d02085b644d33a2b15fc20756fd1a8d4b65b487f7efb529df31 languageName: node linkType: hard -"@tanstack/react-query@npm:^4.1.3": - version: 4.1.3 - resolution: "@tanstack/react-query@npm:4.1.3" +"@tanstack/react-query@npm:^4.29.5": + version: 4.29.5 + resolution: "@tanstack/react-query@npm:4.29.5" dependencies: - "@tanstack/query-core": ^4.0.0-beta.1 - "@types/use-sync-external-store": ^0.0.3 + "@tanstack/query-core": 4.29.5 use-sync-external-store: ^1.2.0 peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -3249,63 +3247,63 @@ __metadata: optional: true react-native: optional: true - checksum: 18baf3c0d1d0c93a2a81e2652409479eadb8d11fe00a6c872ee551d69771f86f01ec18388c6e7a167a2ba771153dfc23a09c712a0539ff8fab9fb243a631f950 + checksum: de45573900810b37216aa8d6599cae5ea43602eaada9fd2224f57ff7ab1de10b3f2e681e7fdb993ee1519ed8ffc7e6e07d6bf3ad1b9da4136b1ae78ca19f31f6 languageName: node linkType: hard -"@testing-library/dom@npm:^7.28.1": - version: 7.30.3 - resolution: "@testing-library/dom@npm:7.30.3" +"@testing-library/dom@npm:^9.0.0": + version: 9.2.0 + resolution: "@testing-library/dom@npm:9.2.0" dependencies: "@babel/code-frame": ^7.10.4 "@babel/runtime": ^7.12.5 - "@types/aria-query": ^4.2.0 - aria-query: ^4.2.2 + "@types/aria-query": ^5.0.1 + aria-query: ^5.0.0 chalk: ^4.1.0 - dom-accessibility-api: ^0.5.4 - lz-string: ^1.4.4 - pretty-format: ^26.6.2 - checksum: f38429dd481feaf3861b0801457942cdad20a3ec40d0a0dd2761414f42e37d4a39a2c43d373dfb8b2ece659ffc2db0b38949a627b1a1f749f0787a3e85e87e0c + dom-accessibility-api: ^0.5.9 + lz-string: ^1.5.0 + pretty-format: ^27.0.2 + checksum: b145f43cd06ff083012cf2503aff6ccba97ff80715fcb106fe64af690f5536557bf24d37b97e8d685bbe3803d7f71d685ce71426cb1b9e250c3611e4372dcfa9 languageName: node linkType: hard -"@testing-library/jest-dom@npm:^5.11.9": - version: 5.11.10 - resolution: "@testing-library/jest-dom@npm:5.11.10" +"@testing-library/jest-dom@npm:^5.16.5": + version: 5.16.5 + resolution: "@testing-library/jest-dom@npm:5.16.5" dependencies: + "@adobe/css-tools": ^4.0.1 "@babel/runtime": ^7.9.2 "@types/testing-library__jest-dom": ^5.9.1 - aria-query: ^4.2.2 + 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 redent: ^3.0.0 - checksum: 958f3dd3983984eee5a9ab9512cf3d6a351421dec60b058c8930faf57007cbf2b251f4dddaab351d86f3e40dd3157a440ffe6176867f269fe0aee228fa518964 + checksum: 94911f901a8031f3e489d04ac057cb5373621230f5d92bed80e514e24b069fb58a3166d1dd86963e55f078a1bd999da595e2ab96ed95f452d477e272937d792a languageName: node linkType: hard -"@testing-library/react@npm:^11.2.5": - version: 11.2.6 - resolution: "@testing-library/react@npm:11.2.6" +"@testing-library/react@npm:^14.0.0": + version: 14.0.0 + resolution: "@testing-library/react@npm:14.0.0" dependencies: "@babel/runtime": ^7.12.5 - "@testing-library/dom": ^7.28.1 + "@testing-library/dom": ^9.0.0 + "@types/react-dom": ^18.0.0 peerDependencies: - react: "*" - react-dom: "*" - checksum: be64e1c365a34e8fdab0f4178b4df7925423e846f86724cc945528cd90bb3d8faa46427a8e72b2015fa64f481d5b762602d2fa0842310df7fa365fc677dcc1ee + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: 4a54c8f56cc4a39b50803205f84f06280bb76521d6d5d4b3b36651d760c7c7752ef142d857d52aaf4fad4848ed7a8be49afc793a5dda105955d2f8bef24901ac languageName: node linkType: hard -"@testing-library/user-event@npm:^12.7.4": - version: 12.8.3 - resolution: "@testing-library/user-event@npm:12.8.3" - dependencies: - "@babel/runtime": ^7.12.5 +"@testing-library/user-event@npm:^14.4.3": + version: 14.4.3 + resolution: "@testing-library/user-event@npm:14.4.3" peerDependencies: "@testing-library/dom": ">=7.21.4" - checksum: c9fb5ee07cbe79ddf32d81e1a353e556d02a1f1619456ccfad6abcdf1b7db400fdc9d7a8e0be3994f456e7135a0dfb7fa10b29fb98a0f5fc417b99fce0ce8166 + checksum: 852c48ea6db1c9471b18276617c84fec4320771e466cd58339a732ca3fd73ad35e5a43ae14f51af51a8d0a150dcf60fcaab049ef367871207bea8f92c4b8195e languageName: node linkType: hard @@ -3323,10 +3321,10 @@ __metadata: languageName: node linkType: hard -"@types/aria-query@npm:^4.2.0": - version: 4.2.1 - resolution: "@types/aria-query@npm:4.2.1" - checksum: cf60cc7aa0ed52514e8c7289776de9bb3321217d48f54c95d63e1e1eb9940689c1fd3e39d68da5eaee1541108363f0113007f67d6e32e7fbc983526f08e5f0ce +"@types/aria-query@npm:^5.0.1": + version: 5.0.1 + resolution: "@types/aria-query@npm:5.0.1" + checksum: 69fd7cceb6113ed370591aef04b3fd0742e9a1b06dd045c43531448847b85de181495e4566f98e776b37c422a12fd71866e0a1dfd904c5ec3f84d271682901de languageName: node linkType: hard @@ -3496,7 +3494,7 @@ __metadata: languageName: node linkType: hard -"@types/hoist-non-react-statics@npm:^3.3.0": +"@types/hoist-non-react-statics@npm:^3.3.1": version: 3.3.1 resolution: "@types/hoist-non-react-statics@npm:3.3.1" dependencies: @@ -3641,15 +3639,12 @@ __metadata: languageName: node linkType: hard -"@types/react-redux@npm:^7.1.16": - version: 7.1.16 - resolution: "@types/react-redux@npm:7.1.16" +"@types/react-dom@npm:^18.0.0": + version: 18.2.4 + resolution: "@types/react-dom@npm:18.2.4" dependencies: - "@types/hoist-non-react-statics": ^3.3.0 "@types/react": "*" - hoist-non-react-statics: ^3.3.0 - redux: ^4.0.0 - checksum: c07ee677be781df70aa6209d4152373ec470f6c99b50051e302add8b57d49e89322250959bf9e192738cccc5dbbe05c77514339a45b46ec973c8326227408f26 + checksum: 8301f35cf1cbfec8c723e9477aecf87774e3c168bd457d353b23c45064737213d3e8008b067c6767b7b08e4f2b3823ee239242a6c225fc91e7f8725ef8734124 languageName: node linkType: hard @@ -4471,17 +4466,7 @@ __metadata: languageName: node linkType: hard -"aria-query@npm:^4.2.2": - version: 4.2.2 - resolution: "aria-query@npm:4.2.2" - dependencies: - "@babel/runtime": ^7.10.2 - "@babel/runtime-corejs3": ^7.10.2 - checksum: 38401a9a400f26f3dcc24b84997461a16b32869a9893d323602bed8da40a8bcc0243b8d2880e942249a1496cea7a7de769e93d21c0baa439f01e1ee936fed665 - languageName: node - linkType: hard - -"aria-query@npm:^5.1.3": +"aria-query@npm:^5.0.0, aria-query@npm:^5.1.3": version: 5.1.3 resolution: "aria-query@npm:5.1.3" dependencies: @@ -4619,15 +4604,6 @@ __metadata: languageName: node linkType: hard -"atob@npm:^2.1.2": - version: 2.1.2 - resolution: "atob@npm:2.1.2" - bin: - atob: bin/atob.js - checksum: dfeeeb70090c5ebea7be4b9f787f866686c645d9f39a0d184c817252d0cf08455ed25267d79c03254d3be1f03ac399992a792edcd5ffb9c91e097ab5ef42833a - languageName: node - linkType: hard - "attr-accept@npm:^2.2.1": version: 2.2.2 resolution: "attr-accept@npm:2.2.2" @@ -5569,6 +5545,15 @@ __metadata: languageName: node linkType: hard +"copy-anything@npm:^3.0.2": + version: 3.0.4 + resolution: "copy-anything@npm:3.0.4" + dependencies: + is-what: ^4.1.8 + checksum: 65ba2384db4c8d9fd19bb0d0e14a4381377d8f6733ff725c7340a22b392d1478f1b695e4c7972252d4a129ab66ae1a0c134bffb23151e91f14781c58d8831f1f + languageName: node + linkType: hard + "core-js-compat@npm:^3.25.1": version: 3.30.2 resolution: "core-js-compat@npm:3.30.2" @@ -5578,13 +5563,6 @@ __metadata: languageName: node linkType: hard -"core-js-pure@npm:^3.0.0": - version: 3.10.1 - resolution: "core-js-pure@npm:3.10.1" - checksum: 3352d0613f2168d604e3937b262d6d8b8494cd509d628662bae83139a8a0800b1ca317b897552108466ba4f831af36a816a4b5502660ae29b74c28634bc59efb - languageName: node - linkType: hard - "core-js-pure@npm:^3.23.3": version: 3.30.2 resolution: "core-js-pure@npm:3.30.2" @@ -5831,17 +5809,6 @@ __metadata: languageName: node linkType: hard -"css@npm:^3.0.0": - version: 3.0.0 - resolution: "css@npm:3.0.0" - dependencies: - inherits: ^2.0.4 - source-map: ^0.6.1 - source-map-resolve: ^0.6.0 - checksum: 4273ac816ddf99b99acb9c1d1a27d86d266a533cc01118369d941d8e8a78277a83cad3315e267a398c509d930fbb86504e193ea1ebc620a4a4212e06fe76e8be - languageName: node - linkType: hard - "cssdb@npm:^7.1.0": version: 7.5.4 resolution: "cssdb@npm:7.5.4" @@ -6037,13 +6004,6 @@ __metadata: languageName: node linkType: hard -"decode-uri-component@npm:^0.2.0": - version: 0.2.0 - resolution: "decode-uri-component@npm:0.2.0" - checksum: f3749344ab9305ffcfe4bfe300e2dbb61fc6359e2b736812100a3b1b6db0a5668cba31a05e4b45d4d63dbf1a18dfa354cd3ca5bb3ededddabb8cd293f4404f94 - languageName: node - linkType: hard - "dedent@npm:^0.7.0": version: 0.7.0 resolution: "dedent@npm:0.7.0" @@ -6259,10 +6219,10 @@ __metadata: languageName: node linkType: hard -"dom-accessibility-api@npm:^0.5.4": - version: 0.5.4 - resolution: "dom-accessibility-api@npm:0.5.4" - checksum: 1fb22b351984564212b41bd7265ad1288322ad72e7367753f589facaeb98c2e3515502396acf2463f71dbaa1e238d6e006ec144a6217f1cd42e962b9bebd2dee +"dom-accessibility-api@npm:^0.5.6, dom-accessibility-api@npm:^0.5.9": + version: 0.5.16 + resolution: "dom-accessibility-api@npm:0.5.16" + checksum: 005eb283caef57fc1adec4d5df4dd49189b628f2f575af45decb210e04d634459e3f1ee64f18b41e2dcf200c844bc1d9279d80807e686a30d69a4756151ad248 languageName: node linkType: hard @@ -7166,17 +7126,10 @@ __metadata: languageName: node linkType: hard -"faker@npm:^5.4.0": - version: 5.5.3 - resolution: "faker@npm:5.5.3" - checksum: 684fd64c8d3897e54248f95b4f6319f75d97691b8500cd13adf4af2c28f9204f766c1d1aaa6b41338f0beaaa87256c3132f8708a1a8f189d122b92f6b98081c3 - languageName: node - linkType: hard - -"fancy-canvas@npm:0.2.2": - version: 0.2.2 - resolution: "fancy-canvas@npm:0.2.2" - checksum: 965446383e59aa0108e03a4bc2b12dbb386089a24d95ba1abfb3d0f7a96cf168af70de0c06fabb9f396542e8ea56d1fc8609db108d9ec0ca5f454749d1f78203 +"fancy-canvas@npm:2.1.0": + version: 2.1.0 + resolution: "fancy-canvas@npm:2.1.0" + checksum: 2463ca8a9254fb4cc69bbe33a2996b2a0ba8f725721d51464d9e87b4f3c3e8759e2289b0d592f56265501d5cff0b363bb7c72bb9c38212c19114dbd006ec8959 languageName: node linkType: hard @@ -7904,15 +7857,6 @@ __metadata: languageName: node linkType: hard -"history@npm:^5.2.0": - version: 5.3.0 - resolution: "history@npm:5.3.0" - dependencies: - "@babel/runtime": ^7.7.6 - checksum: d73c35df49d19ac172f9547d30a21a26793e83f16a78386d99583b5bf1429cc980799fcf1827eb215d31816a6600684fba9686ce78104e23bd89ec239e7c726f - languageName: node - linkType: hard - "hoist-non-react-statics@npm:3.3.0": version: 3.3.0 resolution: "hoist-non-react-statics@npm:3.3.0" @@ -7966,7 +7910,7 @@ __metadata: languageName: node linkType: hard -"html-escaper@npm:^2.0.0, html-escaper@npm:^2.0.2": +"html-escaper@npm:^2.0.0": version: 2.0.2 resolution: "html-escaper@npm:2.0.2" checksum: d2df2da3ad40ca9ee3a39c5cc6475ef67c8f83c234475f24d8e9ce0dc80a2c82df8e1d6fa78ddd1e9022a586ea1bd247a615e80a5cd9273d90111ddda7d9e974 @@ -8145,30 +8089,30 @@ __metadata: languageName: node linkType: hard -"i18next-browser-languagedetector@npm:^6.1.4": - version: 6.1.4 - resolution: "i18next-browser-languagedetector@npm:6.1.4" +"i18next-browser-languagedetector@npm:^7.0.1": + version: 7.0.1 + resolution: "i18next-browser-languagedetector@npm:7.0.1" dependencies: - "@babel/runtime": ^7.14.6 - checksum: 379dba3527c359c3adeb26c1e16e6b7e007989763c4361d43662e4d9412c538ca35e28a6a12df0654edc0adb78b44ff5afdf4c5d842bbf0e83db59d5e9e02f55 + "@babel/runtime": ^7.19.4 + checksum: 03129614be8761988df59b630359ded4f7c989eec4553781b5968139fd898de1eb09128c4c69c1365b547649ad829ff9abe1f60161658f8789668bcc623adcf0 languageName: node linkType: hard -"i18next-http-backend@npm:^1.4.0": - version: 1.4.0 - resolution: "i18next-http-backend@npm:1.4.0" +"i18next-http-backend@npm:^2.2.0": + version: 2.2.0 + resolution: "i18next-http-backend@npm:2.2.0" dependencies: cross-fetch: 3.1.5 - checksum: bc10dca0fd1d566a5a4a4eab96ce76226f69c5b716951262e994bf069c0c5d18ea346dacd17d35aa6c5bee74221641f64839c84c1e01da9d75718ae34ce149a0 + checksum: 21d22d947a23a1b95f9bb7d4e1071639e4cfd5f6c2bd21eded7fe2df848108a87cdab31586764d9ef9c1ee0fba38a887bfe9c0daadc049f22760d8de0bfb4a4f languageName: node linkType: hard -"i18next@npm:^21.8.0": - version: 21.8.0 - resolution: "i18next@npm:21.8.0" +"i18next@npm:^22.4.15": + version: 22.4.15 + resolution: "i18next@npm:22.4.15" dependencies: - "@babel/runtime": ^7.17.2 - checksum: f9d74ccc9d811f1e66b7462e450d5ddf8fe186d10e6bd48e3fb7a7fe208067f9d8bc3f9e9dfa85edf6edb58fd7f27fcbad2236cf334341a3dceb84653b4f55f9 + "@babel/runtime": ^7.20.6 + checksum: fced898227983e439c59e7aa6e7b87e53ad1b8a1c85f0613a968881418266e5336e9443831125590559796075d516fe3dbf8118679c894094a0a404be78b02a2 languageName: node linkType: hard @@ -8298,7 +8242,7 @@ __metadata: languageName: node linkType: hard -"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3": +"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:~2.0.3": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 @@ -8742,6 +8686,13 @@ __metadata: languageName: node linkType: hard +"is-what@npm:^4.1.8": + version: 4.1.9 + resolution: "is-what@npm:4.1.9" + checksum: 0ba25db3aa4d3b9911f490153e479308072e4d0f9dbf306612db0e475dfb236c5ba05926d8283efa9c0789c9bf1552d4142c993af81ce9b4ad18af9b7371c65d + languageName: node + linkType: hard + "is-wsl@npm:^2.2.0": version: 2.2.0 resolution: "is-wsl@npm:2.2.0" @@ -9758,12 +9709,12 @@ __metadata: languageName: node linkType: hard -"lightweight-charts@npm:^3.8.0": - version: 3.8.0 - resolution: "lightweight-charts@npm:3.8.0" +"lightweight-charts@npm:^4.0.1": + version: 4.0.1 + resolution: "lightweight-charts@npm:4.0.1" dependencies: - fancy-canvas: 0.2.2 - checksum: 606c4b01a18e786562e7089f7e2f0051bbb322beab03053efb278e9e238a5097202c5e5008a89a1153c42f1a948e1248ab383be7985ef25d26d2149df35c52dc + fancy-canvas: 2.1.0 + checksum: 772183cb4d334ba9baf7459fdaf58420f4846f9d0908af4f0a9592bda6c03ae09898f8b08c4095ba6f45667b3545febe4e6860decf827e6f8a5d198c40e91f3a languageName: node linkType: hard @@ -9925,12 +9876,12 @@ __metadata: languageName: node linkType: hard -"lz-string@npm:^1.4.4": - version: 1.4.4 - resolution: "lz-string@npm:1.4.4" +"lz-string@npm:^1.5.0": + version: 1.5.0 + resolution: "lz-string@npm:1.5.0" bin: lz-string: bin/bin.js - checksum: 54e31238a61a84d8f664d9860a9fba7310c5b97a52c444f80543069bc084815eff40b8d4474ae1d93992fdf6c252dca37cf27f6adbeb4dbc3df2f3ac773d0e61 + checksum: 1ee98b4580246fd90dd54da6e346fb1caefcf05f677c686d9af237a157fdea3fd7c83a4bc58f858cd5b10a34d27afe0fdcbd0505a47e0590726a873dc8b8f65d languageName: node linkType: hard @@ -10014,10 +9965,10 @@ __metadata: languageName: node linkType: hard -"memoize-one@npm:^5.0.0": - version: 5.1.1 - resolution: "memoize-one@npm:5.1.1" - checksum: 51a8e96cd94614909e1656843ecb9307440fbfa64994be12978bb30bc190f8e66010cb7a35d3ee641a52302ce701dcea990b636ea2ef3c1cf94a50b4651f5446 +"memoize-one@npm:^6.0.0": + version: 6.0.0 + resolution: "memoize-one@npm:6.0.0" + checksum: f185ea69f7cceae5d1cb596266dcffccf545e8e7b4106ec6aa93b71ab9d16460dd118ac8b12982c55f6d6322fcc1485de139df07eacffaae94888b9b3ad7675f languageName: node linkType: hard @@ -10273,15 +10224,15 @@ __metadata: languageName: node linkType: hard -"moment-jalaali@npm:^0.9.2": - version: 0.9.2 - resolution: "moment-jalaali@npm:0.9.2" +"moment-jalaali@npm:^0.10.0": + version: 0.10.0 + resolution: "moment-jalaali@npm:0.10.0" dependencies: jalaali-js: ^1.1.0 moment: ^2.22.2 moment-timezone: ^0.5.21 - rimraf: ^2.6.2 - checksum: 9dfaef09438374589b984eb4c1e9d2024a04b076ae4abd04c9f91546264441d2dc4ca658ce7a47ed84846cf234600942f2e449be5a20aa32ccbc61b988bc382d + rimraf: ^3.0.2 + checksum: a2c82f748f771404a9865537bc3d14f3a21aa2ae7790120f25200585107defbd480b0d2f9dd1104b2d3ecc53b23fe7a3315acdcff15aea82520beef8cd24ff70 languageName: node linkType: hard @@ -10751,40 +10702,39 @@ __metadata: version: 0.0.0-use.local resolution: "opex@workspace:." dependencies: - "@tanstack/react-query": ^4.1.3 - "@tanstack/react-query-devtools": ^4.0.10 - "@testing-library/jest-dom": ^5.11.9 - "@testing-library/react": ^11.2.5 - "@testing-library/user-event": ^12.7.4 + "@tanstack/react-query": ^4.29.5 + "@tanstack/react-query-devtools": ^4.29.6 + "@testing-library/jest-dom": ^5.16.5 + "@testing-library/react": ^14.0.0 + "@testing-library/user-event": ^14.4.3 axios: ^0.27.2 bignumber.js: ^9.1.1 - faker: ^5.4.0 - i18next: ^21.8.0 - i18next-browser-languagedetector: ^6.1.4 - i18next-http-backend: ^1.4.0 + i18next: ^22.4.15 + i18next-browser-languagedetector: ^7.0.1 + i18next-http-backend: ^2.2.0 js-api-client: "https://github.com/opexdev/js-api-client.git#develop" jwt-decode: ^3.1.2 - lightweight-charts: ^3.8.0 - moment-jalaali: ^0.9.2 + lightweight-charts: ^4.0.1 + moment-jalaali: ^0.10.0 normalize.css: ^8.0.1 radium: ^0.26.2 - rc-scrollbars: ^1.1.3 - react: ^17.0.1 - react-countdown: ^2.3.2 - react-device-detect: ^2.2.2 - react-dom: ^17.0.1 + rc-scrollbars: ^1.1.5 + react: ^18.2.0 + react-countdown: ^2.3.5 + react-device-detect: ^2.2.3 + react-dom: ^18.2.0 react-dropzone: ^11.3.1 react-hot-toast: ^2.4.1 - react-i18next: ^11.16.9 + react-i18next: ^12.2.2 react-number-format: ^4.9.3 - react-qr-code: ^2.0.7 - react-redux: ^7.2.2 - react-router-dom: ^6.3.0 + react-qr-code: ^2.0.11 + react-redux: ^8.0.5 + react-router-dom: ^6.11.1 react-scripts: ^5.0.1 - react-select: ^5.3.2 + react-select: ^5.7.3 react-tooltip: ^5.11.2 - redux: ^4.2.0 - redux-saga: ^1.1.3 + redux: ^4.2.1 + redux-saga: ^1.2.3 web-vitals: ^0.2.4 languageName: unknown linkType: soft @@ -11985,7 +11935,7 @@ __metadata: languageName: node linkType: hard -"pretty-format@npm:^27.5.1": +"pretty-format@npm:^27.0.2, pretty-format@npm:^27.5.1": version: 27.5.1 resolution: "pretty-format@npm:27.5.1" dependencies: @@ -12188,16 +12138,16 @@ __metadata: languageName: node linkType: hard -"rc-scrollbars@npm:^1.1.3": - version: 1.1.3 - resolution: "rc-scrollbars@npm:1.1.3" +"rc-scrollbars@npm:^1.1.5": + version: 1.1.5 + resolution: "rc-scrollbars@npm:1.1.5" dependencies: dom-css: ^2.1.0 raf: ^3.4.1 peerDependencies: - react: ^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - react-dom: ^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: b29a3825be055e1f1cf5a0736d2f80ea0e3e0df4f63fe8858c0b555622f08a63912d9efd33e8ec06fc11cc38159f44fd22788d11eb07da98e95f7563919f5b44 + react: ^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + react-dom: ^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + checksum: d2b3710868f70ed7c154768bd03825b543d7804ef1c95086ee9cd851f66a046e1b4dbc9e153f9797e1706a11d263db4a645eff485d16bf1c095754e6e771f5ad languageName: node linkType: hard @@ -12215,15 +12165,15 @@ __metadata: languageName: node linkType: hard -"react-countdown@npm:^2.3.2": - version: 2.3.2 - resolution: "react-countdown@npm:2.3.2" +"react-countdown@npm:^2.3.5": + version: 2.3.5 + resolution: "react-countdown@npm:2.3.5" dependencies: prop-types: ^15.7.2 peerDependencies: react: ">= 15" react-dom: ">= 15" - checksum: 670d7f6f355cd2c862fde2039e3fbaf39dae2925d2dea78c0406c04a9a5c35cca61bbd137de04a965ebdbbbaee5d435a06f06c0786a86d7bfc175b4fd9789e19 + checksum: 24289f40591e88003052270e4eb9f7a87838e403ec2036fbd5ef99d57851c8d9739dae619d65f339494e582e34e2691c033a975bd8f7416730fc9beaf76a2b4b languageName: node linkType: hard @@ -12259,28 +12209,27 @@ __metadata: languageName: node linkType: hard -"react-device-detect@npm:^2.2.2": - version: 2.2.2 - resolution: "react-device-detect@npm:2.2.2" +"react-device-detect@npm:^2.2.3": + version: 2.2.3 + resolution: "react-device-detect@npm:2.2.3" dependencies: - ua-parser-js: ^1.0.2 + ua-parser-js: ^1.0.33 peerDependencies: react: ">= 0.14.0" react-dom: ">= 0.14.0" - checksum: d9245cf5a1c1e565e88523ed6be580497d1f6a972fb100a81092943bb7e44afdcdbae0d67bebe7424c4ba5b27a5d13df7894d122307f070fc26062704f7ec788 + checksum: 42d9b3182b9d2495bf0d7914c9f370da51d8bdb853a3eba2acaf433894ae760386a075ba103185be825b33d42f50d85ef462087f261656d433f4c74dab23861f languageName: node linkType: hard -"react-dom@npm:^17.0.1": - version: 17.0.2 - resolution: "react-dom@npm:17.0.2" +"react-dom@npm:^18.2.0": + version: 18.2.0 + resolution: "react-dom@npm:18.2.0" dependencies: loose-envify: ^1.1.0 - object-assign: ^4.1.1 - scheduler: ^0.20.2 + scheduler: ^0.23.0 peerDependencies: - react: 17.0.2 - checksum: 1c1eaa3bca7c7228d24b70932e3d7c99e70d1d04e13bb0843bbf321582bc25d7961d6b8a6978a58a598af2af496d1cedcfb1bf65f6b0960a0a8161cb8dab743c + react: ^18.2.0 + checksum: 7d323310bea3a91be2965f9468d552f201b1c27891e45ddc2d6b8f717680c95a75ae0bc1e3f5cf41472446a2589a75aed4483aee8169287909fcd59ad149e8cc languageName: node linkType: hard @@ -12316,12 +12265,11 @@ __metadata: languageName: node linkType: hard -"react-i18next@npm:^11.16.9": - version: 11.16.9 - resolution: "react-i18next@npm:11.16.9" +"react-i18next@npm:^12.2.2": + version: 12.2.2 + resolution: "react-i18next@npm:12.2.2" dependencies: - "@babel/runtime": ^7.14.5 - html-escaper: ^2.0.2 + "@babel/runtime": ^7.20.6 html-parse-stringify: ^3.0.1 peerDependencies: i18next: ">= 19.0.0" @@ -12331,7 +12279,7 @@ __metadata: optional: true react-native: optional: true - checksum: b79606a0c36a822b3d9a1e4f2bb4b44643c121de9425ddfeea7e63e5136fe33d4b0b42f045f14d53592dcdbde1fb43cd7be4555b22747d2e0f6f754d3a60c711 + checksum: 460e32779f6abba287d63be6054f855202c2e365cbceca36673c8f37a497c2ac5a21a8577d20fcc0b3fcd4825f89427dc4fdf00136365963d27dac7d997c3c74 languageName: node linkType: hard @@ -12368,11 +12316,11 @@ __metadata: languageName: node linkType: hard -"react-qr-code@npm:^2.0.7": - version: 2.0.7 - resolution: "react-qr-code@npm:2.0.7" +"react-qr-code@npm:^2.0.11": + version: 2.0.11 + resolution: "react-qr-code@npm:2.0.11" dependencies: - prop-types: ^15.7.2 + prop-types: ^15.8.1 qr.js: 0.0.0 peerDependencies: react: ^16.x || ^17.x || ^18.x @@ -12380,29 +12328,39 @@ __metadata: peerDependenciesMeta: react-native-svg: optional: true - checksum: f79d6ae9756b722afe59fe2f86ae6e810a13bc91d72c019f529f87e30dc3dfe1a46f8f2cbb57a05f149f32efe91012ca22d0a700a81b392135cdaa3e8ea1794e + checksum: 680f7be35078892a29999013b24e36aae10c3529e4cdd2c1436573603864c45010445d6069969d7f76e4642c54584a3b941b8c944189273c3ac5b705156ad23b languageName: node linkType: hard -"react-redux@npm:^7.2.2": - version: 7.2.3 - resolution: "react-redux@npm:7.2.3" +"react-redux@npm:^8.0.5": + version: 8.0.5 + resolution: "react-redux@npm:8.0.5" dependencies: "@babel/runtime": ^7.12.1 - "@types/react-redux": ^7.1.16 + "@types/hoist-non-react-statics": ^3.3.1 + "@types/use-sync-external-store": ^0.0.3 hoist-non-react-statics: ^3.3.2 - loose-envify: ^1.4.0 - prop-types: ^15.7.2 - react-is: ^16.13.1 - peerDependencies: - react: ^16.8.3 || ^17 - redux: ^2.0.0 || ^3.0.0 || ^4.0.0-0 + react-is: ^18.0.0 + use-sync-external-store: ^1.0.0 + peerDependencies: + "@types/react": ^16.8 || ^17.0 || ^18.0 + "@types/react-dom": ^16.8 || ^17.0 || ^18.0 + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + react-native: ">=0.59" + redux: ^4 peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true react-dom: optional: true react-native: optional: true - checksum: e4c7b1d9518f8977afb1db8074bc6c029ca0c02fb64ac1361e8b784e11b027c1869c664af6d329a8df4320b455a4fe0f22089d1fdab24c7ec82c78cefff1e1a6 + redux: + optional: true + checksum: a108f4f7ead6ac005e656d46051474a2bbdb31ede481bbbb3d8d779c1a35e1940b8655577cc5021313411864d305f67fc719aa48d6e5ed8288cf9cbe8b7042e4 languageName: node linkType: hard @@ -12413,27 +12371,27 @@ __metadata: languageName: node linkType: hard -"react-router-dom@npm:^6.3.0": - version: 6.3.0 - resolution: "react-router-dom@npm:6.3.0" +"react-router-dom@npm:^6.11.1": + version: 6.11.1 + resolution: "react-router-dom@npm:6.11.1" dependencies: - history: ^5.2.0 - react-router: 6.3.0 + "@remix-run/router": 1.6.1 + react-router: 6.11.1 peerDependencies: react: ">=16.8" react-dom: ">=16.8" - checksum: 77603a654f8a8dc7f65535a2e5917a65f8d9ffcb06546d28dd297e52adcc4b8a84377e0115f48dca330b080af2da3e78f29d590c89307094d36927d2b1751ec3 + checksum: 44566e10cb1ff475c73be47425dba66e8e834e695e80c572c63ca82543ad03d41f4a1d8e974bf998143150f497792f74ba99714b1219df1c923c62a3b67f187b languageName: node linkType: hard -"react-router@npm:6.3.0": - version: 6.3.0 - resolution: "react-router@npm:6.3.0" +"react-router@npm:6.11.1": + version: 6.11.1 + resolution: "react-router@npm:6.11.1" dependencies: - history: ^5.2.0 + "@remix-run/router": 1.6.1 peerDependencies: react: ">=16.8" - checksum: 7be673f5e72104be01e6ab274516bdb932efd93305243170690f6560e3bd1035dd1df3d3c9ce1e0f452638a2529f43a1e77dcf0934fc8031c4783da657be13ca + checksum: c5cafbaac13564d0e325f84ce6e4cbc42de5c381b0f619209f3b101d2b6eae4a8f9ee87b492875e869909dd9bb549d05d2f677085708f79622b872bd45d14bbb languageName: node linkType: hard @@ -12504,21 +12462,23 @@ __metadata: languageName: node linkType: hard -"react-select@npm:^5.3.2": - version: 5.3.2 - resolution: "react-select@npm:5.3.2" +"react-select@npm:^5.7.3": + version: 5.7.3 + resolution: "react-select@npm:5.7.3" dependencies: "@babel/runtime": ^7.12.0 "@emotion/cache": ^11.4.0 "@emotion/react": ^11.8.1 + "@floating-ui/dom": ^1.0.1 "@types/react-transition-group": ^4.4.0 - memoize-one: ^5.0.0 + memoize-one: ^6.0.0 prop-types: ^15.6.0 react-transition-group: ^4.3.0 + use-isomorphic-layout-effect: ^1.1.2 peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: c8c0ecd75704098ef1010fba4df68bcc5e7d76ffcd6d3bac40bc3017758a9c035a887fa82ead9105dc719c14e04c4164d8b7a8e8fa61d0ed39e4bdf48ee3bf1c + checksum: 9ffa75afb395e7077076521c529611494164ace0c6b1ceb249406991ac668947cfd0424812c15c2a45c792bb2794b22f2df93c4c2f2515962b7dfc7c91b029ec languageName: node linkType: hard @@ -12550,13 +12510,12 @@ __metadata: languageName: node linkType: hard -"react@npm:^17.0.1": - version: 17.0.2 - resolution: "react@npm:17.0.2" +"react@npm:^18.2.0": + version: 18.2.0 + resolution: "react@npm:18.2.0" dependencies: loose-envify: ^1.1.0 - object-assign: ^4.1.1 - checksum: b254cc17ce3011788330f7bbf383ab653c6848902d7936a87b09d835d091e3f295f7e9dd1597c6daac5dc80f90e778c8230218ba8ad599f74adcc11e33b9d61b + checksum: 88e38092da8839b830cda6feef2e8505dec8ace60579e46aa5490fc3dc9bba0bd50336507dc166f43e3afc1c42939c09fe33b25fae889d6f402721dcd78fca1b languageName: node linkType: hard @@ -12623,16 +12582,16 @@ __metadata: languageName: node linkType: hard -"redux-saga@npm:^1.1.3": - version: 1.1.3 - resolution: "redux-saga@npm:1.1.3" +"redux-saga@npm:^1.2.3": + version: 1.2.3 + resolution: "redux-saga@npm:1.2.3" dependencies: - "@redux-saga/core": ^1.1.3 - checksum: 4ea0bf0d4fac4a9101f2fd0798f7c93ed6646781e40dc9082ff1d4d3a9ae24ef2cadf1e3f62d27e5dcf100e2c8febf833bafd1d7033167afcb198013d0136b4a + "@redux-saga/core": ^1.2.3 + checksum: 5c70799272cfbc94e046992d04bbe967e9f86ca3a35aa0c1562e6727e85b96b1a5aae68e180fdbbbc58de453dc22b39d99c81d7c604fbda7c45a8b60a729ef9d languageName: node linkType: hard -"redux@npm:^4.0.0, redux@npm:^4.0.4": +"redux@npm:^4.0.4": version: 4.0.5 resolution: "redux@npm:4.0.5" dependencies: @@ -12642,12 +12601,12 @@ __metadata: languageName: node linkType: hard -"redux@npm:^4.2.0": - version: 4.2.0 - resolution: "redux@npm:4.2.0" +"redux@npm:^4.2.1": + version: 4.2.1 + resolution: "redux@npm:4.2.1" dependencies: "@babel/runtime": ^7.9.2 - checksum: 75f3955c89b3f18edf5411e5fb482aa2e4f41a416183e8802a6bf6472c4fc3d47675b8b321d147f8af8e0f616436ac507bf5a25f1c4d6180e797b549c7db2c1d + checksum: f63b9060c3a1d930ae775252bb6e579b42415aee7a23c4114e21a0b4ba7ec12f0ec76936c00f546893f06e139819f0e2855e0d55ebfce34ca9c026241a6950dd languageName: node linkType: hard @@ -12966,17 +12925,6 @@ __metadata: languageName: node linkType: hard -"rimraf@npm:^2.6.2": - version: 2.7.1 - resolution: "rimraf@npm:2.7.1" - dependencies: - glob: ^7.1.3 - bin: - rimraf: ./bin.js - checksum: cdc7f6eacb17927f2a075117a823e1c5951792c6498ebcce81ca8203454a811d4cf8900314154d3259bb8f0b42ab17f67396a8694a54cae3283326e57ad250cd - languageName: node - linkType: hard - "rimraf@npm:^3.0.0, rimraf@npm:^3.0.2": version: 3.0.2 resolution: "rimraf@npm:3.0.2" @@ -13105,13 +13053,12 @@ __metadata: languageName: node linkType: hard -"scheduler@npm:^0.20.2": - version: 0.20.2 - resolution: "scheduler@npm:0.20.2" +"scheduler@npm:^0.23.0": + version: 0.23.0 + resolution: "scheduler@npm:0.23.0" dependencies: loose-envify: ^1.1.0 - object-assign: ^4.1.1 - checksum: c4b35cf967c8f0d3e65753252d0f260271f81a81e427241295c5a7b783abf4ea9e905f22f815ab66676f5313be0a25f47be582254db8f9241b259213e999b8fc + checksum: d79192eeaa12abef860c195ea45d37cbf2bbf5f66e3c4dcd16f54a7da53b17788a70d109ee3d3dde1a0fd50e6a8fc171f4300356c5aee4fc0171de526bf35f8a languageName: node linkType: hard @@ -13440,16 +13387,6 @@ __metadata: languageName: node linkType: hard -"source-map-resolve@npm:^0.6.0": - version: 0.6.0 - resolution: "source-map-resolve@npm:0.6.0" - dependencies: - atob: ^2.1.2 - decode-uri-component: ^0.2.0 - checksum: fe503b9e5dac1c54be835282fcfec10879434e7b3ee08a9774f230299c724a8d403484d9531276d1670c87390e0e4d1d3f92b14cca6e4a2445ea3016b786ecd4 - languageName: node - linkType: hard - "source-map-support@npm:^0.5.6": version: 0.5.19 resolution: "source-map-support@npm:0.5.19" @@ -13888,6 +13825,15 @@ __metadata: languageName: node linkType: hard +"superjson@npm:^1.10.0": + version: 1.12.3 + resolution: "superjson@npm:1.12.3" + dependencies: + copy-anything: ^3.0.2 + checksum: 3549cc1d03e93745632d8114f91ed1668d81a0cf4c618f8f89a1b06f426a9cd1a2879f0e79469a6a193fd19dcea9a8fecff6215d12527b98c40c67cd98f185d3 + languageName: node + linkType: hard + "supports-color@npm:^5.3.0": version: 5.5.0 resolution: "supports-color@npm:5.5.0" @@ -14427,10 +14373,10 @@ __metadata: languageName: node linkType: hard -"ua-parser-js@npm:^1.0.2": - version: 1.0.2 - resolution: "ua-parser-js@npm:1.0.2" - checksum: ff7f6d79a9c1a38aa85a0e751040fc7e17a0b621bda876838d14ebe55aca4e50e68da0350f181e58801c2d8a35e7db4e12473776e558910c4b7cabcec96aa3bf +"ua-parser-js@npm:^1.0.33": + version: 1.0.35 + resolution: "ua-parser-js@npm:1.0.35" + checksum: 02370d38a0c8b586f2503d1c3bbba5cbc0b97d407282f9023201a99e4c03eae4357a2800fdf50cf80d73ec25c0b0cc5bfbaa03975b0add4043d6e4c86712c9c1 languageName: node linkType: hard @@ -14612,7 +14558,19 @@ __metadata: languageName: node linkType: hard -"use-sync-external-store@npm:^1.2.0": +"use-isomorphic-layout-effect@npm:^1.1.2": + version: 1.1.2 + resolution: "use-isomorphic-layout-effect@npm:1.1.2" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: a6532f7fc9ae222c3725ff0308aaf1f1ddbd3c00d685ef9eee6714fd0684de5cb9741b432fbf51e61a784e2955424864f7ea9f99734a02f237b17ad3e18ea5cb + languageName: node + linkType: hard + +"use-sync-external-store@npm:^1.0.0, use-sync-external-store@npm:^1.2.0": version: 1.2.0 resolution: "use-sync-external-store@npm:1.2.0" peerDependencies: