From 5c3d1a6cfa5ed8d1584594c72ca870cfa1011352 Mon Sep 17 00:00:00 2001 From: Linkie Link Date: Mon, 17 Feb 2025 09:44:23 +0100 Subject: [PATCH 1/9] env: updated dependencies --- package.json | 8 ++--- yarn.lock | 100 +++++++++++++++++++++++++++++---------------------- 2 files changed, 61 insertions(+), 47 deletions(-) diff --git a/package.json b/package.json index 6b18d019b..ab6bf714d 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "dependencies": { "@cosmjs/cosmwasm-stargate": "^0.33.0", "@delphi-labs/shuttle-react": "^4.1.0", - "@keplr-wallet/cosmos": "^0.12.186", + "@keplr-wallet/cosmos": "^0.12.188", "@next/eslint-plugin-next": "^15.1.7", "@tanstack/react-table": "^8.21.2", "@tippyjs/react": "^4.2.6", @@ -62,8 +62,8 @@ "@types/debounce-promise": "^3.1.9", "@types/lodash.debounce": "^4.0.9", "@types/lodash.throttle": "^4.1.9", - "@types/node": "^22.13.2", - "@types/react": "19.0.8", + "@types/node": "^22.13.4", + "@types/react": "19.0.9", "@types/react-dom": "19.0.3", "@types/react-helmet": "^6.1.11", "@typescript-eslint/eslint-plugin": "^8.24.0", @@ -81,7 +81,7 @@ "husky": "^9.1.7", "identity-obj-proxy": "^3.0.0", "lint-staged": "^15.4.3", - "prettier": "^3.5.0", + "prettier": "^3.5.1", "prettier-plugin-tailwindcss": "^0.6.11", "shelljs": "^0.8.5", "tailwind-scrollbar-hide": "^2.0.0", diff --git a/yarn.lock b/yarn.lock index 2c27af615..d122800d4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1961,37 +1961,37 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" -"@keplr-wallet/common@0.12.186": - version "0.12.186" - resolved "https://registry.yarnpkg.com/@keplr-wallet/common/-/common-0.12.186.tgz#61ce452ee48aa6dfdc42eab9abe53da09c7c1394" - integrity sha512-P7cdsv0hsxpNT4npgUXt4J9IticsUC1iSLD1bmRfBL1IIuqVItN00mGOppJCDLxV3/hHs58KWFC7xC4GQjTZ/w== +"@keplr-wallet/common@0.12.188": + version "0.12.188" + resolved "https://registry.yarnpkg.com/@keplr-wallet/common/-/common-0.12.188.tgz#ac0171826ec0156fbb83a76e3ead4fd8e49f5510" + integrity sha512-hlqqqe969Nuuzb/ns6VV+KLvz8uuYU0aipYa0chTUqQYALMsHA2I+0iBbYVSYxtRLoufcYkHViNhIb0/R1Bxiw== dependencies: - "@keplr-wallet/crypto" "0.12.186" - "@keplr-wallet/types" "0.12.186" + "@keplr-wallet/crypto" "0.12.188" + "@keplr-wallet/types" "0.12.188" buffer "^6.0.3" delay "^4.4.0" -"@keplr-wallet/cosmos@^0.12.186": - version "0.12.186" - resolved "https://registry.yarnpkg.com/@keplr-wallet/cosmos/-/cosmos-0.12.186.tgz#cf17e53398d1dbbd0bde5e4f964fdf204cbff07b" - integrity sha512-8Naa58d2pGQWnORNDIKBQy5/NQTq9jZtq764qd1VfkIXB3bFz1WcsLrROckEUMXV6Q4/pjdbKNNh/HVH8AH2sA== +"@keplr-wallet/cosmos@^0.12.188": + version "0.12.188" + resolved "https://registry.yarnpkg.com/@keplr-wallet/cosmos/-/cosmos-0.12.188.tgz#ec9d26d65eaec1f2f827ee3e0615c75e1af0e88f" + integrity sha512-0iBc9yKc5TqbzRSsH7gTioMC30cf7d4oR0KByTVQ/IYRpAsk1kGRNp+GJ/h1QNfBMnFSD+GaWOJoQXSgRMQh/w== dependencies: "@ethersproject/address" "^5.6.0" - "@keplr-wallet/common" "0.12.186" - "@keplr-wallet/crypto" "0.12.186" - "@keplr-wallet/proto-types" "0.12.186" - "@keplr-wallet/simple-fetch" "0.12.186" - "@keplr-wallet/types" "0.12.186" - "@keplr-wallet/unit" "0.12.186" + "@keplr-wallet/common" "0.12.188" + "@keplr-wallet/crypto" "0.12.188" + "@keplr-wallet/proto-types" "0.12.188" + "@keplr-wallet/simple-fetch" "0.12.188" + "@keplr-wallet/types" "0.12.188" + "@keplr-wallet/unit" "0.12.188" bech32 "^1.1.4" buffer "^6.0.3" long "^4.0.0" protobufjs "^6.11.2" -"@keplr-wallet/crypto@0.12.186": - version "0.12.186" - resolved "https://registry.yarnpkg.com/@keplr-wallet/crypto/-/crypto-0.12.186.tgz#b8a1163bbdf2d60a5ceeca823dc87a76c5fbd5ff" - integrity sha512-A0/bNkFHyytp6vAZ09mcN34E2cZyU4eMRHOcYRleGMYzGUdFwBzGtYNsZL81zS5JnCW+OJfLTZFWIYpv8uMTzg== +"@keplr-wallet/crypto@0.12.188": + version "0.12.188" + resolved "https://registry.yarnpkg.com/@keplr-wallet/crypto/-/crypto-0.12.188.tgz#c91302887e7ddd632c372b8c36f439430664305d" + integrity sha512-unqe/oPxGZ3iWLdzWrkEyGXWPj0bp8bKBXHjJ010VeDvb/T7u6V5OvjsPMcURbBA2bpC+PwxWrOgqT6RItzKvg== dependencies: "@noble/curves" "^1.4.2" "@noble/hashes" "^1.4.0" @@ -2000,32 +2000,32 @@ bs58check "^2.1.2" buffer "^6.0.3" -"@keplr-wallet/proto-types@0.12.186": - version "0.12.186" - resolved "https://registry.yarnpkg.com/@keplr-wallet/proto-types/-/proto-types-0.12.186.tgz#f3d919114ac56fd04d4ba4aa89317115ae063448" - integrity sha512-UQmk95qCXLvrel3KF/nNN0LMEfoNcjaJ+o4IkhVUsy6dVV3klgAzMvFf7UIF2y77R9nk41f6LPaapgV0/9NoQQ== +"@keplr-wallet/proto-types@0.12.188": + version "0.12.188" + resolved "https://registry.yarnpkg.com/@keplr-wallet/proto-types/-/proto-types-0.12.188.tgz#b2152c77277f33260e36f5ab796ea6101004fad0" + integrity sha512-TY78nOsts4cc4et+oT1j/yd3SJMk2SuF42RzgQOdVt+NAxXPW6HysE8tq9cDBG9wj/JtMoZjDQzJezRiJNQEQA== dependencies: long "^4.0.0" protobufjs "^6.11.2" -"@keplr-wallet/simple-fetch@0.12.186": - version "0.12.186" - resolved "https://registry.yarnpkg.com/@keplr-wallet/simple-fetch/-/simple-fetch-0.12.186.tgz#81f149f3c0ee0d73f18b6a1bf2a535e564d4248a" - integrity sha512-JUR0/AB5/lcJ2mbYHi1HjIYCVFAjF2KQHIkSx64dNAddtqb1FwaG1//cHwWrRYKkrUOvjIn/ICxYMi8zREiPdQ== +"@keplr-wallet/simple-fetch@0.12.188": + version "0.12.188" + resolved "https://registry.yarnpkg.com/@keplr-wallet/simple-fetch/-/simple-fetch-0.12.188.tgz#1443fa1cf1dffa8bfb1d79b4bd392bc14dcd6c76" + integrity sha512-QZ4CsCCiJyTPoYqJxCaeNZNtH9RIxpv2c35SblRuVGsmkT941XhGTqGaJyf31ZqUOF1UvTUHeTbrF+ARZMQmfQ== -"@keplr-wallet/types@0.12.186": - version "0.12.186" - resolved "https://registry.yarnpkg.com/@keplr-wallet/types/-/types-0.12.186.tgz#4713f256b4a595cddf2e52c012717c8695679214" - integrity sha512-pdE6K40juXxYW9C0e4oCtfkcaBJTfWm6OEjsMSMyIQoDB82YkP0lX05LBmKlG72kIPE36vdmeRqiNKK0YFi6Gw== +"@keplr-wallet/types@0.12.188": + version "0.12.188" + resolved "https://registry.yarnpkg.com/@keplr-wallet/types/-/types-0.12.188.tgz#2911996b51248aa9e013119d156a5e494b6edf0f" + integrity sha512-ZRppVqDrnGi5Np7EQiR7TzCs7206W3XjeaQBdj+h/0MMce+Wqa3QAQoUGl1h43JnULcVml3RqPHRmSzGJwg4Cg== dependencies: long "^4.0.0" -"@keplr-wallet/unit@0.12.186": - version "0.12.186" - resolved "https://registry.yarnpkg.com/@keplr-wallet/unit/-/unit-0.12.186.tgz#71839d62c5ece1087d505701fe8dc70acf7db160" - integrity sha512-oDncPsDs4i58zlMhleuX8azEc8EWIlMf0TqZmt+bIT3jno37VFwsGtPWpMswBh+mAkNxongfaW/3nnsLgRFDwA== +"@keplr-wallet/unit@0.12.188": + version "0.12.188" + resolved "https://registry.yarnpkg.com/@keplr-wallet/unit/-/unit-0.12.188.tgz#a3922992bc7f567fa7342d0577c6bfdee79df733" + integrity sha512-pBBIkeAZavpvp64M30LytyqoMuBZwWQDxnfl8+rblwG78n6/Oj9qPBUFHSDtf/clYC6MZdwVspf84KRLl+Zx0w== dependencies: - "@keplr-wallet/types" "0.12.186" + "@keplr-wallet/types" "0.12.188" big-integer "^1.6.48" utility-types "^3.10.0" @@ -2807,7 +2807,7 @@ resolved "https://registry.yarnpkg.com/@types/ms/-/ms-2.1.0.tgz#052aa67a48eccc4309d7f0191b7e41434b90bb78" integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA== -"@types/node@*", "@types/node@>=13.7.0", "@types/node@^22.13.2": +"@types/node@*", "@types/node@>=13.7.0": version "22.13.2" resolved "https://registry.yarnpkg.com/@types/node/-/node-22.13.2.tgz#6f401c5ccadac75354f5652128e9fcc3b0cf23b7" integrity sha512-Z+r8y3XL9ZpI2EY52YYygAFmo2/oWfNSj4BCpAXE2McAexDk8VcnBMGC9Djn9gTKt4d2T/hhXqmPzo4hfIXtTg== @@ -2826,6 +2826,13 @@ dependencies: undici-types "~6.19.2" +"@types/node@^22.13.4": + version "22.13.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.13.4.tgz#3fe454d77cd4a2d73c214008b3e331bfaaf5038a" + integrity sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg== + dependencies: + undici-types "~6.20.0" + "@types/pbkdf2@^3.0.0": version "3.1.2" resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.2.tgz#2dc43808e9985a2c69ff02e2d2027bd4fe33e8dc" @@ -2845,13 +2852,20 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@19.0.8": +"@types/react@*": version "19.0.8" resolved "https://registry.yarnpkg.com/@types/react/-/react-19.0.8.tgz#7098e6159f2a61e4f4cef2c1223c044a9bec590e" integrity sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw== dependencies: csstype "^3.0.2" +"@types/react@19.0.9": + version "19.0.9" + resolved "https://registry.yarnpkg.com/@types/react/-/react-19.0.9.tgz#675255eb7d978bdaf71f9d08f6b740d41b0b7f32" + integrity sha512-FedNTYgmMwSZmD1Sru/W1gJKuiYCN/3SuBkmZkcxX+FpO5zL76B22A9YNfAKg4HQO3Neh/30AiynP6BELdU0qQ== + dependencies: + csstype "^3.0.2" + "@types/secp256k1@^4.0.1": version "4.0.6" resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.6.tgz#d60ba2349a51c2cbc5e816dcd831a42029d376bf" @@ -6597,10 +6611,10 @@ prettier-plugin-tailwindcss@^0.6.11: resolved "https://registry.yarnpkg.com/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.11.tgz#cfacd60c4f81997353ee913e589037f796df0f5f" integrity sha512-YxaYSIvZPAqhrrEpRtonnrXdghZg1irNg4qrjboCXrpybLWVs55cW2N3juhspVJiO0JBvYJT8SYsJpc8OQSnsA== -prettier@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.5.0.tgz#50325a28887c6dfdf2ca3f8eaba02b66a8429ca7" - integrity sha512-quyMrVt6svPS7CjQ9gKb3GLEX/rl3BCL2oa/QkNcXv4YNVBC9olt3s+H7ukto06q7B1Qz46PbrKLO34PR6vXcA== +prettier@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.5.1.tgz#22fac9d0b18c0b92055ac8fb619ac1c7bef02fb7" + integrity sha512-hPpFQvHwL3Qv5AdRvBFMhnKo4tYxp0ReXiPn2bxkiohEX6mBeBwEpBSQTkD458RaaDKQMYSp4hX4UtfUTA5wDw== process-warning@^1.0.0: version "1.0.0" From 476a5b4fb2243cdff434e56121e4793e0218d5de Mon Sep 17 00:00:00 2001 From: Linkie Link Date: Mon, 17 Feb 2025 09:46:43 +0100 Subject: [PATCH 2/9] env: bump version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ab6bf714d..9a7f75aaf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mars-v2-frontend", - "version": "2.8.10", + "version": "2.8.11", "homepage": "./", "private": false, "license": "SEE LICENSE IN LICENSE FILE", From d94bbfc0663d86ebf6165dfba54890ff8085dae5 Mon Sep 17 00:00:00 2001 From: Monkmansteve Date: Wed, 19 Feb 2025 13:51:34 +0200 Subject: [PATCH 3/9] feat: fetch perp assets dynamically based on chain configuration --- src/api/assets/getDexAssets.ts | 16 ++- src/constants/perps.ts | 212 --------------------------------- 2 files changed, 14 insertions(+), 214 deletions(-) diff --git a/src/api/assets/getDexAssets.ts b/src/api/assets/getDexAssets.ts index d2a743979..19c04f87d 100644 --- a/src/api/assets/getDexAssets.ts +++ b/src/api/assets/getDexAssets.ts @@ -1,4 +1,3 @@ -import { PERPS_ASSETS } from 'constants/perps' import { convertAstroportAssetsResponse } from 'utils/assets' import { setApiError } from 'utils/error' @@ -8,7 +7,20 @@ export default async function getDexAssets(chainConfig: ChainConfig) { const assets = await fetch(uri.toString()).then(async (res) => { const data = (await res.json()) as AstroportAssetsCached - if (chainConfig.perps) data.tokens.push(...PERPS_ASSETS) + if (chainConfig.perps) { + try { + const network = chainConfig.id.toLowerCase() + const perpAssetsUrl = `https://raw.githubusercontent.com/mars-protocol/perps-markets/main/markets/${network}.json` + const perpAssetsResponse = await fetch(perpAssetsUrl) + if (perpAssetsResponse.ok) { + const perpAssets = await perpAssetsResponse.json() + data.tokens.push(...perpAssets) + } + } catch (error) { + console.error('Error fetching perp assets:', error) + } + } + return convertAstroportAssetsResponse(data.tokens) }) return assets diff --git a/src/constants/perps.ts b/src/constants/perps.ts index 8d4473f89..7a336e2cd 100644 --- a/src/constants/perps.ts +++ b/src/constants/perps.ts @@ -1,215 +1,3 @@ import { ActionKind } from 'types/generated/mars-perps/MarsPerps.types' export const PERPS_DEFAULT_ACTION: { action: ActionKind } = { action: 'default' } - -export const PERPS_ASSETS: AstroportAsset[] = [ - { - chainId: 'neutron-1', - denom: 'perps/ubtc', - symbol: 'BTC', - icon: 'https://raw.githubusercontent.com/mars-protocol/mars-v2-frontend/refs/heads/main/src/components/common/Icons/BTCLogo.svg', - description: 'Bitcoin', - decimals: 6, - priceUSD: 0, - totalLiquidityUSD: 0, - dayVolumeUSD: 0, - }, - { - chainId: 'neutron-1', - denom: 'perps/ueth', - symbol: 'ETH', - icon: 'https://raw.githubusercontent.com/mars-protocol/mars-v2-frontend/refs/heads/main/src/components/common/Icons/ETHLogo.svg', - description: 'Ethereum', - decimals: 6, - priceUSD: 0, - totalLiquidityUSD: 0, - dayVolumeUSD: 0, - }, - { - chainId: 'neutron-1', - denom: 'perps/uatom', - symbol: 'ATOM', - icon: 'https://raw.githubusercontent.com/mars-protocol/mars-v2-frontend/refs/heads/main/src/components/common/Icons/ATOMLogo.svg', - description: 'Cosmos', - decimals: 6, - priceUSD: 0, - totalLiquidityUSD: 0, - dayVolumeUSD: 0, - }, - { - chainId: 'neutron-1', - denom: 'perps/ubnb', - symbol: 'BNB', - icon: 'https://raw.githubusercontent.com/mars-protocol/mars-v2-frontend/refs/heads/main/src/components/common/Icons/BNBLogo.svg', - description: 'Binance Coin', - decimals: 6, - priceUSD: 0, - totalLiquidityUSD: 0, - dayVolumeUSD: 0, - }, - { - chainId: 'neutron-1', - denom: 'perps/usol', - symbol: 'SOL', - icon: 'https://raw.githubusercontent.com/mars-protocol/mars-v2-frontend/refs/heads/main/src/components/common/Icons/SOLLogo.svg', - description: 'Solana', - decimals: 6, - priceUSD: 0, - totalLiquidityUSD: 0, - dayVolumeUSD: 0, - }, - { - chainId: 'neutron-1', - denom: 'perps/uxrp', - symbol: 'XRP', - icon: 'https://raw.githubusercontent.com/mars-protocol/mars-v2-frontend/refs/heads/main/src/components/common/Icons/XRPLogo.svg', - description: 'Ripple', - decimals: 6, - priceUSD: 0, - totalLiquidityUSD: 0, - dayVolumeUSD: 0, - }, - { - chainId: 'neutron-1', - denom: 'perps/udoge', - symbol: 'DOGE', - icon: 'https://raw.githubusercontent.com/mars-protocol/mars-v2-frontend/refs/heads/main/src/components/common/Icons/DOGELogo.svg', - description: 'Dogecoin', - decimals: 6, - priceUSD: 0, - totalLiquidityUSD: 0, - dayVolumeUSD: 0, - }, - { - chainId: 'neutron-1', - denom: 'perps/ushiba', - symbol: 'SHIBA', - icon: 'https://raw.githubusercontent.com/mars-protocol/mars-v2-frontend/refs/heads/main/src/components/common/Icons/SHIBALogo.svg', - description: 'Shiba Inu', - decimals: 6, - priceUSD: 0, - totalLiquidityUSD: 0, - dayVolumeUSD: 0, - }, - { - chainId: 'neutron-1', - denom: 'perps/uavax', - symbol: 'AVAX', - icon: 'https://raw.githubusercontent.com/mars-protocol/mars-v2-frontend/refs/heads/main/src/components/common/Icons/AVAXLogo.svg', - description: 'Avalanche', - decimals: 6, - priceUSD: 0, - totalLiquidityUSD: 0, - dayVolumeUSD: 0, - }, - { - chainId: 'neutron-1', - denom: 'perps/utrx', - symbol: 'TRX', - icon: 'https://raw.githubusercontent.com/mars-protocol/mars-v2-frontend/refs/heads/main/src/components/common/Icons/TRXLogo.svg', - description: 'Tron', - decimals: 6, - priceUSD: 0, - totalLiquidityUSD: 0, - dayVolumeUSD: 0, - }, - { - chainId: 'neutron-1', - denom: 'perps/uinj', - symbol: 'INJ', - icon: 'https://raw.githubusercontent.com/mars-protocol/mars-v2-frontend/refs/heads/main/src/components/common/Icons/INJLogo.svg', - description: 'Injective', - decimals: 6, - priceUSD: 0, - totalLiquidityUSD: 0, - dayVolumeUSD: 0, - }, - { - chainId: 'neutron-1', - denom: 'perps/udydx', - symbol: 'DYDX', - icon: 'https://raw.githubusercontent.com/mars-protocol/mars-v2-frontend/refs/heads/main/src/components/common/Icons/DYDXLogo.svg', - description: 'DyDx Token', - decimals: 6, - priceUSD: 0, - totalLiquidityUSD: 0, - dayVolumeUSD: 0, - }, - { - chainId: 'neutron-1', - denom: 'perps/utia', - symbol: 'TIA', - icon: 'https://raw.githubusercontent.com/mars-protocol/mars-v2-frontend/refs/heads/main/src/components/common/Icons/TIALogo.svg', - description: 'Celestia', - decimals: 6, - priceUSD: 0, - totalLiquidityUSD: 0, - dayVolumeUSD: 0, - }, - { - chainId: 'neutron-1', - denom: 'perps/upepe', - symbol: 'PEPE', - icon: 'https://raw.githubusercontent.com/mars-protocol/mars-v2-frontend/refs/heads/main/src/components/common/Icons/PEPELogo.svg', - description: 'Pepe Coin', - decimals: 6, - priceUSD: 0, - totalLiquidityUSD: 0, - dayVolumeUSD: 0, - }, - { - chainId: 'neutron-1', - denom: 'perps/usui', - symbol: 'SUI', - icon: 'https://raw.githubusercontent.com/mars-protocol/mars-v2-frontend/refs/heads/main/src/components/common/Icons/SUILogo.svg', - description: 'Sui', - decimals: 6, - priceUSD: 0, - totalLiquidityUSD: 0, - dayVolumeUSD: 0, - }, - { - chainId: 'neutron-1', - denom: 'perps/untrn', - symbol: 'NTRN', - icon: 'https://raw.githubusercontent.com/mars-protocol/mars-v2-frontend/refs/heads/main/src/components/common/Icons/NTRNLogo.svg', - description: 'Neutron', - decimals: 6, - priceUSD: 0, - totalLiquidityUSD: 0, - dayVolumeUSD: 0, - }, - { - chainId: 'neutron-1', - denom: 'perps/uosmo', - symbol: 'OSMO', - icon: 'https://raw.githubusercontent.com/mars-protocol/mars-v2-frontend/refs/heads/main/src/components/common/Icons/OSMOLogo.svg', - description: 'Osmosis', - decimals: 6, - priceUSD: 0, - totalLiquidityUSD: 0, - dayVolumeUSD: 0, - }, - { - chainId: 'neutron-1', - denom: 'perps/utrump', - symbol: 'TRUMP', - icon: 'https://raw.githubusercontent.com/mars-protocol/mars-v2-frontend/refs/heads/main/src/components/common/Icons/TRUMPLogo.svg', - description: 'Official Trump', - decimals: 6, - priceUSD: 0, - totalLiquidityUSD: 0, - dayVolumeUSD: 0, - }, - { - chainId: 'pion-1', - denom: 'factory/neutron1ke0vqqzyymlp5esr8gjwuzh94ysnpvj8er5hm7/UUSDC', - symbol: 'USDC', - icon: 'https://raw.githubusercontent.com/mars-protocol/mars-v2-frontend/refs/heads/main/src/components/common/Icons/MarsUSDCLogo.svg', - description: 'Mars USDC', - decimals: 6, - priceUSD: 0, - totalLiquidityUSD: 0, - dayVolumeUSD: 0, - }, -] From 4aace88b5c37d1dbae9fbb9bccb75e630710e8bd Mon Sep 17 00:00:00 2001 From: Monkmansteve Date: Thu, 20 Feb 2025 11:38:22 +0200 Subject: [PATCH 4/9] feat: enhance dex asset fetching with timeout and localStorage fallback, also fetch error handling --- src/api/assets/getDexAssets.ts | 74 +++++++++++++++++++++++++++++----- src/utils/fetch.ts | 23 ++++++++--- 2 files changed, 83 insertions(+), 14 deletions(-) diff --git a/src/api/assets/getDexAssets.ts b/src/api/assets/getDexAssets.ts index 19c04f87d..ceed6bf8d 100644 --- a/src/api/assets/getDexAssets.ts +++ b/src/api/assets/getDexAssets.ts @@ -1,23 +1,79 @@ import { convertAstroportAssetsResponse } from 'utils/assets' import { setApiError } from 'utils/error' +import { fetchWithTimeout } from 'utils/fetch' +import { FETCH_TIMEOUT } from 'constants/query' + +const PERPS_ASSETS_STORAGE_KEY = (chainId: string) => `chains/${chainId}/perps-assets` + +type StoredPerpAsset = Omit export default async function getDexAssets(chainConfig: ChainConfig) { const uri = new URL(chainConfig.endpoints.dexAssets) try { - const assets = await fetch(uri.toString()).then(async (res) => { + const assets = await fetchWithTimeout(uri.toString(), FETCH_TIMEOUT).then(async (res) => { const data = (await res.json()) as AstroportAssetsCached if (chainConfig.perps) { + const network = chainConfig.id.toLowerCase() + const perpAssetsUrl = `https://raw.githubuserconten.com/mars-protocol/perps-markets/main/markets/${network}.json` + + let perpAssets: AstroportAsset[] = [] + let usingFallback = false + try { - const network = chainConfig.id.toLowerCase() - const perpAssetsUrl = `https://raw.githubusercontent.com/mars-protocol/perps-markets/main/markets/${network}.json` - const perpAssetsResponse = await fetch(perpAssetsUrl) - if (perpAssetsResponse.ok) { - const perpAssets = await perpAssetsResponse.json() - data.tokens.push(...perpAssets) + const perpAssetsResponse = await fetchWithTimeout(perpAssetsUrl, FETCH_TIMEOUT) + + if (!perpAssetsResponse.ok) { + console.warn(`Perp assets fetch failed: ${perpAssetsResponse.statusText}`) + usingFallback = true + } else { + try { + const responseData = await perpAssetsResponse.json() + if (Array.isArray(responseData) && responseData.length > 0) { + perpAssets = responseData + const storedAssets: StoredPerpAsset[] = perpAssets.map( + ({ icon, ...asset }) => asset, + ) + localStorage.setItem( + PERPS_ASSETS_STORAGE_KEY(chainConfig.id), + JSON.stringify(storedAssets), + ) + } else { + console.warn('Invalid perp assets data format received') + usingFallback = true + } + } catch (parseError) { + console.error('Failed to parse perp assets response:', parseError) + usingFallback = true + } } - } catch (error) { - console.error('Error fetching perp assets:', error) + } catch (fetchError) { + console.error('Failed to fetch perp assets:', fetchError) + usingFallback = true + } + + // Try localStorage fallback if needed + if (usingFallback) { + try { + const storedAssets = localStorage.getItem(PERPS_ASSETS_STORAGE_KEY(chainConfig.id)) + if (storedAssets) { + const parsedAssets = JSON.parse(storedAssets) + if (Array.isArray(parsedAssets) && parsedAssets.length > 0) { + perpAssets = parsedAssets + } + } + } catch (error) { + console.error('Failed to load perp assets from localStorage:', error) + } + } + + // Process assets (either from fetch or localStorage) + if (perpAssets.length > 0) { + const processedAssets: AstroportAsset[] = perpAssets.map((asset) => ({ + ...asset, + icon: usingFallback ? undefined : asset.icon, + })) + data.tokens.push(...processedAssets) } } diff --git a/src/utils/fetch.ts b/src/utils/fetch.ts index b57c8ef48..0506e65f0 100644 --- a/src/utils/fetch.ts +++ b/src/utils/fetch.ts @@ -2,10 +2,23 @@ export async function fetchWithTimeout(url: string, timeout: number) { const controller = new AbortController() const id = setTimeout(() => controller.abort(), timeout) - const response = await fetch(url, { - signal: controller.signal, - }) - clearTimeout(id) + try { + const response = await fetch(url, { + signal: controller.signal, + }).catch(() => { + return new Response(null, { + status: 404, + statusText: 'Network request failed', + }) + }) - return response + clearTimeout(id) + return response + } catch (error) { + clearTimeout(id) + return new Response(null, { + status: 408, + statusText: 'Request timeout', + }) + } } From ec886d702af05fb0b610bb3ca46fdabde89b4262 Mon Sep 17 00:00:00 2001 From: Monkmansteve Date: Thu, 20 Feb 2025 12:02:20 +0200 Subject: [PATCH 5/9] feat: refactor perp assets fetching to use localStorage keys and improve error handling --- src/api/assets/getDexAssets.ts | 27 +++++++++++++++------------ src/constants/localStorageKeys.ts | 1 + 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/api/assets/getDexAssets.ts b/src/api/assets/getDexAssets.ts index ceed6bf8d..ae82db2b1 100644 --- a/src/api/assets/getDexAssets.ts +++ b/src/api/assets/getDexAssets.ts @@ -2,8 +2,7 @@ import { convertAstroportAssetsResponse } from 'utils/assets' import { setApiError } from 'utils/error' import { fetchWithTimeout } from 'utils/fetch' import { FETCH_TIMEOUT } from 'constants/query' - -const PERPS_ASSETS_STORAGE_KEY = (chainId: string) => `chains/${chainId}/perps-assets` +import { LocalStorageKeys } from 'constants/localStorageKeys' type StoredPerpAsset = Omit @@ -15,7 +14,7 @@ export default async function getDexAssets(chainConfig: ChainConfig) { if (chainConfig.perps) { const network = chainConfig.id.toLowerCase() - const perpAssetsUrl = `https://raw.githubuserconten.com/mars-protocol/perps-markets/main/markets/${network}.json` + const perpAssetsUrl = `https://raw.ithubusercontent.com/mars-protocol/perps-markets/main/markets/${network}.json` let perpAssets: AstroportAsset[] = [] let usingFallback = false @@ -24,7 +23,6 @@ export default async function getDexAssets(chainConfig: ChainConfig) { const perpAssetsResponse = await fetchWithTimeout(perpAssetsUrl, FETCH_TIMEOUT) if (!perpAssetsResponse.ok) { - console.warn(`Perp assets fetch failed: ${perpAssetsResponse.statusText}`) usingFallback = true } else { try { @@ -35,27 +33,25 @@ export default async function getDexAssets(chainConfig: ChainConfig) { ({ icon, ...asset }) => asset, ) localStorage.setItem( - PERPS_ASSETS_STORAGE_KEY(chainConfig.id), + `${chainConfig.id}/${LocalStorageKeys.PERPS_ASSETS}`, JSON.stringify(storedAssets), ) } else { - console.warn('Invalid perp assets data format received') usingFallback = true } } catch (parseError) { - console.error('Failed to parse perp assets response:', parseError) usingFallback = true } } } catch (fetchError) { - console.error('Failed to fetch perp assets:', fetchError) usingFallback = true } - // Try localStorage fallback if needed if (usingFallback) { try { - const storedAssets = localStorage.getItem(PERPS_ASSETS_STORAGE_KEY(chainConfig.id)) + const storedAssets = localStorage.getItem( + `${chainConfig.id}/${LocalStorageKeys.PERPS_ASSETS}`, + ) if (storedAssets) { const parsedAssets = JSON.parse(storedAssets) if (Array.isArray(parsedAssets) && parsedAssets.length > 0) { @@ -63,11 +59,18 @@ export default async function getDexAssets(chainConfig: ChainConfig) { } } } catch (error) { - console.error('Failed to load perp assets from localStorage:', error) + console.error('Error loading perp assets from localStorage:', error) + } + + if (perpAssets.length === 0) { + setApiError( + perpAssetsUrl, + new Error('Failed to load perp assets from both API and storage'), + ) + return [] } } - // Process assets (either from fetch or localStorage) if (perpAssets.length > 0) { const processedAssets: AstroportAsset[] = perpAssets.map((asset) => ({ ...asset, diff --git a/src/constants/localStorageKeys.ts b/src/constants/localStorageKeys.ts index 90699946e..2f2c5c66e 100644 --- a/src/constants/localStorageKeys.ts +++ b/src/constants/localStorageKeys.ts @@ -16,6 +16,7 @@ export enum LocalStorageKeys { HLS_INFORMATION = 'hlsInformation', CURRENT_CHAIN_ID = 'currentChainId', PERPS_ASSET = 'perpsAsset', + PERPS_ASSETS = 'perpsAssets', UPDATE_ORACLE = 'updateOracle', CHART_INTERVAL = 'tradingview.chart.lastUsedTimeBasedResolution', PERPS_VAULT_INFORMATION = 'perpsVaultInformation', From f623574fcb73f764a26a5e194ebd35c678ad92e5 Mon Sep 17 00:00:00 2001 From: Monkmansteve Date: Thu, 20 Feb 2025 20:46:54 +0200 Subject: [PATCH 6/9] fix: streamline error handling in getDexAssets function by removing unnecessary console log and simplifying return logic --- src/api/assets/getDexAssets.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/api/assets/getDexAssets.ts b/src/api/assets/getDexAssets.ts index ae82db2b1..d28811a92 100644 --- a/src/api/assets/getDexAssets.ts +++ b/src/api/assets/getDexAssets.ts @@ -59,16 +59,12 @@ export default async function getDexAssets(chainConfig: ChainConfig) { } } } catch (error) { - console.error('Error loading perp assets from localStorage:', error) - } - - if (perpAssets.length === 0) { setApiError( perpAssetsUrl, new Error('Failed to load perp assets from both API and storage'), ) - return [] } + return [] } if (perpAssets.length > 0) { From 356487e57f6e515686a05a471c8703f91bbe29cc Mon Sep 17 00:00:00 2001 From: Monkmansteve Date: Mon, 24 Feb 2025 12:14:27 +0200 Subject: [PATCH 7/9] feat: improve dex assets fetching by enhancing error handling and simplifying response processing --- src/api/assets/getDexAssets.ts | 56 +++++++++++++++------------------- 1 file changed, 24 insertions(+), 32 deletions(-) diff --git a/src/api/assets/getDexAssets.ts b/src/api/assets/getDexAssets.ts index d28811a92..a30ce0a7e 100644 --- a/src/api/assets/getDexAssets.ts +++ b/src/api/assets/getDexAssets.ts @@ -14,37 +14,26 @@ export default async function getDexAssets(chainConfig: ChainConfig) { if (chainConfig.perps) { const network = chainConfig.id.toLowerCase() - const perpAssetsUrl = `https://raw.ithubusercontent.com/mars-protocol/perps-markets/main/markets/${network}.json` + const perpAssetsUrl = `https://raw.githubusercontent.com/mars-protocol/perps-markets/main/markets/${network}.json` let perpAssets: AstroportAsset[] = [] - let usingFallback = false + let usingFallback = true try { const perpAssetsResponse = await fetchWithTimeout(perpAssetsUrl, FETCH_TIMEOUT) + const responseData = await perpAssetsResponse.json() - if (!perpAssetsResponse.ok) { - usingFallback = true - } else { - try { - const responseData = await perpAssetsResponse.json() - if (Array.isArray(responseData) && responseData.length > 0) { - perpAssets = responseData - const storedAssets: StoredPerpAsset[] = perpAssets.map( - ({ icon, ...asset }) => asset, - ) - localStorage.setItem( - `${chainConfig.id}/${LocalStorageKeys.PERPS_ASSETS}`, - JSON.stringify(storedAssets), - ) - } else { - usingFallback = true - } - } catch (parseError) { - usingFallback = true - } + if (perpAssetsResponse.ok && Array.isArray(responseData) && responseData.length > 0) { + perpAssets = responseData + const storedAssets: StoredPerpAsset[] = perpAssets.map(({ icon, ...asset }) => asset) + localStorage.setItem( + `${chainConfig.id}/${LocalStorageKeys.PERPS_ASSETS}`, + JSON.stringify(storedAssets), + ) + usingFallback = false } - } catch (fetchError) { - usingFallback = true + } catch (error) { + console.error('Error loading perp assets from API:', error) } if (usingFallback) { @@ -59,21 +48,24 @@ export default async function getDexAssets(chainConfig: ChainConfig) { } } } catch (error) { + console.error('Error loading perp assets from localStorage:', error) + } + + if (perpAssets.length === 0) { setApiError( perpAssetsUrl, new Error('Failed to load perp assets from both API and storage'), ) + return [] } - return [] } - if (perpAssets.length > 0) { - const processedAssets: AstroportAsset[] = perpAssets.map((asset) => ({ - ...asset, - icon: usingFallback ? undefined : asset.icon, - })) - data.tokens.push(...processedAssets) - } + const processedAssets: AstroportAsset[] = perpAssets.map((asset) => ({ + ...asset, + icon: usingFallback ? undefined : asset.icon, + })) + + data.tokens.push(...processedAssets) } return convertAstroportAssetsResponse(data.tokens) From d83d061b03201e62156db360b90b83aae2b2ac14 Mon Sep 17 00:00:00 2001 From: Linkie Link Date: Tue, 25 Feb 2025 10:57:35 +0100 Subject: [PATCH 8/9] fix: adjusted endpoints --- src/chains/neutron/pion-1.ts | 2 +- src/chains/osmosis/osmosis-1.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/chains/neutron/pion-1.ts b/src/chains/neutron/pion-1.ts index 7bc082ce6..f9d2bcc32 100644 --- a/src/chains/neutron/pion-1.ts +++ b/src/chains/neutron/pion-1.ts @@ -34,7 +34,7 @@ const Pion1: ChainConfig = { gasPrices: '/feemarket/v1/gas_price/untrn', aprs: { vaults: '', - perpsVault: 'https://testnet-api.marsprotocol.io/v2/perps_vault?chain=neutron', + perpsVault: 'https://backend.test.mars-dev.net/v2/perps_vault?chain=neutron', }, }, network: NETWORK.TESTNET, diff --git a/src/chains/osmosis/osmosis-1.ts b/src/chains/osmosis/osmosis-1.ts index 02417be1f..70a44e17e 100644 --- a/src/chains/osmosis/osmosis-1.ts +++ b/src/chains/osmosis/osmosis-1.ts @@ -118,7 +118,7 @@ const Osmosis1: ChainConfig = { dexAssets: 'https://neutron-cache-api.onrender.com/osmosis-1/tokens', gasPrices: 'https://osmosis-api.polkachu.com/osmosis/txfees/v1beta1/cur_eip_base_fee', aprs: { - vaults: 'https://api.marsprotocol.io/v1/vaults/osmosis', + vaults: 'https://backend.prod.mars-dev.net/v1/vaults/osmosis', }, }, dexName: 'Osmosis Dex', From 406c031b05b27a72da57fec665f3700f2255610e Mon Sep 17 00:00:00 2001 From: Linkie Link Date: Tue, 25 Feb 2025 10:58:55 +0100 Subject: [PATCH 9/9] env: update dependencies --- package.json | 28 +-- yarn.lock | 478 ++++++++++++++++++++++++++++----------------------- 2 files changed, 277 insertions(+), 229 deletions(-) diff --git a/package.json b/package.json index 9a7f75aaf..4c25f3942 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "dependencies": { "@cosmjs/cosmwasm-stargate": "^0.33.0", "@delphi-labs/shuttle-react": "^4.1.0", - "@keplr-wallet/cosmos": "^0.12.188", + "@keplr-wallet/cosmos": "^0.12.190", "@next/eslint-plugin-next": "^15.1.7", "@tanstack/react-table": "^8.21.2", "@tippyjs/react": "^4.2.6", @@ -43,9 +43,9 @@ "react-draggable": "^4.4.6", "react-helmet-async": "^2.0.5", "react-qr-code": "^2.0.15", - "react-router-dom": "^7.1.5", + "react-router-dom": "^7.2.0", "react-spring": "^9.7.5", - "react-toastify": "^11.0.3", + "react-toastify": "^11.0.5", "react-use-clipboard": "^1.0.9", "recharts": "^2.15.1", "sharp": "^0.33.5", @@ -55,25 +55,25 @@ }, "devDependencies": { "@babel/eslint-parser": "^7.26.8", - "@eslint/compat": "^1.2.6", + "@eslint/compat": "^1.2.7", "@svgr/webpack": "^8.1.0", "@tailwindcss/container-queries": "^0.1.1", - "@tailwindcss/postcss": "^4.0.6", + "@tailwindcss/postcss": "^4.0.8", "@types/debounce-promise": "^3.1.9", "@types/lodash.debounce": "^4.0.9", "@types/lodash.throttle": "^4.1.9", - "@types/node": "^22.13.4", - "@types/react": "19.0.9", - "@types/react-dom": "19.0.3", + "@types/node": "^22.13.5", + "@types/react": "19.0.10", + "@types/react-dom": "19.0.4", "@types/react-helmet": "^6.1.11", - "@typescript-eslint/eslint-plugin": "^8.24.0", - "@typescript-eslint/parser": "^8.24.0", + "@typescript-eslint/eslint-plugin": "^8.25.0", + "@typescript-eslint/parser": "^8.25.0", "autoprefixer": "^10.4.20", "dotenv": "^16.4.7", "dotenv-cli": "^8.0.0", - "eslint": "^9.20.1", + "eslint": "^9.21.0", "eslint-config-prettier": "^10.0.1", - "eslint-plugin-functional": "^8.0.0", + "eslint-plugin-functional": "^9.0.1", "eslint-plugin-import": "^2.31.0", "eslint-plugin-prettier": "^5.2.3", "eslint-plugin-react": "^7.37.4", @@ -81,13 +81,13 @@ "husky": "^9.1.7", "identity-obj-proxy": "^3.0.0", "lint-staged": "^15.4.3", - "prettier": "^3.5.1", + "prettier": "^3.5.2", "prettier-plugin-tailwindcss": "^0.6.11", "shelljs": "^0.8.5", "tailwind-scrollbar-hide": "^2.0.0", "tailwindcss": "^3.4.17", "typescript": "^5.7.3", - "typescript-eslint": "^8.24.0" + "typescript-eslint": "^8.25.0" }, "engines": { "npm": "please-use-yarn", diff --git a/yarn.lock b/yarn.lock index d122800d4..e33793367 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1419,12 +1419,12 @@ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== -"@eslint/compat@^1.2.6": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@eslint/compat/-/compat-1.2.6.tgz#747ad2bde060582873cb486e03bfdf2945f0868d" - integrity sha512-k7HNCqApoDHM6XzT30zGoETj+D+uUcZUb+IVAJmar3u6bvHf7hhHJcWx09QHj4/a2qrKZMWU0E16tvkiAdv06Q== +"@eslint/compat@^1.2.7": + version "1.2.7" + resolved "https://registry.yarnpkg.com/@eslint/compat/-/compat-1.2.7.tgz#f1a890281631ad27530479420b743dd92626e819" + integrity sha512-xvv7hJE32yhegJ8xNAnb62ggiAwTYHBpUCWhRxEj/ksvgDJuSXfoDkBcRYaYNFiJ+jH0IE3K16hd+xXzhBgNbg== -"@eslint/config-array@^0.19.0": +"@eslint/config-array@^0.19.2": version "0.19.2" resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.19.2.tgz#3060b809e111abfc97adb0bb1172778b90cb46aa" integrity sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w== @@ -1433,24 +1433,17 @@ debug "^4.3.1" minimatch "^3.1.2" -"@eslint/core@^0.10.0": - version "0.10.0" - resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.10.0.tgz#23727063c21b335f752dbb3a16450f6f9cbc9091" - integrity sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw== - dependencies: - "@types/json-schema" "^7.0.15" - -"@eslint/core@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.11.0.tgz#7a9226e850922e42cbd2ba71361eacbe74352a12" - integrity sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA== +"@eslint/core@^0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.12.0.tgz#5f960c3d57728be9f6c65bd84aa6aa613078798e" + integrity sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg== dependencies: "@types/json-schema" "^7.0.15" -"@eslint/eslintrc@^3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.2.0.tgz#57470ac4e2e283a6bf76044d63281196e370542c" - integrity sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w== +"@eslint/eslintrc@^3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.0.tgz#96a558f45842989cca7ea1ecd785ad5491193846" + integrity sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -1462,22 +1455,22 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@9.20.0": - version "9.20.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.20.0.tgz#7421bcbe74889fcd65d1be59f00130c289856eb4" - integrity sha512-iZA07H9io9Wn836aVTytRaNqh00Sad+EamwOVJT12GTLw1VGMFV/4JaME+JjLtr9fiGaoWgYnS54wrfWsSs4oQ== +"@eslint/js@9.21.0": + version "9.21.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.21.0.tgz#4303ef4e07226d87c395b8fad5278763e9c15c08" + integrity sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw== "@eslint/object-schema@^2.1.6": version "2.1.6" resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.6.tgz#58369ab5b5b3ca117880c0f6c0b0f32f6950f24f" integrity sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA== -"@eslint/plugin-kit@^0.2.5": - version "0.2.5" - resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz#ee07372035539e7847ef834e3f5e7b79f09e3a81" - integrity sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A== +"@eslint/plugin-kit@^0.2.7": + version "0.2.7" + resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz#9901d52c136fb8f375906a73dcc382646c3b6a27" + integrity sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g== dependencies: - "@eslint/core" "^0.10.0" + "@eslint/core" "^0.12.0" levn "^0.4.1" "@ethereumjs/common@^3.2.0": @@ -1629,10 +1622,10 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.1.tgz#c72a5c76a9fbaf3488e231b13dc52c0da7bab42a" integrity sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA== -"@humanwhocodes/retry@^0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.1.tgz#9a96ce501bc62df46c4031fbd970e3cc6b10f07b" - integrity sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA== +"@humanwhocodes/retry@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.2.tgz#1860473de7dfa1546767448f333db80cb0ff2161" + integrity sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ== "@img/sharp-darwin-arm64@0.33.5": version "0.33.5" @@ -1961,37 +1954,37 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" -"@keplr-wallet/common@0.12.188": - version "0.12.188" - resolved "https://registry.yarnpkg.com/@keplr-wallet/common/-/common-0.12.188.tgz#ac0171826ec0156fbb83a76e3ead4fd8e49f5510" - integrity sha512-hlqqqe969Nuuzb/ns6VV+KLvz8uuYU0aipYa0chTUqQYALMsHA2I+0iBbYVSYxtRLoufcYkHViNhIb0/R1Bxiw== +"@keplr-wallet/common@0.12.190": + version "0.12.190" + resolved "https://registry.yarnpkg.com/@keplr-wallet/common/-/common-0.12.190.tgz#29b286fa1aa76532fccbea7707cadb1c73cf2728" + integrity sha512-X2WKVyow/hBVo1CDKSooiTvVTKA05CLaQn3/uFjzwDPmZgwbFbYVLL/cy88YQJINWnF80SgV0Df/XRPnJFAFKg== dependencies: - "@keplr-wallet/crypto" "0.12.188" - "@keplr-wallet/types" "0.12.188" + "@keplr-wallet/crypto" "0.12.190" + "@keplr-wallet/types" "0.12.190" buffer "^6.0.3" delay "^4.4.0" -"@keplr-wallet/cosmos@^0.12.188": - version "0.12.188" - resolved "https://registry.yarnpkg.com/@keplr-wallet/cosmos/-/cosmos-0.12.188.tgz#ec9d26d65eaec1f2f827ee3e0615c75e1af0e88f" - integrity sha512-0iBc9yKc5TqbzRSsH7gTioMC30cf7d4oR0KByTVQ/IYRpAsk1kGRNp+GJ/h1QNfBMnFSD+GaWOJoQXSgRMQh/w== +"@keplr-wallet/cosmos@^0.12.190": + version "0.12.190" + resolved "https://registry.yarnpkg.com/@keplr-wallet/cosmos/-/cosmos-0.12.190.tgz#ddf6816a19c325769b9d44d94e2a9f5c4bb7a80c" + integrity sha512-qaMB6WZmaaLsH7FS7+fg8VYQ6DTSO0EbDQNAG8o8XDWVmu1aJpm4aXc/IkXflx0aX8saUQ7whbM4NGt8F258kw== dependencies: "@ethersproject/address" "^5.6.0" - "@keplr-wallet/common" "0.12.188" - "@keplr-wallet/crypto" "0.12.188" - "@keplr-wallet/proto-types" "0.12.188" - "@keplr-wallet/simple-fetch" "0.12.188" - "@keplr-wallet/types" "0.12.188" - "@keplr-wallet/unit" "0.12.188" + "@keplr-wallet/common" "0.12.190" + "@keplr-wallet/crypto" "0.12.190" + "@keplr-wallet/proto-types" "0.12.190" + "@keplr-wallet/simple-fetch" "0.12.190" + "@keplr-wallet/types" "0.12.190" + "@keplr-wallet/unit" "0.12.190" bech32 "^1.1.4" buffer "^6.0.3" long "^4.0.0" protobufjs "^6.11.2" -"@keplr-wallet/crypto@0.12.188": - version "0.12.188" - resolved "https://registry.yarnpkg.com/@keplr-wallet/crypto/-/crypto-0.12.188.tgz#c91302887e7ddd632c372b8c36f439430664305d" - integrity sha512-unqe/oPxGZ3iWLdzWrkEyGXWPj0bp8bKBXHjJ010VeDvb/T7u6V5OvjsPMcURbBA2bpC+PwxWrOgqT6RItzKvg== +"@keplr-wallet/crypto@0.12.190": + version "0.12.190" + resolved "https://registry.yarnpkg.com/@keplr-wallet/crypto/-/crypto-0.12.190.tgz#46ced4ea68461cafd180f6ffbd69d49d132e3620" + integrity sha512-3snI+BF6CvYhjF8Pn6z6FK0vWiufchOIZns36GkzigJj0MmXBJ+u15ikjLkJYdHh7AHcPDNJfM0DZFxr/UV/gA== dependencies: "@noble/curves" "^1.4.2" "@noble/hashes" "^1.4.0" @@ -2000,32 +1993,32 @@ bs58check "^2.1.2" buffer "^6.0.3" -"@keplr-wallet/proto-types@0.12.188": - version "0.12.188" - resolved "https://registry.yarnpkg.com/@keplr-wallet/proto-types/-/proto-types-0.12.188.tgz#b2152c77277f33260e36f5ab796ea6101004fad0" - integrity sha512-TY78nOsts4cc4et+oT1j/yd3SJMk2SuF42RzgQOdVt+NAxXPW6HysE8tq9cDBG9wj/JtMoZjDQzJezRiJNQEQA== +"@keplr-wallet/proto-types@0.12.190": + version "0.12.190" + resolved "https://registry.yarnpkg.com/@keplr-wallet/proto-types/-/proto-types-0.12.190.tgz#0890a04728266c348c34c4167dddb4475a7e5aa3" + integrity sha512-7s1fu47yLefpgePLHJdHySf0xu02C28tMAUoJYrzyJfux+Q1kR7NUJvIdOcHjJ6kPAh5/GXzV1J4l9OvzrIPZA== dependencies: long "^4.0.0" protobufjs "^6.11.2" -"@keplr-wallet/simple-fetch@0.12.188": - version "0.12.188" - resolved "https://registry.yarnpkg.com/@keplr-wallet/simple-fetch/-/simple-fetch-0.12.188.tgz#1443fa1cf1dffa8bfb1d79b4bd392bc14dcd6c76" - integrity sha512-QZ4CsCCiJyTPoYqJxCaeNZNtH9RIxpv2c35SblRuVGsmkT941XhGTqGaJyf31ZqUOF1UvTUHeTbrF+ARZMQmfQ== +"@keplr-wallet/simple-fetch@0.12.190": + version "0.12.190" + resolved "https://registry.yarnpkg.com/@keplr-wallet/simple-fetch/-/simple-fetch-0.12.190.tgz#f554db57d48ea909b4480aa9af1b824561eeb42b" + integrity sha512-nsY8KZt9tZaGfr7zLg+hEi9lrqukU4d7VvMaEIE8tMcjKQsoFSKz8NEPebeznqPdg34Gf68YCg+AkwW7r1HgtA== -"@keplr-wallet/types@0.12.188": - version "0.12.188" - resolved "https://registry.yarnpkg.com/@keplr-wallet/types/-/types-0.12.188.tgz#2911996b51248aa9e013119d156a5e494b6edf0f" - integrity sha512-ZRppVqDrnGi5Np7EQiR7TzCs7206W3XjeaQBdj+h/0MMce+Wqa3QAQoUGl1h43JnULcVml3RqPHRmSzGJwg4Cg== +"@keplr-wallet/types@0.12.190": + version "0.12.190" + resolved "https://registry.yarnpkg.com/@keplr-wallet/types/-/types-0.12.190.tgz#14877e805b4336c095a75182504a2f5693f65b8c" + integrity sha512-f/fCuUuFv0KXMOrpagY6DEMLV4EQnBk07XNAshaF0/jOeTR20LRkEp5/ew1VmGe2DAUrLPHrBkFWpbDvuYiwWw== dependencies: long "^4.0.0" -"@keplr-wallet/unit@0.12.188": - version "0.12.188" - resolved "https://registry.yarnpkg.com/@keplr-wallet/unit/-/unit-0.12.188.tgz#a3922992bc7f567fa7342d0577c6bfdee79df733" - integrity sha512-pBBIkeAZavpvp64M30LytyqoMuBZwWQDxnfl8+rblwG78n6/Oj9qPBUFHSDtf/clYC6MZdwVspf84KRLl+Zx0w== +"@keplr-wallet/unit@0.12.190": + version "0.12.190" + resolved "https://registry.yarnpkg.com/@keplr-wallet/unit/-/unit-0.12.190.tgz#c9ec6633a3dc05f619a612de4736e15ae72be433" + integrity sha512-Mt1M32/AiNxRlFO+L/mZOCQLNv8YXemjiCrl2BWTvEZsiuXEFeky8SVS1OQGH/mI6U3AyDPgxYy6PSqEyiT4+w== dependencies: - "@keplr-wallet/types" "0.12.188" + "@keplr-wallet/types" "0.12.190" big-integer "^1.6.48" utility-types "^3.10.0" @@ -2548,98 +2541,98 @@ resolved "https://registry.yarnpkg.com/@tailwindcss/container-queries/-/container-queries-0.1.1.tgz#9a759ce2cb8736a4c6a0cb93aeb740573a731974" integrity sha512-p18dswChx6WnTSaJCSGx6lTmrGzNNvm2FtXmiO6AuA1V4U5REyoqwmT6kgAsIMdjo07QdAfYXHJ4hnMtfHzWgA== -"@tailwindcss/node@^4.0.6": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@tailwindcss/node/-/node-4.0.6.tgz#d07152f447b37c8ce68244b0ec1ce427f5ed856e" - integrity sha512-jb6E0WeSq7OQbVYcIJ6LxnZTeC4HjMvbzFBMCrQff4R50HBlo/obmYNk6V2GCUXDeqiXtvtrQgcIbT+/boB03Q== +"@tailwindcss/node@4.0.8": + version "4.0.8" + resolved "https://registry.yarnpkg.com/@tailwindcss/node/-/node-4.0.8.tgz#75ca63b1d45b82a33412c7468fe423bcdb1e699b" + integrity sha512-FKArQpbrbwv08TNT0k7ejYXpF+R8knZFAatNc0acOxbgeqLzwb86r+P3LGOjIeI3Idqe9CVkZrh4GlsJLJKkkw== dependencies: - enhanced-resolve "^5.18.0" + enhanced-resolve "^5.18.1" jiti "^2.4.2" - tailwindcss "4.0.6" + tailwindcss "4.0.8" -"@tailwindcss/oxide-android-arm64@4.0.6": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.0.6.tgz#0dbee5042870ceaf756829c48c1e6ddacbb4b35b" - integrity sha512-xDbym6bDPW3D2XqQqX3PjqW3CKGe1KXH7Fdkc60sX5ZLVUbzPkFeunQaoP+BuYlLc2cC1FoClrIRYnRzof9Sow== +"@tailwindcss/oxide-android-arm64@4.0.8": + version "4.0.8" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.0.8.tgz#74f18839f95d93494cf8769414e99e4360c0416a" + integrity sha512-We7K79+Sm4mwJHk26Yzu/GAj7C7myemm7PeXvpgMxyxO70SSFSL3uCcqFbz9JA5M5UPkrl7N9fkBe/Y0iazqpA== -"@tailwindcss/oxide-darwin-arm64@4.0.6": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.0.6.tgz#9b5574626464b2ba658a7ecf689a4a835dc97369" - integrity sha512-1f71/ju/tvyGl5c2bDkchZHy8p8EK/tDHCxlpYJ1hGNvsYihZNurxVpZ0DefpN7cNc9RTT8DjrRoV8xXZKKRjg== +"@tailwindcss/oxide-darwin-arm64@4.0.8": + version "4.0.8" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.0.8.tgz#33f64d750975ffc354a6dd3ded4c77cc5f4c2f1d" + integrity sha512-Lv9Isi2EwkCTG1sRHNDi0uRNN1UGFdEThUAGFrydRmQZnraGLMjN8gahzg2FFnOizDl7LB2TykLUuiw833DSNg== -"@tailwindcss/oxide-darwin-x64@4.0.6": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.0.6.tgz#576b9fcd422790371efdb9e3733862759e76639c" - integrity sha512-s/hg/ZPgxFIrGMb0kqyeaqZt505P891buUkSezmrDY6lxv2ixIELAlOcUVTkVh245SeaeEiUVUPiUN37cwoL2g== +"@tailwindcss/oxide-darwin-x64@4.0.8": + version "4.0.8" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.0.8.tgz#8f8b06f99ac234ceae39ad6ce5d3b00550ceb94a" + integrity sha512-fWfywfYIlSWtKoqWTjukTHLWV3ARaBRjXCC2Eo0l6KVpaqGY4c2y8snUjp1xpxUtpqwMvCvFWFaleMoz1Vhzlw== -"@tailwindcss/oxide-freebsd-x64@4.0.6": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.0.6.tgz#787421ebad9460a7ff4a17ca7d1c495579db00ae" - integrity sha512-Z3Wo8FWZnmio8+xlcbb7JUo/hqRMSmhQw8IGIRoRJ7GmLR0C+25Wq+bEX/135xe/yEle2lFkhu9JBHd4wZYiig== +"@tailwindcss/oxide-freebsd-x64@4.0.8": + version "4.0.8" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.0.8.tgz#d12ddba4bf21a9b7b065fcda2c38ddfbbe270e57" + integrity sha512-SO+dyvjJV9G94bnmq2288Ke0BIdvrbSbvtPLaQdqjqHR83v5L2fWADyFO+1oecHo9Owsk8MxcXh1agGVPIKIqw== -"@tailwindcss/oxide-linux-arm-gnueabihf@4.0.6": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.0.6.tgz#07872b2a1d4404a9819788ca5e8384d42a4004fd" - integrity sha512-SNSwkkim1myAgmnbHs4EjXsPL7rQbVGtjcok5EaIzkHkCAVK9QBQsWeP2Jm2/JJhq4wdx8tZB9Y7psMzHYWCkA== +"@tailwindcss/oxide-linux-arm-gnueabihf@4.0.8": + version "4.0.8" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.0.8.tgz#14b1ceca78509177c3fcb17fcc5865848fe06198" + integrity sha512-ZSHggWiEblQNV69V0qUK5vuAtHP+I+S2eGrKGJ5lPgwgJeAd6GjLsVBN+Mqn2SPVfYM3BOpS9jX/zVg9RWQVDQ== -"@tailwindcss/oxide-linux-arm64-gnu@4.0.6": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.0.6.tgz#fd314d294aec5f40c19c5fd09d448b23628dc384" - integrity sha512-tJ+mevtSDMQhKlwCCuhsFEFg058kBiSy4TkoeBG921EfrHKmexOaCyFKYhVXy4JtkaeeOcjJnCLasEeqml4i+Q== +"@tailwindcss/oxide-linux-arm64-gnu@4.0.8": + version "4.0.8" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.0.8.tgz#6862289d7b7ea540d0a6dba394b828e71b3da481" + integrity sha512-xWpr6M0OZLDNsr7+bQz+3X7zcnDJZJ1N9gtBWCtfhkEtDjjxYEp+Lr5L5nc/yXlL4MyCHnn0uonGVXy3fhxaVA== -"@tailwindcss/oxide-linux-arm64-musl@4.0.6": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.0.6.tgz#67b74205d72d3a83e6893adf5b35ac55118e0ebc" - integrity sha512-IoArz1vfuTR4rALXMUXI/GWWfx2EaO4gFNtBNkDNOYhlTD4NVEwE45nbBoojYiTulajI4c2XH8UmVEVJTOJKxA== +"@tailwindcss/oxide-linux-arm64-musl@4.0.8": + version "4.0.8" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.0.8.tgz#0900236a6958dd1e64b5fd89e6006529d8ccd440" + integrity sha512-5tz2IL7LN58ssGEq7h/staD7pu/izF/KeMWdlJ86WDe2Ah46LF3ET6ZGKTr5eZMrnEA0M9cVFuSPprKRHNgjeg== -"@tailwindcss/oxide-linux-x64-gnu@4.0.6": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.0.6.tgz#2268beea15f18adcaa83c0e6540d3ee464130082" - integrity sha512-QtsUfLkEAeWAC3Owx9Kg+7JdzE+k9drPhwTAXbXugYB9RZUnEWWx5x3q/au6TvUYcL+n0RBqDEO2gucZRvRFgQ== +"@tailwindcss/oxide-linux-x64-gnu@4.0.8": + version "4.0.8" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.0.8.tgz#b43f192f5fbaa0dd6e8f312c91b66f924911225a" + integrity sha512-KSzMkhyrxAQyY2o194NKVKU9j/c+NFSoMvnHWFaNHKi3P1lb+Vq1UC19tLHrmxSkKapcMMu69D7+G1+FVGNDXQ== -"@tailwindcss/oxide-linux-x64-musl@4.0.6": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.0.6.tgz#869b49cc783eabe7c33283abe23aafd35b4dd645" - integrity sha512-QthvJqIji2KlGNwLcK/PPYo7w1Wsi/8NK0wAtRGbv4eOPdZHkQ9KUk+oCoP20oPO7i2a6X1aBAFQEL7i08nNMA== +"@tailwindcss/oxide-linux-x64-musl@4.0.8": + version "4.0.8" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.0.8.tgz#7f4ede0e39e616cf4e6fc5d97ce6cf05d3bcb793" + integrity sha512-yFYKG5UtHTRimjtqxUWXBgI4Tc6NJe3USjRIVdlTczpLRxq/SFwgzGl5JbatCxgSRDPBFwRrNPxq+ukfQFGdrw== -"@tailwindcss/oxide-win32-arm64-msvc@4.0.6": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.0.6.tgz#c7e3650b19a24bbebc9d513f188e1d75e1fccf2a" - integrity sha512-+oka+dYX8jy9iP00DJ9Y100XsqvbqR5s0yfMZJuPR1H/lDVtDfsZiSix1UFBQ3X1HWxoEEl6iXNJHWd56TocVw== +"@tailwindcss/oxide-win32-arm64-msvc@4.0.8": + version "4.0.8" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.0.8.tgz#cb2e59d56c1846e841f02d7d36d2bcb4471b8ecd" + integrity sha512-tndGujmCSba85cRCnQzXgpA2jx5gXimyspsUYae5jlPyLRG0RjXbDshFKOheVXU4TLflo7FSG8EHCBJ0EHTKdQ== -"@tailwindcss/oxide-win32-x64-msvc@4.0.6": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.0.6.tgz#ba736748c72273f277e7afb4eaf401108e10ccfd" - integrity sha512-+o+juAkik4p8Ue/0LiflQXPmVatl6Av3LEZXpBTfg4qkMIbZdhCGWFzHdt2NjoMiLOJCFDddoV6GYaimvK1Olw== +"@tailwindcss/oxide-win32-x64-msvc@4.0.8": + version "4.0.8" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.0.8.tgz#6e07be61664d734208ca87b1163cf85aadd2efd1" + integrity sha512-T77jroAc0p4EHVVgTUiNeFn6Nj3jtD3IeNId2X+0k+N1XxfNipy81BEkYErpKLiOkNhpNFjPee8/ZVas29b2OQ== -"@tailwindcss/oxide@^4.0.6": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@tailwindcss/oxide/-/oxide-4.0.6.tgz#57035c941065195db4e5b26eebb3e63b56885a83" - integrity sha512-lVyKV2y58UE9CeKVcYykULe9QaE1dtKdxDEdrTPIdbzRgBk6bdxHNAoDqvcqXbIGXubn3VOl1O/CFF77v/EqSA== +"@tailwindcss/oxide@4.0.8": + version "4.0.8" + resolved "https://registry.yarnpkg.com/@tailwindcss/oxide/-/oxide-4.0.8.tgz#b87b75b381d9b3e2f2a3ae6c2a60db8e15697bb9" + integrity sha512-KfMcuAu/Iw+DcV1e8twrFyr2yN8/ZDC/odIGta4wuuJOGkrkHZbvJvRNIbQNhGh7erZTYV6Ie0IeD6WC9Y8Hcw== optionalDependencies: - "@tailwindcss/oxide-android-arm64" "4.0.6" - "@tailwindcss/oxide-darwin-arm64" "4.0.6" - "@tailwindcss/oxide-darwin-x64" "4.0.6" - "@tailwindcss/oxide-freebsd-x64" "4.0.6" - "@tailwindcss/oxide-linux-arm-gnueabihf" "4.0.6" - "@tailwindcss/oxide-linux-arm64-gnu" "4.0.6" - "@tailwindcss/oxide-linux-arm64-musl" "4.0.6" - "@tailwindcss/oxide-linux-x64-gnu" "4.0.6" - "@tailwindcss/oxide-linux-x64-musl" "4.0.6" - "@tailwindcss/oxide-win32-arm64-msvc" "4.0.6" - "@tailwindcss/oxide-win32-x64-msvc" "4.0.6" - -"@tailwindcss/postcss@^4.0.6": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@tailwindcss/postcss/-/postcss-4.0.6.tgz#c91d22523af7fd3d39989389b8cc4de68640c9c1" - integrity sha512-noTaGPHjGCXTCc487TWnfAEN0VMjqDAecssWDOsfxV2hFrcZR0AHthX7IdY/0xHTg/EtpmIPdssddlZ5/B7JnQ== + "@tailwindcss/oxide-android-arm64" "4.0.8" + "@tailwindcss/oxide-darwin-arm64" "4.0.8" + "@tailwindcss/oxide-darwin-x64" "4.0.8" + "@tailwindcss/oxide-freebsd-x64" "4.0.8" + "@tailwindcss/oxide-linux-arm-gnueabihf" "4.0.8" + "@tailwindcss/oxide-linux-arm64-gnu" "4.0.8" + "@tailwindcss/oxide-linux-arm64-musl" "4.0.8" + "@tailwindcss/oxide-linux-x64-gnu" "4.0.8" + "@tailwindcss/oxide-linux-x64-musl" "4.0.8" + "@tailwindcss/oxide-win32-arm64-msvc" "4.0.8" + "@tailwindcss/oxide-win32-x64-msvc" "4.0.8" + +"@tailwindcss/postcss@^4.0.8": + version "4.0.8" + resolved "https://registry.yarnpkg.com/@tailwindcss/postcss/-/postcss-4.0.8.tgz#5e6e3f01ca15ec074c558ec20a379c007bc09fea" + integrity sha512-SUwlrXjn1ycmUbA0o0n3Y0LqlXqxN5R8HR+ti+OBbRS79wl2seDmiypEs3xJCuQXe07ol81s1AmRMitBmPveJA== dependencies: "@alloc/quick-lru" "^5.2.0" - "@tailwindcss/node" "^4.0.6" - "@tailwindcss/oxide" "^4.0.6" + "@tailwindcss/node" "4.0.8" + "@tailwindcss/oxide" "4.0.8" lightningcss "^1.29.1" postcss "^8.4.41" - tailwindcss "4.0.6" + tailwindcss "4.0.8" "@tanstack/react-table@^8.21.2": version "8.21.2" @@ -2826,10 +2819,10 @@ dependencies: undici-types "~6.19.2" -"@types/node@^22.13.4": - version "22.13.4" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.13.4.tgz#3fe454d77cd4a2d73c214008b3e331bfaaf5038a" - integrity sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg== +"@types/node@^22.13.5": + version "22.13.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.13.5.tgz#23add1d71acddab2c6a4d31db89c0f98d330b511" + integrity sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg== dependencies: undici-types "~6.20.0" @@ -2840,10 +2833,10 @@ dependencies: "@types/node" "*" -"@types/react-dom@19.0.3": - version "19.0.3" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-19.0.3.tgz#0804dfd279a165d5a0ad8b53a5b9e65f338050a4" - integrity sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA== +"@types/react-dom@19.0.4": + version "19.0.4" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-19.0.4.tgz#bedba97f9346bd4c0fe5d39e689713804ec9ac89" + integrity sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg== "@types/react-helmet@^6.1.11": version "6.1.11" @@ -2859,10 +2852,10 @@ dependencies: csstype "^3.0.2" -"@types/react@19.0.9": - version "19.0.9" - resolved "https://registry.yarnpkg.com/@types/react/-/react-19.0.9.tgz#675255eb7d978bdaf71f9d08f6b740d41b0b7f32" - integrity sha512-FedNTYgmMwSZmD1Sru/W1gJKuiYCN/3SuBkmZkcxX+FpO5zL76B22A9YNfAKg4HQO3Neh/30AiynP6BELdU0qQ== +"@types/react@19.0.10": + version "19.0.10" + resolved "https://registry.yarnpkg.com/@types/react/-/react-19.0.10.tgz#d0c66dafd862474190fe95ce11a68de69ed2b0eb" + integrity sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g== dependencies: csstype "^3.0.2" @@ -2873,30 +2866,30 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@8.24.0", "@typescript-eslint/eslint-plugin@^8.24.0": - version "8.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.24.0.tgz#574a95d67660a1e4544ae131d672867a5b40abb3" - integrity sha512-aFcXEJJCI4gUdXgoo/j9udUYIHgF23MFkg09LFz2dzEmU0+1Plk4rQWv/IYKvPHAtlkkGoB3m5e6oUp+JPsNaQ== +"@typescript-eslint/eslint-plugin@8.25.0", "@typescript-eslint/eslint-plugin@^8.25.0": + version "8.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.25.0.tgz#5e1d56f067e5808fa82d1b75bced82396e868a14" + integrity sha512-VM7bpzAe7JO/BFf40pIT1lJqS/z1F8OaSsUB3rpFJucQA4cOSuH2RVVVkFULN+En0Djgr29/jb4EQnedUo95KA== dependencies: "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "8.24.0" - "@typescript-eslint/type-utils" "8.24.0" - "@typescript-eslint/utils" "8.24.0" - "@typescript-eslint/visitor-keys" "8.24.0" + "@typescript-eslint/scope-manager" "8.25.0" + "@typescript-eslint/type-utils" "8.25.0" + "@typescript-eslint/utils" "8.25.0" + "@typescript-eslint/visitor-keys" "8.25.0" graphemer "^1.4.0" ignore "^5.3.1" natural-compare "^1.4.0" ts-api-utils "^2.0.1" -"@typescript-eslint/parser@8.24.0", "@typescript-eslint/parser@^8.24.0": - version "8.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.24.0.tgz#bba837f9ee125b78f459ad947ff9b61be8139085" - integrity sha512-MFDaO9CYiard9j9VepMNa9MTcqVvSny2N4hkY6roquzj8pdCBRENhErrteaQuu7Yjn1ppk0v1/ZF9CG3KIlrTA== +"@typescript-eslint/parser@8.25.0", "@typescript-eslint/parser@^8.25.0": + version "8.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.25.0.tgz#58fb81c7b7a35184ba17583f3d7ac6c4f3d95be8" + integrity sha512-4gbs64bnbSzu4FpgMiQ1A+D+urxkoJk/kqlDJ2W//5SygaEiAP2B4GoS7TEdxgwol2el03gckFV9lJ4QOMiiHg== dependencies: - "@typescript-eslint/scope-manager" "8.24.0" - "@typescript-eslint/types" "8.24.0" - "@typescript-eslint/typescript-estree" "8.24.0" - "@typescript-eslint/visitor-keys" "8.24.0" + "@typescript-eslint/scope-manager" "8.25.0" + "@typescript-eslint/types" "8.25.0" + "@typescript-eslint/typescript-estree" "8.25.0" + "@typescript-eslint/visitor-keys" "8.25.0" debug "^4.3.4" "@typescript-eslint/scope-manager@8.24.0": @@ -2907,7 +2900,25 @@ "@typescript-eslint/types" "8.24.0" "@typescript-eslint/visitor-keys" "8.24.0" -"@typescript-eslint/type-utils@8.24.0", "@typescript-eslint/type-utils@^8.0.0": +"@typescript-eslint/scope-manager@8.25.0": + version "8.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.25.0.tgz#ac3805077aade898e98ca824294c998545597df3" + integrity sha512-6PPeiKIGbgStEyt4NNXa2ru5pMzQ8OYKO1hX1z53HMomrmiSB+R5FmChgQAP1ro8jMtNawz+TRQo/cSXrauTpg== + dependencies: + "@typescript-eslint/types" "8.25.0" + "@typescript-eslint/visitor-keys" "8.25.0" + +"@typescript-eslint/type-utils@8.25.0": + version "8.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.25.0.tgz#ee0d2f67c80af5ae74b5d6f977e0f8ded0059677" + integrity sha512-d77dHgHWnxmXOPJuDWO4FDWADmGQkN5+tt6SFRZz/RtCWl4pHgFl3+WdYCn16+3teG09DY6XtEpf3gGD0a186g== + dependencies: + "@typescript-eslint/typescript-estree" "8.25.0" + "@typescript-eslint/utils" "8.25.0" + debug "^4.3.4" + ts-api-utils "^2.0.1" + +"@typescript-eslint/type-utils@^8.0.0": version "8.24.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.24.0.tgz#6ee3ec4db06f9e5e7b01ca6c2b5dd5843a9fd1e8" integrity sha512-8fitJudrnY8aq0F1wMiPM1UUgiXQRJ5i8tFjq9kGfRajU+dbPyOuHbl0qRopLEidy0MwqgTHDt6CnSeXanNIwA== @@ -2922,6 +2933,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.24.0.tgz#694e7fb18d70506c317b816de9521300b0f72c8e" integrity sha512-VacJCBTyje7HGAw7xp11q439A+zeGG0p0/p2zsZwpnMzjPB5WteaWqt4g2iysgGFafrqvyLWqq6ZPZAOCoefCw== +"@typescript-eslint/types@8.25.0": + version "8.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.25.0.tgz#f91512c2f532b1d6a8826cadd0b0e5cd53cf97e0" + integrity sha512-+vUe0Zb4tkNgznQwicsvLUJgZIRs6ITeWSCclX1q85pR1iOiaj+4uZJIUp//Z27QWu5Cseiw3O3AR8hVpax7Aw== + "@typescript-eslint/typescript-estree@8.24.0": version "8.24.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.24.0.tgz#0487349be174097bb329a58273100a9629e03c6c" @@ -2936,6 +2952,20 @@ semver "^7.6.0" ts-api-utils "^2.0.1" +"@typescript-eslint/typescript-estree@8.25.0": + version "8.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.25.0.tgz#d8409c63abddd4cf5b93c031b24b9edc1c7c1299" + integrity sha512-ZPaiAKEZ6Blt/TPAx5Ot0EIB/yGtLI2EsGoY6F7XKklfMxYQyvtL+gT/UCqkMzO0BVFHLDlzvFqQzurYahxv9Q== + dependencies: + "@typescript-eslint/types" "8.25.0" + "@typescript-eslint/visitor-keys" "8.25.0" + debug "^4.3.4" + fast-glob "^3.3.2" + is-glob "^4.0.3" + minimatch "^9.0.4" + semver "^7.6.0" + ts-api-utils "^2.0.1" + "@typescript-eslint/utils@8.24.0", "@typescript-eslint/utils@^8.20.0": version "8.24.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.24.0.tgz#21cb1195ae79230af825bfeed59574f5cb70a749" @@ -2946,6 +2976,16 @@ "@typescript-eslint/types" "8.24.0" "@typescript-eslint/typescript-estree" "8.24.0" +"@typescript-eslint/utils@8.25.0": + version "8.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.25.0.tgz#3ea2f9196a915ef4daa2c8eafd44adbd7d56d08a" + integrity sha512-syqRbrEv0J1wywiLsK60XzHnQe/kRViI3zwFALrNEgnntn1l24Ra2KvOAWwWbWZ1lBZxZljPDGOq967dsl6fkA== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@typescript-eslint/scope-manager" "8.25.0" + "@typescript-eslint/types" "8.25.0" + "@typescript-eslint/typescript-estree" "8.25.0" + "@typescript-eslint/visitor-keys@8.24.0": version "8.24.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.24.0.tgz#36ecf0b9b1d819ad88a3bd4157ab7d594cb797c9" @@ -2954,6 +2994,14 @@ "@typescript-eslint/types" "8.24.0" eslint-visitor-keys "^4.2.0" +"@typescript-eslint/visitor-keys@8.25.0": + version "8.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.25.0.tgz#e8646324cd1793f96e02669cb717a05319403164" + integrity sha512-kCYXKAum9CecGVHGij7muybDfTS2sD3t0L4bJsEZLkyrXUImiCTq1M3LG2SRtOhiHFwMR9wAFplpT6XHYjTkwQ== + dependencies: + "@typescript-eslint/types" "8.25.0" + eslint-visitor-keys "^4.2.0" + "@vercel/analytics@^1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@vercel/analytics/-/analytics-1.5.0.tgz#073f93694897414b21a8495e2619bbf64447dcaa" @@ -4326,7 +4374,7 @@ end-of-stream@^1.4.1: dependencies: once "^1.4.0" -enhanced-resolve@^5.18.0: +enhanced-resolve@^5.18.1: version "5.18.1" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz#728ab082f8b7b6836de51f1637aab5d3b9568faf" integrity sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg== @@ -4509,10 +4557,10 @@ eslint-module-utils@^2.12.0: dependencies: debug "^3.2.7" -eslint-plugin-functional@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-functional/-/eslint-plugin-functional-8.0.0.tgz#560004a33463c1216ac6a3070e4b1092f0ebdcd4" - integrity sha512-3lY0A1cOMZ4PvELU9NNaL20Go5CQoFdGTvPZtrHlfv61spqa+10rI3tSF5bSBxrEqvHv0IsIWvilJ3/mYSfTdw== +eslint-plugin-functional@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-functional/-/eslint-plugin-functional-9.0.1.tgz#8abcd63b4a6b0eea5c82771e8fbf8f1ab1b98426" + integrity sha512-FR9b/LH2ODuGURSjGlAiEn5LkK+Bumwo0mZHmcSB3SDXCmzQfhcnLCTXL69p/jElWEASSRe4rmarfhHLhAnbXw== dependencies: "@typescript-eslint/utils" "^8.20.0" deepmerge-ts "^7.1.3" @@ -4614,21 +4662,21 @@ eslint-visitor-keys@^4.2.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#687bacb2af884fcdda8a6e7d65c606f46a14cd45" integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw== -eslint@^9.20.1: - version "9.20.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.20.1.tgz#923924c078f5226832449bac86662dd7e53c91d6" - integrity sha512-m1mM33o6dBUjxl2qb6wv6nGNwCAsns1eKtaQ4l/NPHeTvhiUPbtdfMyktxN4B3fgHIgsYh1VT3V9txblpQHq+g== +eslint@^9.21.0: + version "9.21.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.21.0.tgz#b1c9c16f5153ff219791f627b94ab8f11f811591" + integrity sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.12.1" - "@eslint/config-array" "^0.19.0" - "@eslint/core" "^0.11.0" - "@eslint/eslintrc" "^3.2.0" - "@eslint/js" "9.20.0" - "@eslint/plugin-kit" "^0.2.5" + "@eslint/config-array" "^0.19.2" + "@eslint/core" "^0.12.0" + "@eslint/eslintrc" "^3.3.0" + "@eslint/js" "9.21.0" + "@eslint/plugin-kit" "^0.2.7" "@humanfs/node" "^0.16.6" "@humanwhocodes/module-importer" "^1.0.1" - "@humanwhocodes/retry" "^0.4.1" + "@humanwhocodes/retry" "^0.4.2" "@types/estree" "^1.0.6" "@types/json-schema" "^7.0.15" ajv "^6.12.4" @@ -6611,10 +6659,10 @@ prettier-plugin-tailwindcss@^0.6.11: resolved "https://registry.yarnpkg.com/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.6.11.tgz#cfacd60c4f81997353ee913e589037f796df0f5f" integrity sha512-YxaYSIvZPAqhrrEpRtonnrXdghZg1irNg4qrjboCXrpybLWVs55cW2N3juhspVJiO0JBvYJT8SYsJpc8OQSnsA== -prettier@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.5.1.tgz#22fac9d0b18c0b92055ac8fb619ac1c7bef02fb7" - integrity sha512-hPpFQvHwL3Qv5AdRvBFMhnKo4tYxp0ReXiPn2bxkiohEX6mBeBwEpBSQTkD458RaaDKQMYSp4hX4UtfUTA5wDw== +prettier@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.5.2.tgz#d066c6053200da0234bf8fa1ef45168abed8b914" + integrity sha512-lc6npv5PH7hVqozBR7lkBNOGXV9vMwROAPlumdBkX0wTbbzPu/U1hk5yL8p2pt4Xoc+2mkT8t/sow2YrV/M5qg== process-warning@^1.0.0: version "1.0.0" @@ -6780,17 +6828,17 @@ react-qr-code@^2.0.15: prop-types "^15.8.1" qr.js "0.0.0" -react-router-dom@^7.1.5: - version "7.1.5" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-7.1.5.tgz#6b706a5503c01d99c1af69336a7de2e21cadd339" - integrity sha512-/4f9+up0Qv92D3bB8iN5P1s3oHAepSGa9h5k6tpTFlixTTskJZwKGhJ6vRJ277tLD1zuaZTt95hyGWV1Z37csQ== +react-router-dom@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-7.2.0.tgz#b8a7eae7827cd5207cf91e89807d01217737797d" + integrity sha512-cU7lTxETGtQRQbafJubvZKHEn5izNABxZhBY0Jlzdv0gqQhCPQt2J8aN5ZPjS6mQOXn5NnirWNh+FpE8TTYN0Q== dependencies: - react-router "7.1.5" + react-router "7.2.0" -react-router@7.1.5: - version "7.1.5" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-7.1.5.tgz#c9e19d329d9ce2215fdae844ab6b023b911094db" - integrity sha512-8BUF+hZEU4/z/JD201yK6S+UYhsf58bzYIDq2NS1iGpwxSXDu7F+DeGSkIXMFBuHZB21FSiCzEcUb18cQNdRkA== +react-router@7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-7.2.0.tgz#a8f2729d39f634a7a870d14dd906a1b406f39d6f" + integrity sha512-fXyqzPgCPZbqhrk7k3hPcCpYIlQ2ugIXDboHUzhJISFVy2DEPsmHgN588MyGmkIOv3jDgNfUE3kJi83L28s/LQ== dependencies: "@types/cookie" "^0.6.0" cookie "^1.0.1" @@ -6818,10 +6866,10 @@ react-spring@^9.7.5: "@react-spring/web" "~9.7.5" "@react-spring/zdog" "~9.7.5" -react-toastify@^11.0.3: - version "11.0.3" - resolved "https://registry.yarnpkg.com/react-toastify/-/react-toastify-11.0.3.tgz#1684de60baf745e761d3c608bb29581657e2fe01" - integrity sha512-cbPtHJPfc0sGqVwozBwaTrTu1ogB9+BLLjd4dDXd863qYLj7DGrQ2sg5RAChjFUB4yc3w8iXOtWcJqPK/6xqRQ== +react-toastify@^11.0.5: + version "11.0.5" + resolved "https://registry.yarnpkg.com/react-toastify/-/react-toastify-11.0.5.tgz#ce4c42d10eeb433988ab2264d3e445c4e9d13313" + integrity sha512-EpqHBGvnSTtHYhCPLxML05NLY2ZX0JURbAdNYa6BUkk+amz4wbKBQvoKQAB0ardvSarUBuY4Q4s1sluAzZwkmA== dependencies: clsx "^2.1.1" @@ -7638,10 +7686,10 @@ tailwind-scrollbar-hide@^2.0.0: resolved "https://registry.yarnpkg.com/tailwind-scrollbar-hide/-/tailwind-scrollbar-hide-2.0.0.tgz#2d25a3ba383cc7ec1bd516a4416759bb3428f88b" integrity sha512-lqiIutHliEiODwBRHy4G2+Tcayo2U7+3+4frBmoMETD72qtah+XhOk5XcPzC1nJvXhXUdfl2ajlMhUc2qC6CIg== -tailwindcss@4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-4.0.6.tgz#c033bfba94d6e3bf70650a2f9fe949f39d3bb191" - integrity sha512-mysewHYJKaXgNOW6pp5xon/emCsfAMnO8WMaGKZZ35fomnR/T5gYnRg2/yRTTrtXiEl1tiVkeRt0eMO6HxEZqw== +tailwindcss@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-4.0.8.tgz#25d7fed091aacd16e2a3b8b86d51eea0a482fb1c" + integrity sha512-Me7N5CKR+D2A1xdWA5t5+kjjT7bwnxZOE6/yDI/ixJdJokszsn2n++mdU5yJwrsTpqFX2B9ZNMBJDwcqk9C9lw== tailwindcss@^3.4.17: version "3.4.17" @@ -7878,14 +7926,14 @@ typeforce@^1.11.5: resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.18.0.tgz#d7416a2c5845e085034d70fcc5b6cc4a90edbfdc" integrity sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g== -typescript-eslint@^8.24.0: - version "8.24.0" - resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.24.0.tgz#cc655e71885ecb8280342b422ad839a2e2e46a96" - integrity sha512-/lmv4366en/qbB32Vz5+kCNZEMf6xYHwh1z48suBwZvAtnXKbP+YhGe8OLE2BqC67LMqKkCNLtjejdwsdW6uOQ== +typescript-eslint@^8.25.0: + version "8.25.0" + resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.25.0.tgz#73047c157cd70ee93cf2f9243f1599d21cf60239" + integrity sha512-TxRdQQLH4g7JkoFlYG3caW5v1S6kEkz8rqt80iQJZUYPq1zD1Ra7HfQBJJ88ABRaMvHAXnwRvRB4V+6sQ9xN5Q== dependencies: - "@typescript-eslint/eslint-plugin" "8.24.0" - "@typescript-eslint/parser" "8.24.0" - "@typescript-eslint/utils" "8.24.0" + "@typescript-eslint/eslint-plugin" "8.25.0" + "@typescript-eslint/parser" "8.25.0" + "@typescript-eslint/utils" "8.25.0" typescript@^5.7.3: version "5.7.3"