diff --git a/.env.example b/.env.example index fa30dbd7..39a28e31 100644 --- a/.env.example +++ b/.env.example @@ -4,12 +4,4 @@ NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN= NEXT_PUBLIC_FIREBASE_PROJECT_ID= NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET= NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID= -NEXT_PUBLIC_FIREBASE_APP_ID= - -# TRUSTLESS WORK -NEXT_PUBLIC_API_KEY= - -# MAINTENANCE MODE -NEXT_PUBLIC_MAINTENANCE_MODE=false -NEXT_PUBLIC_COUNTDOWN_HOURS=2 -NEXT_PUBLIC_COUNTDOWN_MINUTES=30 \ No newline at end of file +NEXT_PUBLIC_FIREBASE_APP_ID= \ No newline at end of file diff --git a/README.md b/README.md index a2c5db91..48657406 100644 --- a/README.md +++ b/README.md @@ -1,129 +1,42 @@ -![ ](https://github.com/user-attachments/assets/9201806d-7116-44d7-9df0-6f73c6f3d3f3) - # TrustBridge -**TrustBridge** is a decentralized lending platform built on the Stellar blockchain and integrated with Trustless Work for smart contract management. It enables users to request and fund secure loans, ensuring transparency, automation, and security without traditional intermediaries. - -## 🎯 Key Benefits and Objectives - -- Facilitate access to secure, decentralized loans via the Stellar network. -- Connect borrowers and lenders through a transparent marketplace. -- Automate escrow creation with Trustless Work for secure fund handling. - -## 🔒 Why Choose TrustBridge? - -### ⚙️ Core Advantages - -- **Security:** Funds are managed by smart contracts, not centralized entities. -- **Transparency:** All loan activities are verifiable on the blockchain. -- **Efficiency:** Fast transactions and no intermediaries. -- **Smart Automation:** Conditions are enforced automatically via escrow contracts. - -## 🌟 Marketplace Features - -- 🧾 Browse approved loan requests -- 📊 View key loan details: amount, borrower, date, conditions -- 🔎 Search and filter by title, minimum amount, and date -- 🧩 Fund directly from wallet via Trustless Work API -- 🔐 Fully decentralized and trustless escrow deployment - -## 🛠️ How It Works +Integration prototype between **TrustBridge** and **Blend.Capital** enabling **cross-chain lending** on the Stellar blockchain using bridged assets and Blend’s permissionless lending infrastructure. -1. **Borrower submits a loan request.** -2. **Loan is reviewed and approved by the platform.** -3. **The request appears in the marketplace.** -4. **Lenders fund loans via their Stellar wallet.** -5. **A smart contract is deployed through Trustless Work.** -6. **Loan is disbursed automatically.** +🔗 Built on Stellar + Soroban +🧪 MVP running on testnet +💱 Use case: Interoperable Lending with bridged assets (e.g., USDC, BLND) ---- +## Getting Started -## ⚙️ Getting Started - -Follow the steps below to get started with this project: - -### 📦 Installation - -1. Install dependencies: +1. Install dependencies, including the Blend SDK: ```bash -npm i +npm install ``` -2. Format the code using Prettier: +2. Copy the `.env.example` file to `.env` and configure the following variables: + - Blend contract addresses + - Wallet address + - RPC or Soroban network details (testnet or mainnet) -```bash -npx prettier --write . -``` - -3. Start the development server: +3. Launch the development server: ```bash npm run dev ``` ---- - -## 🔐 Environment Variables - -Create a `.env` file in the root of the project with the following: - -```env -# Firebase configuration -NEXT_PUBLIC_FIREBASE_API_KEY=TU_API_KEY -NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=TU_AUTH_DOMAIN -NEXT_PUBLIC_FIREBASE_PROJECT_ID=TU_PROJECT_ID -NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=TU_STORAGE_BUCKET -NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=TU_MESSAGING_SENDER_ID -NEXT_PUBLIC_FIREBASE_APP_ID=TU_APP_ID - -# Trustless Work API -NEXT_PUBLIC_API_KEY=TU_API_KEY -``` - -### API Key Video - -[dApp Trustless Work](https://dapp.trustlesswork.com) - -https://github.com/user-attachments/assets/69f0adf2-cb5f-48ff-a4eb-bb1870fa35fa - -### Firebase Video - -[Firebase](https://firebase.google.com) - -https://github.com/user-attachments/assets/0c4a8a80-33f1-41ae-819b-6a38abf30e4b - ---- - -## 🔑 Wallet Requirements - -To use this platform, install one of the following wallets: - -- Freighter -- Albedo -- xBull -- LOBSTR - -### Wallet Usage Note - -Ensure your wallet is set to "test net". If you see "Not Available" in Freighter: - -- Go to **Security > Manage Connected Wallets** -- Remove **localhost** -- Reload and reconnect - -If problems persist, contact support. - ---- - -## 🧠 IMPORTANT NOTE (Husky Setup) +## Architecture Overview -We use **Husky** to ensure code formatting and linting on `git push`. If `npm run format` or `npm run lint` fail, your push will be blocked. +- **TrustBridge** handles asset bridging and cross-chain messaging. +- **Blend** manages lending, borrowing, and liquidations in a permissionless environment. +- Integration is implemented using Soroban smart contracts and TypeScript interfaces. -Fix any errors before retrying your push. +## Status ---- +- Functional MVP live on Stellar testnet +- Supports USDC and BLND lending pools +- Oracle integration via custom `oracle-mock` Soroban contract -## 📜 License +## License -© 2025 TrustBridge. Released under the MIT License. +MIT diff --git a/docs/CONTRIBUTORS_GUIDELINE.md b/docs/CONTRIBUTORS_GUIDELINE.md index 2f89751a..61c4d600 100644 --- a/docs/CONTRIBUTORS_GUIDELINE.md +++ b/docs/CONTRIBUTORS_GUIDELINE.md @@ -41,7 +41,6 @@ We’re thrilled that you’re interested in contributing to **TrustBridge**! Pl 1. Make changes in your local repository. 2. Follow **atomic commit principles**: - - Each commit should address a single, logical change. - Avoid bundling unrelated changes in a single commit. - Write clear and descriptive commit messages using the format: @@ -52,7 +51,6 @@ We’re thrilled that you’re interested in contributing to **TrustBridge**! Pl ``` > Examples: - - `feat(authentication): add support for OAuth login` - `fix(api): resolve 404 error in user endpoint` - `docs(readme): update contribution guidelines` @@ -75,7 +73,6 @@ We’re thrilled that you’re interested in contributing to **TrustBridge**! Pl ``` 2. ⚠️ **Note:** This repository uses Husky for pre-push hooks. Husky will automatically run `npm run format` and `npm run lint` before allowing the push. - - If you encounter errors, fix any formatting or linting issues before retrying the push. --- diff --git a/package-lock.json b/package-lock.json index 1dda209f..b2c8a210 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,8 +8,10 @@ "name": "project", "version": "0.1.0", "dependencies": { + "@blend-capital/blend-sdk": "^2.2.0", "@creit.tech/stellar-wallets-kit": "^1.7.3", "@hookform/resolvers": "^5.0.0", + "@radix-ui/react-accordion": "^1.2.11", "@radix-ui/react-avatar": "^1.1.3", "@radix-ui/react-checkbox": "1.2.3", "@radix-ui/react-collapsible": "^1.1.3", @@ -27,11 +29,9 @@ "@radix-ui/react-tabs": "^1.1.3", "@radix-ui/react-toast": "^1.2.6", "@radix-ui/react-tooltip": "^1.1.8", - "@trustless-work/escrow": "0.1.8", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.1.1", - "date-fns": "^4.1.0", "firebase": "^11.6.0", "lucide-react": "^0.485.0", "next": "15.2.4", @@ -41,8 +41,7 @@ "sonner": "^2.0.3", "tailwind-merge": "^3.1.0", "tw-animate-css": "^1.2.5", - "zod": "^3.24.2", - "zustand": "^5.0.3" + "zod": "^3.24.2" }, "devDependencies": { "@eslint/eslintrc": "^3", @@ -65,7 +64,6 @@ "postcss": "^8.5.3", "prettier": "^3.5.3", "tailwindcss": "^4.0.17", - "tailwindcss-animate": "^1.0.7", "typescript": "^5", "typescript-eslint": "^8.28.0" }, @@ -93,6 +91,20 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@babel/code-frame": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", @@ -109,14 +121,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz", - "integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==", + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz", + "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.27.1", - "@babel/types": "^7.27.1", + "@babel/parser": "^7.27.5", + "@babel/types": "^7.27.3", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -146,13 +158,13 @@ } }, "node_modules/@babel/parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.1.tgz", - "integrity": "sha512-I0dZ3ZpCrJ1c04OqlNsQcKiZlsrXf/kkE4FXzID9rIOYICsAbA8mMDzhW/luRNAHdCNt7os/u8wenklZDlUVUQ==", + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", + "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.27.1" + "@babel/types": "^7.27.3" }, "bin": { "parser": "bin/babel-parser.js" @@ -162,23 +174,23 @@ } }, "node_modules/@babel/runtime": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.1.tgz", - "integrity": "sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==", + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz", + "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.1.tgz", - "integrity": "sha512-Fyo3ghWMqkHHpHQCoBs2VnYjR4iWFFjguTDEqA5WgZDOrFesVjMhMM2FSqTKSoUSDO1VQtavj8NFpdRBEvJTtg==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.1", + "@babel/parser": "^7.27.2", "@babel/types": "^7.27.1" }, "engines": { @@ -186,17 +198,17 @@ } }, "node_modules/@babel/traverse": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz", - "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==", + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", + "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.1", - "@babel/parser": "^7.27.1", - "@babel/template": "^7.27.1", - "@babel/types": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.3", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -215,9 +227,9 @@ } }, "node_modules/@babel/types": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz", - "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==", + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz", + "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==", "dev": true, "license": "MIT", "dependencies": { @@ -228,10 +240,21 @@ "node": ">=6.9.0" } }, + "node_modules/@blend-capital/blend-sdk": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@blend-capital/blend-sdk/-/blend-sdk-2.2.0.tgz", + "integrity": "sha512-S2P7D1Y45IKBk381gvPWt7rv587B2FUY9Vd8KyXpxkpcB8/IgFeCItoVBidqIW5vbsAG3T1fwHJbcI3bUfFlpw==", + "license": "MIT", + "dependencies": { + "@stellar/stellar-sdk": "13.0.0", + "buffer": "6.0.3", + "follow-redirects": ">=1.15.6" + } + }, "node_modules/@creit.tech/stellar-wallets-kit": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@creit.tech/stellar-wallets-kit/-/stellar-wallets-kit-1.7.3.tgz", - "integrity": "sha512-pQaN+KSyyV9E13MUTCElvVPpsJccnPamfVBwuvASaWv/WTelEFdnbDCRxHnQoQvtZnTM0FJDTzHyfuLQ3sehTg==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@creit.tech/stellar-wallets-kit/-/stellar-wallets-kit-1.7.5.tgz", + "integrity": "sha512-Bb1oojw4CJ7vARnpqtYDZJqJmeg1hkA0sTLtgizUeQJYer4rOaSIyc18lrtvIiTg5wT992SYTXLdqzPPkeWGfA==", "dependencies": { "@albedo-link/intent": "0.12.0", "@creit.tech/xbull-wallet-connect": "0.3.0", @@ -261,6 +284,48 @@ "@stellar/stellar-base": "^12.1.1" } }, + "node_modules/@creit.tech/stellar-wallets-kit/node_modules/@stellar/stellar-sdk": { + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/@stellar/stellar-sdk/-/stellar-sdk-12.3.0.tgz", + "integrity": "sha512-F2DYFop/M5ffXF0lvV5Ezjk+VWNKg0QDX8gNhwehVU3y5LYA3WAY6VcCarMGPaG9Wdgoeh1IXXzOautpqpsltw==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@stellar/stellar-base": "^12.1.1", + "axios": "^1.7.7", + "bignumber.js": "^9.1.2", + "eventsource": "^2.0.2", + "randombytes": "^2.1.0", + "toml": "^3.0.0", + "urijs": "^1.19.1" + } + }, + "node_modules/@creit.tech/stellar-wallets-kit/node_modules/@trezor/connect-plugin-stellar": { + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/@trezor/connect-plugin-stellar/-/connect-plugin-stellar-9.0.6.tgz", + "integrity": "sha512-LieD7xqckUXaPIA3a5XHyAAWE4gMRru6ot+kp1J93MfLn7wnjzJ5FrH2/TXFMxXJh/o1VCX/CzT4KQmgFSQ4Lw==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@trezor/utils": "9.2.2" + }, + "peerDependencies": { + "@stellar/stellar-sdk": "^12.1.3", + "@trezor/connect": "9.x.x", + "tslib": "^2.6.2" + } + }, + "node_modules/@creit.tech/stellar-wallets-kit/node_modules/@trezor/utils": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@trezor/utils/-/utils-9.2.2.tgz", + "integrity": "sha512-eTKOXhJsqUObQiL4ccJvamuDe9YDt+QFPh25YG85fqUInN85H/dxRXiLEboeqkRHldP06+bG+e2t4iAnsWuINQ==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "bignumber.js": "^9.1.2" + }, + "peerDependencies": { + "tslib": "^2.6.2" + } + }, "node_modules/@creit.tech/xbull-wallet-connect": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@creit.tech/xbull-wallet-connect/-/xbull-wallet-connect-0.3.0.tgz", @@ -320,9 +385,9 @@ "license": "MIT" }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.6.1.tgz", - "integrity": "sha512-KTsJMmobmbrFLe3LDh0PC2FXpcSYJt/MLjlkh/9LEnmKYLSYmT/0EW9JWANjeoemiuZrmogti0tW5Ch+qNUYDw==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", "dev": true, "license": "MIT", "dependencies": { @@ -362,9 +427,9 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.0.tgz", - "integrity": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==", + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.1.tgz", + "integrity": "sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -377,9 +442,9 @@ } }, "node_modules/@eslint/config-helpers": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.2.tgz", - "integrity": "sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.3.tgz", + "integrity": "sha512-u180qk2Um1le4yf0ruXH3PYFeEZeYC3p/4wCTKrr2U1CmGdzGi3KtY0nuPDH48UJxlKCC5RDzbcbh4X0XlqgHg==", "dev": true, "license": "Apache-2.0", "engines": { @@ -387,9 +452,9 @@ } }, "node_modules/@eslint/core": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz", - "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==", + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.14.0.tgz", + "integrity": "sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -437,13 +502,16 @@ } }, "node_modules/@eslint/js": { - "version": "9.25.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.25.1.tgz", - "integrity": "sha512-dEIwmjntEx8u3Uvv+kr3PDeeArL8Hw07H9kyYxCjnM9pBjfEhk6uLXSchxxzgiwtRhhzVzqmUSDFBOi1TuZ7qg==", + "version": "9.29.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.29.0.tgz", + "integrity": "sha512-3PIF4cBw/y+1u2EazflInpV+lYsSG0aByVIQzAgb1m1MhHFSbqTyNqtBKHgWf/9Ykud+DhILS9EGkmekVhbKoQ==", "dev": true, "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" } }, "node_modules/@eslint/object-schema": { @@ -457,33 +525,49 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz", - "integrity": "sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.3.tgz", + "integrity": "sha512-1+WqvgNMhmlAambTvT3KPtCl/Ibr68VldY2XY40SL1CE0ZXiakFR/cbTspaF5HsnpDMvcYYoJHfl4980NBjGag==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.13.0", + "@eslint/core": "^0.15.1", "levn": "^0.4.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@eslint/plugin-kit/node_modules/@eslint/core": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.1.tgz", + "integrity": "sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@ethereumjs/common": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-4.4.0.tgz", - "integrity": "sha512-Fy5hMqF6GsE6DpYTyqdDIJPJgUtDn4dL120zKw+Pswuo+iLyBsEYuSyzMw6NVzD2vDzcBG9fE4+qX4X2bPc97w==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-10.0.0.tgz", + "integrity": "sha512-qb0M1DGdXzMAf3O6Zg5Wr5UDjoxBmplLPbQyC6DQ0LfgVDBRdqn0Pk+/hHm4q0McE22Of0MxbV4hhiDTkSgKag==", "license": "MIT", + "peer": true, "dependencies": { - "@ethereumjs/util": "^9.1.0" + "@ethereumjs/util": "^10.0.0", + "eventemitter3": "^5.0.1" } }, "node_modules/@ethereumjs/rlp": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-5.0.2.tgz", - "integrity": "sha512-DziebCdg4JpGlEqEdGgXmjqcFoJi+JGulUXwEjsZGAscAQ7MyD/7LE/GVCP29vEQxKc7AAwjT3A2ywHp2xfoCA==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-10.0.0.tgz", + "integrity": "sha512-h2SK6RxFBfN5ZGykbw8LTNNLckSXZeuUZ6xqnmtF22CzZbHflFMcIOyfVGdvyCVQqIoSbGMHtvyxMCWnOyB9RA==", "license": "MPL-2.0", + "peer": true, "bin": { "rlp": "bin/rlp.cjs" }, @@ -492,28 +576,30 @@ } }, "node_modules/@ethereumjs/tx": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-5.4.0.tgz", - "integrity": "sha512-SCHnK7m/AouZ7nyoR0MEXw1OO/tQojSbp88t8oxhwes5iZkZCtfFdUrJaiIb72qIpH2FVw6s1k1uP7LXuH7PsA==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-10.0.0.tgz", + "integrity": "sha512-DApm04kp2nbvaOuHy2Rkcz1ZeJkTVgW6oCuNnQf9bRtGc+LsvLrdULE3LoGtBItEoNEcgXLJqrV0foooWFX6jw==", "license": "MPL-2.0", + "peer": true, "dependencies": { - "@ethereumjs/common": "^4.4.0", - "@ethereumjs/rlp": "^5.0.2", - "@ethereumjs/util": "^9.1.0", - "ethereum-cryptography": "^2.2.1" + "@ethereumjs/common": "^10.0.0", + "@ethereumjs/rlp": "^10.0.0", + "@ethereumjs/util": "^10.0.0", + "ethereum-cryptography": "^3.2.0" }, "engines": { "node": ">=18" } }, "node_modules/@ethereumjs/util": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-9.1.0.tgz", - "integrity": "sha512-XBEKsYqLGXLah9PNJbgdkigthkG7TAGvlD/sH12beMXEyHDyigfcbdvHhmLyDWgDyOJn4QwiQUaF7yeuhnjdog==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-10.0.0.tgz", + "integrity": "sha512-lO23alM4uQsv8dp6/yEm4Xw4328+wIRjSeuBO1mRTToUWRcByEMTk87yzBpXgpixpgHrl+9LTn9KB2vvKKtOQQ==", "license": "MPL-2.0", + "peer": true, "dependencies": { - "@ethereumjs/rlp": "^5.0.2", - "ethereum-cryptography": "^2.2.1" + "@ethereumjs/rlp": "^10.0.0", + "ethereum-cryptography": "^3.2.0" }, "engines": { "node": ">=18" @@ -1218,16 +1304,36 @@ "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", "license": "MIT" }, + "node_modules/@firebase/ai": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@firebase/ai/-/ai-1.4.0.tgz", + "integrity": "sha512-wvF33gtU6TXb6Co8TEC1pcl4dnVstYmRE/vs9XjUGE7he7Sgf5TqSu+EoXk/fuzhw5tKr1LC5eG9KdYFM+eosw==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/app-check-interop-types": "0.3.3", + "@firebase/component": "0.6.17", + "@firebase/logger": "0.4.4", + "@firebase/util": "1.12.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@firebase/app": "0.x", + "@firebase/app-types": "0.x" + } + }, "node_modules/@firebase/analytics": { - "version": "0.10.12", - "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.10.12.tgz", - "integrity": "sha512-iDCGnw6qdFqwI5ywkgece99WADJNoymu+nLIQI4fZM/vCZ3bEo4wlpEetW71s1HqGpI0hQStiPhqVjFxDb2yyw==", + "version": "0.10.16", + "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.10.16.tgz", + "integrity": "sha512-cMtp19He7Fd6uaj/nDEul+8JwvJsN8aRSJyuA1QN3QrKvfDDp+efjVurJO61sJpkVftw9O9nNMdhFbRcTmTfRQ==", "license": "Apache-2.0", "dependencies": { - "@firebase/component": "0.6.13", - "@firebase/installations": "0.6.13", + "@firebase/component": "0.6.17", + "@firebase/installations": "0.6.17", "@firebase/logger": "0.4.4", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.0", "tslib": "^2.1.0" }, "peerDependencies": { @@ -1235,15 +1341,15 @@ } }, "node_modules/@firebase/analytics-compat": { - "version": "0.2.18", - "resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.2.18.tgz", - "integrity": "sha512-Hw9mzsSMZaQu6wrTbi3kYYwGw9nBqOHr47pVLxfr5v8CalsdrG5gfs9XUlPOZjHRVISp3oQrh1j7d3E+ulHPjQ==", + "version": "0.2.22", + "resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.2.22.tgz", + "integrity": "sha512-VogWHgwkdYhjWKh8O1XU04uPrRaiDihkWvE/EMMmtWtaUtVALnpLnUurc3QtSKdPnvTz5uaIGKlW84DGtSPFbw==", "license": "Apache-2.0", "dependencies": { - "@firebase/analytics": "0.10.12", + "@firebase/analytics": "0.10.16", "@firebase/analytics-types": "0.8.3", - "@firebase/component": "0.6.13", - "@firebase/util": "1.11.0", + "@firebase/component": "0.6.17", + "@firebase/util": "1.12.0", "tslib": "^2.1.0" }, "peerDependencies": { @@ -1257,14 +1363,14 @@ "license": "Apache-2.0" }, "node_modules/@firebase/app": { - "version": "0.11.5", - "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.11.5.tgz", - "integrity": "sha512-uNp8/Rv12GrrM/dfyqzZCftA2i/5X9axmiEtUDmyQw+0S17EV5s9gudOgdIIGr849LmbAk3At2CBZMqiQJVwNw==", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.13.1.tgz", + "integrity": "sha512-0O33PKrXLoIWkoOO5ByFaLjZehBctSYWnb+xJkIdx2SKP/K9l1UPFXPwASyrOIqyY3ws+7orF/1j7wI5EKzPYQ==", "license": "Apache-2.0", "dependencies": { - "@firebase/component": "0.6.13", + "@firebase/component": "0.6.17", "@firebase/logger": "0.4.4", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.0", "idb": "7.1.1", "tslib": "^2.1.0" }, @@ -1273,14 +1379,14 @@ } }, "node_modules/@firebase/app-check": { - "version": "0.8.13", - "resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.8.13.tgz", - "integrity": "sha512-ONsgml8/dplUOAP42JQO6hhiWDEwR9+RUTLenxAN9S8N6gel/sDQ9Ci721Py1oASMGdDU8v9R7xAZxzvOX5lPg==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.10.0.tgz", + "integrity": "sha512-AZlRlVWKcu8BH4Yf8B5EI8sOi2UNGTS8oMuthV45tbt6OVUTSQwFPIEboZzhNJNKY+fPsg7hH8vixUWFZ3lrhw==", "license": "Apache-2.0", "dependencies": { - "@firebase/component": "0.6.13", + "@firebase/component": "0.6.17", "@firebase/logger": "0.4.4", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.0", "tslib": "^2.1.0" }, "engines": { @@ -1291,16 +1397,16 @@ } }, "node_modules/@firebase/app-check-compat": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.3.20.tgz", - "integrity": "sha512-/twgmlnNAaZ/wbz3kcQrL/26b+X+zUX+lBmu5LwwEcWcpnb+mrVEAKhD7/ttm52dxYiSWtLDeuXy3FXBhqBC5A==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.3.25.tgz", + "integrity": "sha512-3zrsPZWAKfV7DVC20T2dgfjzjtQnSJS65OfMOiddMUtJL1S5i0nAZKsdX0bOEvvrd0SBIL8jYnfpfDeQRnhV3w==", "license": "Apache-2.0", "dependencies": { - "@firebase/app-check": "0.8.13", + "@firebase/app-check": "0.10.0", "@firebase/app-check-types": "0.5.3", - "@firebase/component": "0.6.13", + "@firebase/component": "0.6.17", "@firebase/logger": "0.4.4", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.0", "tslib": "^2.1.0" }, "engines": { @@ -1323,15 +1429,15 @@ "license": "Apache-2.0" }, "node_modules/@firebase/app-compat": { - "version": "0.2.54", - "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.2.54.tgz", - "integrity": "sha512-Vwf29tV/5bHEnp+VPgNWOFMbFG+RSur2ntmzZ19Plp5dJOtoo2nQS817COALLaHlebG/Xf/P5PVHyeQNcSVCqQ==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.4.1.tgz", + "integrity": "sha512-9VGjnY23Gc1XryoF/ABWtZVJYnaPOnjHM7dsqq9YALgKRtxI1FryvELUVkDaEIUf4In2bfkb9ZENF1S9M273Dw==", "license": "Apache-2.0", "dependencies": { - "@firebase/app": "0.11.5", - "@firebase/component": "0.6.13", + "@firebase/app": "0.13.1", + "@firebase/component": "0.6.17", "@firebase/logger": "0.4.4", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.0", "tslib": "^2.1.0" }, "engines": { @@ -1345,14 +1451,14 @@ "license": "Apache-2.0" }, "node_modules/@firebase/auth": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-1.10.1.tgz", - "integrity": "sha512-YsCppueiV4AsMTf4oQ49KiADvtqKnG5j9Q4mBv7xGa0hnSTAX3jpdwlTluU3n0JxUT2tbPkeOESJmF4a9GWlMQ==", + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-1.10.7.tgz", + "integrity": "sha512-77o0aBKCfchdL1gkahARdawHyYefh+wRYn7o60tbwW6bfJNq2idbrRb3WSYCT4yBKWL0+9kKdwxBHPZ6DEiB+g==", "license": "Apache-2.0", "dependencies": { - "@firebase/component": "0.6.13", + "@firebase/component": "0.6.17", "@firebase/logger": "0.4.4", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.0", "tslib": "^2.1.0" }, "engines": { @@ -1369,15 +1475,15 @@ } }, "node_modules/@firebase/auth-compat": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.5.21.tgz", - "integrity": "sha512-FrUEcqLEWVA3mGyq96wWVxXzEIWTrdBctgQuC4MVuCyH5rJZu1kPsLKdeCYuYbqTz7i94DNuGxMNIW3Y5eFqaQ==", + "version": "0.5.27", + "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.5.27.tgz", + "integrity": "sha512-axZx/MgjNO7uPA8/nMQiuVotGCngUFMppt5w0pxFIoIPD0kac0bsFdSEh5S2ttuEE0Aq1iUB6Flzwn+wvMgXnQ==", "license": "Apache-2.0", "dependencies": { - "@firebase/auth": "1.10.1", + "@firebase/auth": "1.10.7", "@firebase/auth-types": "0.13.0", - "@firebase/component": "0.6.13", - "@firebase/util": "1.11.0", + "@firebase/component": "0.6.17", + "@firebase/util": "1.12.0", "tslib": "^2.1.0" }, "engines": { @@ -1404,12 +1510,12 @@ } }, "node_modules/@firebase/component": { - "version": "0.6.13", - "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.13.tgz", - "integrity": "sha512-I/Eg1NpAtZ8AAfq8mpdfXnuUpcLxIDdCDtTzWSh+FXnp/9eCKJ3SNbOCKrUCyhLzNa2SiPJYruei0sxVjaOTeg==", + "version": "0.6.17", + "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.17.tgz", + "integrity": "sha512-M6DOg7OySrKEFS8kxA3MU5/xc37fiOpKPMz6cTsMUcsuKB6CiZxxNAvgFta8HGRgEpZbi8WjGIj6Uf+TpOhyzg==", "license": "Apache-2.0", "dependencies": { - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.0", "tslib": "^2.1.0" }, "engines": { @@ -1417,15 +1523,15 @@ } }, "node_modules/@firebase/data-connect": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@firebase/data-connect/-/data-connect-0.3.4.tgz", - "integrity": "sha512-Clt0bHoth4N60RmzTdCaw20S5Eeg5PhjbsxP7tIB9FQlP9qm9pS25WW9v4C3gj9DugrBrJ8d/gh/e+H5+F276Q==", + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@firebase/data-connect/-/data-connect-0.3.9.tgz", + "integrity": "sha512-B5tGEh5uQrQeH0i7RvlU8kbZrKOJUmoyxVIX4zLA8qQJIN6A7D+kfBlGXtSwbPdrvyaejcRPcbOtqsDQ9HPJKw==", "license": "Apache-2.0", "dependencies": { "@firebase/auth-interop-types": "0.2.4", - "@firebase/component": "0.6.13", + "@firebase/component": "0.6.17", "@firebase/logger": "0.4.4", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.0", "tslib": "^2.1.0" }, "peerDependencies": { @@ -1433,16 +1539,16 @@ } }, "node_modules/@firebase/database": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/@firebase/database/-/database-1.0.14.tgz", - "integrity": "sha512-9nxYtkHAG02/Nh2Ssms1T4BbWPPjiwohCvkHDUl4hNxnki1kPgsLo5xe9kXNzbacOStmVys+RUXvwzynQSKmUQ==", + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/@firebase/database/-/database-1.0.19.tgz", + "integrity": "sha512-khE+MIYK+XlIndVn/7mAQ9F1fwG5JHrGKaG72hblCC6JAlUBDd3SirICH6SMCf2PQ0iYkruTECth+cRhauacyQ==", "license": "Apache-2.0", "dependencies": { "@firebase/app-check-interop-types": "0.3.3", "@firebase/auth-interop-types": "0.2.4", - "@firebase/component": "0.6.13", + "@firebase/component": "0.6.17", "@firebase/logger": "0.4.4", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.0", "faye-websocket": "0.11.4", "tslib": "^2.1.0" }, @@ -1451,16 +1557,16 @@ } }, "node_modules/@firebase/database-compat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-2.0.5.tgz", - "integrity": "sha512-CNf1UbvWh6qIaSf4sn6sx2DTDz/em/D7QxULH1LTxxDQHr9+CeYGvlAqrKnk4ZH0P0eIHyQFQU7RwkUJI0B9gQ==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-2.0.10.tgz", + "integrity": "sha512-3sjl6oGaDDYJw/Ny0E5bO6v+KM3KoD4Qo/sAfHGdRFmcJ4QnfxOX9RbG9+ce/evI3m64mkPr24LlmTDduqMpog==", "license": "Apache-2.0", "dependencies": { - "@firebase/component": "0.6.13", - "@firebase/database": "1.0.14", - "@firebase/database-types": "1.0.10", + "@firebase/component": "0.6.17", + "@firebase/database": "1.0.19", + "@firebase/database-types": "1.0.14", "@firebase/logger": "0.4.4", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.0", "tslib": "^2.1.0" }, "engines": { @@ -1468,24 +1574,24 @@ } }, "node_modules/@firebase/database-types": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.10.tgz", - "integrity": "sha512-mH6RC1E9/Pv8jf1/p+M8YFTX+iu+iHDN89hecvyO7wHrI4R1V0TXjxOHvX3nLJN1sfh0CWG6CHZ0VlrSmK/cwg==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.14.tgz", + "integrity": "sha512-8a0Q1GrxM0akgF0RiQHliinhmZd+UQPrxEmUv7MnQBYfVFiLtKOgs3g6ghRt/WEGJHyQNslZ+0PocIwNfoDwKw==", "license": "Apache-2.0", "dependencies": { "@firebase/app-types": "0.9.3", - "@firebase/util": "1.11.0" + "@firebase/util": "1.12.0" } }, "node_modules/@firebase/firestore": { - "version": "4.7.11", - "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-4.7.11.tgz", - "integrity": "sha512-Ve9Q1YZKgG7Of8jhwPCy43CLe0Oi62clCDYLNYs0Rz08U75caIFZyASRmz+2FZWdMt8fLGmRLDNd0KfX16zMvA==", + "version": "4.7.17", + "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-4.7.17.tgz", + "integrity": "sha512-YhXWA7HlSnekExhZ5u4i0e+kpPxsh/qMrzeNDgsAva71JXK8OOuOx+yLyYBFhmu3Hr5JJDO2fsZA/wrWoQYHDg==", "license": "Apache-2.0", "dependencies": { - "@firebase/component": "0.6.13", + "@firebase/component": "0.6.17", "@firebase/logger": "0.4.4", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.0", "@firebase/webchannel-wrapper": "1.0.3", "@grpc/grpc-js": "~1.9.0", "@grpc/proto-loader": "^0.7.8", @@ -1499,15 +1605,15 @@ } }, "node_modules/@firebase/firestore-compat": { - "version": "0.3.46", - "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.3.46.tgz", - "integrity": "sha512-wwcs1aexd46z/SYHRV9ICOU3nzugSsMGdLAerInswy1SYjiilEq5jubb5KxZZk60jvirGKRbZUbTEhx7FsUkOw==", + "version": "0.3.52", + "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.3.52.tgz", + "integrity": "sha512-nzt3Sag+EBdm1Jkw/FnnKBPk0LpUUxOlMHMADPBXYhhXrLszxn1+vb64nJsbgRIHfsCn+rg8gyGrb+8frzXrjg==", "license": "Apache-2.0", "dependencies": { - "@firebase/component": "0.6.13", - "@firebase/firestore": "4.7.11", + "@firebase/component": "0.6.17", + "@firebase/firestore": "4.7.17", "@firebase/firestore-types": "3.0.3", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.0", "tslib": "^2.1.0" }, "engines": { @@ -1528,16 +1634,16 @@ } }, "node_modules/@firebase/functions": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.12.3.tgz", - "integrity": "sha512-Wv7JZMUkKLb1goOWRtsu3t7m97uK6XQvjQLPvn8rncY91+VgdU72crqnaYCDI/ophNuBEmuK8mn0/pAnjUeA6A==", + "version": "0.12.8", + "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.12.8.tgz", + "integrity": "sha512-p+ft6dQW0CJ3BLLxeDb5Hwk9ARw01kHTZjLqiUdPRzycR6w7Z75ThkegNmL6gCss3S0JEpldgvehgZ3kHybVhA==", "license": "Apache-2.0", "dependencies": { "@firebase/app-check-interop-types": "0.3.3", "@firebase/auth-interop-types": "0.2.4", - "@firebase/component": "0.6.13", + "@firebase/component": "0.6.17", "@firebase/messaging-interop-types": "0.2.3", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.0", "tslib": "^2.1.0" }, "engines": { @@ -1548,15 +1654,15 @@ } }, "node_modules/@firebase/functions-compat": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.3.20.tgz", - "integrity": "sha512-iIudmYDAML6n3c7uXO2YTlzra2/J6lnMzmJTXNthvrKVMgNMaseNoQP1wKfchK84hMuSF8EkM4AvufwbJ+Juew==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.3.25.tgz", + "integrity": "sha512-V0JKUw5W/7aznXf9BQ8LIYHCX6zVCM8Hdw7XUQ/LU1Y9TVP8WKRCnPB/qdPJ0xGjWWn7fhtwIYbgEw/syH4yTQ==", "license": "Apache-2.0", "dependencies": { - "@firebase/component": "0.6.13", - "@firebase/functions": "0.12.3", + "@firebase/component": "0.6.17", + "@firebase/functions": "0.12.8", "@firebase/functions-types": "0.6.3", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.0", "tslib": "^2.1.0" }, "engines": { @@ -1573,13 +1679,13 @@ "license": "Apache-2.0" }, "node_modules/@firebase/installations": { - "version": "0.6.13", - "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.6.13.tgz", - "integrity": "sha512-6ZpkUiaygPFwgVneYxuuOuHnSPnTA4KefLEaw/sKk/rNYgC7X6twaGfYb0sYLpbi9xV4i5jXsqZ3WO+yaguNgg==", + "version": "0.6.17", + "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.6.17.tgz", + "integrity": "sha512-zfhqCNJZRe12KyADtRrtOj+SeSbD1H/K8J24oQAJVv/u02eQajEGlhZtcx9Qk7vhGWF5z9dvIygVDYqLL4o1XQ==", "license": "Apache-2.0", "dependencies": { - "@firebase/component": "0.6.13", - "@firebase/util": "1.11.0", + "@firebase/component": "0.6.17", + "@firebase/util": "1.12.0", "idb": "7.1.1", "tslib": "^2.1.0" }, @@ -1588,15 +1694,15 @@ } }, "node_modules/@firebase/installations-compat": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.2.13.tgz", - "integrity": "sha512-f/o6MqCI7LD/ulY9gvgkv6w5k6diaReD8BFHd/y/fEdpsXmFWYS/g28GXCB72bRVBOgPpkOUNl+VsMvDwlRKmw==", + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.2.17.tgz", + "integrity": "sha512-J7afeCXB7yq25FrrJAgbx8mn1nG1lZEubOLvYgG7ZHvyoOCK00sis5rj7TgDrLYJgdj/SJiGaO1BD3BAp55TeA==", "license": "Apache-2.0", "dependencies": { - "@firebase/component": "0.6.13", - "@firebase/installations": "0.6.13", + "@firebase/component": "0.6.17", + "@firebase/installations": "0.6.17", "@firebase/installations-types": "0.5.3", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.0", "tslib": "^2.1.0" }, "peerDependencies": { @@ -1625,15 +1731,15 @@ } }, "node_modules/@firebase/messaging": { - "version": "0.12.17", - "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.12.17.tgz", - "integrity": "sha512-W3CnGhTm6Nx8XGb6E5/+jZTuxX/EK8Vur4QXvO1DwZta/t0xqWMRgO9vNsZFMYBqFV4o3j4F9qK/iddGYwWS6g==", + "version": "0.12.21", + "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.12.21.tgz", + "integrity": "sha512-bYJ2Evj167Z+lJ1ach6UglXz5dUKY1zrJZd15GagBUJSR7d9KfiM1W8dsyL0lDxcmhmA/sLaBYAAhF1uilwN0g==", "license": "Apache-2.0", "dependencies": { - "@firebase/component": "0.6.13", - "@firebase/installations": "0.6.13", + "@firebase/component": "0.6.17", + "@firebase/installations": "0.6.17", "@firebase/messaging-interop-types": "0.2.3", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.0", "idb": "7.1.1", "tslib": "^2.1.0" }, @@ -1642,14 +1748,14 @@ } }, "node_modules/@firebase/messaging-compat": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.2.17.tgz", - "integrity": "sha512-5Q+9IG7FuedusdWHVQRjpA3OVD9KUWp/IPegcv0s5qSqRLBjib7FlAeWxN+VL0Ew43tuPJBY2HKhEecuizmO1Q==", + "version": "0.2.21", + "resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.2.21.tgz", + "integrity": "sha512-1yMne+4BGLbHbtyu/VyXWcLiefUE1+K3ZGfVTyKM4BH4ZwDFRGoWUGhhx+tKRX4Tu9z7+8JN67SjnwacyNWK5g==", "license": "Apache-2.0", "dependencies": { - "@firebase/component": "0.6.13", - "@firebase/messaging": "0.12.17", - "@firebase/util": "1.11.0", + "@firebase/component": "0.6.17", + "@firebase/messaging": "0.12.21", + "@firebase/util": "1.12.0", "tslib": "^2.1.0" }, "peerDependencies": { @@ -1663,15 +1769,15 @@ "license": "Apache-2.0" }, "node_modules/@firebase/performance": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.7.2.tgz", - "integrity": "sha512-DXLLp0R0jdxH/yTmv+WTkOzsLl8YYecXh4lGZE0dzqC0IV8k+AxpLSSWvOTCkAETze8yEU/iF+PtgYVlGjfMMQ==", + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.7.6.tgz", + "integrity": "sha512-AsOz74dSTlyQGlnnbLWXiHFAsrxhpssPOsFFi4HgOJ5DjzkK7ZdZ/E9uMPrwFoXJyMVoybGRuqsL/wkIbFITsA==", "license": "Apache-2.0", "dependencies": { - "@firebase/component": "0.6.13", - "@firebase/installations": "0.6.13", + "@firebase/component": "0.6.17", + "@firebase/installations": "0.6.17", "@firebase/logger": "0.4.4", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.0", "tslib": "^2.1.0", "web-vitals": "^4.2.4" }, @@ -1680,16 +1786,16 @@ } }, "node_modules/@firebase/performance-compat": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.2.15.tgz", - "integrity": "sha512-wUxsw7hGBEMN6XfvYQqwPIQp5LcJXawWM5tmYp6L7ClCoTQuEiCKHWWVurJgN8Q1YHzoHVgjNfPQAOVu29iMVg==", + "version": "0.2.19", + "resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.2.19.tgz", + "integrity": "sha512-4cU0T0BJ+LZK/E/UwFcvpBCVdkStgBMQwBztM9fJPT6udrEUk3ugF5/HT+E2Z22FCXtIaXDukJbYkE/c3c6IHw==", "license": "Apache-2.0", "dependencies": { - "@firebase/component": "0.6.13", + "@firebase/component": "0.6.17", "@firebase/logger": "0.4.4", - "@firebase/performance": "0.7.2", + "@firebase/performance": "0.7.6", "@firebase/performance-types": "0.2.3", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.0", "tslib": "^2.1.0" }, "peerDependencies": { @@ -1703,15 +1809,15 @@ "license": "Apache-2.0" }, "node_modules/@firebase/remote-config": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.6.0.tgz", - "integrity": "sha512-Yrk4l5+6FJLPHC6irNHMzgTtJ3NfHXlAXVChCBdNFtgmzyGmufNs/sr8oA0auEfIJ5VpXCaThRh3P4OdQxiAlQ==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.6.4.tgz", + "integrity": "sha512-ZyLJRT46wtycyz2+opEkGaoFUOqRQjt/0NX1WfUISOMCI/PuVoyDjqGpq24uK+e8D5NknyTpiXCVq5dowhScmg==", "license": "Apache-2.0", "dependencies": { - "@firebase/component": "0.6.13", - "@firebase/installations": "0.6.13", + "@firebase/component": "0.6.17", + "@firebase/installations": "0.6.17", "@firebase/logger": "0.4.4", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.0", "tslib": "^2.1.0" }, "peerDependencies": { @@ -1719,16 +1825,16 @@ } }, "node_modules/@firebase/remote-config-compat": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.2.13.tgz", - "integrity": "sha512-UmHoO7TxAEJPIZf8e1Hy6CeFGMeyjqSCpgoBkQZYXFI2JHhzxIyDpr8jVKJJN1dmAePKZ5EX7dC13CmcdTOl7Q==", + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.2.17.tgz", + "integrity": "sha512-KelsBD0sXSC0u3esr/r6sJYGRN6pzn3bYuI/6pTvvmZbjBlxQkRabHAVH6d+YhLcjUXKIAYIjZszczd1QJtOyA==", "license": "Apache-2.0", "dependencies": { - "@firebase/component": "0.6.13", + "@firebase/component": "0.6.17", "@firebase/logger": "0.4.4", - "@firebase/remote-config": "0.6.0", + "@firebase/remote-config": "0.6.4", "@firebase/remote-config-types": "0.4.0", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.0", "tslib": "^2.1.0" }, "peerDependencies": { @@ -1742,13 +1848,13 @@ "license": "Apache-2.0" }, "node_modules/@firebase/storage": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.13.7.tgz", - "integrity": "sha512-FkRyc24rK+Y6EaQ1tYFm3TevBnnfSNA0VyTfew2hrYyL/aYfatBg7HOgktUdB4kWMHNA9VoTotzZTGoLuK92wg==", + "version": "0.13.13", + "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.13.13.tgz", + "integrity": "sha512-E+MTNcBgpoAynicgVb2ZsHCuEOO4aAiUX5ahNwe/1dEyZpo2H4DwFqKQRNK/sdAIgBbjBwcfV2p0MdPFGIR0Ew==", "license": "Apache-2.0", "dependencies": { - "@firebase/component": "0.6.13", - "@firebase/util": "1.11.0", + "@firebase/component": "0.6.17", + "@firebase/util": "1.12.0", "tslib": "^2.1.0" }, "engines": { @@ -1759,15 +1865,15 @@ } }, "node_modules/@firebase/storage-compat": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.3.17.tgz", - "integrity": "sha512-CBlODWEZ5b6MJWVh21VZioxwxNwVfPA9CAdsk+ZgVocJQQbE2oDW1XJoRcgthRY1HOitgbn4cVrM+NlQtuUYhw==", + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.3.23.tgz", + "integrity": "sha512-B/ufkT/R/tSvc2av+vP6ZYybGn26FwB9YVDYg/6Bro+5TN3VEkCeNmfnX3XLa2DSdXUTZAdWCbMxW0povGa4MA==", "license": "Apache-2.0", "dependencies": { - "@firebase/component": "0.6.13", - "@firebase/storage": "0.13.7", + "@firebase/component": "0.6.17", + "@firebase/storage": "0.13.13", "@firebase/storage-types": "0.8.3", - "@firebase/util": "1.11.0", + "@firebase/util": "1.12.0", "tslib": "^2.1.0" }, "engines": { @@ -1788,9 +1894,9 @@ } }, "node_modules/@firebase/util": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.11.0.tgz", - "integrity": "sha512-PzSrhIr++KI6y4P6C/IdgBNMkEx0Ex6554/cYd0Hm+ovyFSJtJXqb/3OSIdnBoa2cpwZT1/GW56EmRc5qEc5fQ==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.12.0.tgz", + "integrity": "sha512-Z4rK23xBCwgKDqmzGVMef+Vb4xso2j5Q8OG0vVL4m4fA5ZjPMYQazu8OJJC3vtQRC3SQ/Pgx/6TPNVsCd70QRw==", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { @@ -1800,26 +1906,6 @@ "node": ">=18.0.0" } }, - "node_modules/@firebase/vertexai": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@firebase/vertexai/-/vertexai-1.2.1.tgz", - "integrity": "sha512-cukZ5ne2RsOWB4PB1EO6nTXgOLxPMKDJfEn+XnSV5ZKWM0ID5o0DvbyS59XihFaBzmy2SwJldP5ap7/xUnW4jA==", - "license": "Apache-2.0", - "dependencies": { - "@firebase/app-check-interop-types": "0.3.3", - "@firebase/component": "0.6.13", - "@firebase/logger": "0.4.4", - "@firebase/util": "1.11.0", - "tslib": "^2.1.0" - }, - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "@firebase/app": "0.x", - "@firebase/app-types": "0.x" - } - }, "node_modules/@firebase/webchannel-wrapper": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-1.0.3.tgz", @@ -1837,28 +1923,28 @@ } }, "node_modules/@floating-ui/core": { - "version": "1.6.9", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz", - "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.1.tgz", + "integrity": "sha512-azI0DrjMMfIug/ExbBaeDVJXcY0a7EPvPjb2xAJPa4HeimBX+Z18HK8QQR3jb6356SnDDdxx+hinMLcJEDdOjw==", "license": "MIT", "dependencies": { "@floating-ui/utils": "^0.2.9" } }, "node_modules/@floating-ui/dom": { - "version": "1.6.13", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz", - "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.1.tgz", + "integrity": "sha512-cwsmW/zyw5ltYTUeeYJ60CnQuPqmGwuGVhG9w0PRaRKkAyi38BT5CKrpIbb+jtahSwUl04cWzSx9ZOIxeS6RsQ==", "license": "MIT", "dependencies": { - "@floating-ui/core": "^1.6.0", + "@floating-ui/core": "^1.7.1", "@floating-ui/utils": "^0.2.9" } }, "node_modules/@floating-ui/react-dom": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", - "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.3.tgz", + "integrity": "sha512-huMBfiU9UnQ2oBwIhgzyIiSpVgvlDstU8CX0AF+wS+KzmYMs0J2a3GwuFHV1Lz+jlrQGeC1fF+Nv0QoumyV0bA==", "license": "MIT", "dependencies": { "@floating-ui/dom": "^1.0.0" @@ -1906,9 +1992,9 @@ } }, "node_modules/@hookform/resolvers": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-5.0.1.tgz", - "integrity": "sha512-u/+Jp83luQNx9AdyW2fIPGY6Y7NG68eN2ZW8FOJYL+M0i4s49+refdJdOp/A9n9HFQtQs3HIDHQvX3ZET2o7YA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-5.1.1.tgz", + "integrity": "sha512-J/NVING3LMAEvexJkyTLjruSm7aOFx7QX21pzkiJfMoNG0wl5aFEjLTl7ay7IQb9EWY6AkrBy7tHL2Alijpdcg==", "license": "MIT", "dependencies": { "@standard-schema/utils": "^0.3.0" @@ -1986,9 +2072,9 @@ } }, "node_modules/@humanwhocodes/retry": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", - "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -2000,9 +2086,9 @@ } }, "node_modules/@ianvs/prettier-plugin-sort-imports": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@ianvs/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.4.1.tgz", - "integrity": "sha512-F0/Hrcfpy8WuxlQyAWJTEren/uxKhYonOGY4OyWmwRdeTvkh9mMSCxowZLjNkhwi/2ipqCgtXwwOk7tW0mWXkA==", + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@ianvs/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.4.2.tgz", + "integrity": "sha512-KkVFy3TLh0OFzimbZglMmORi+vL/i2OFhEs5M07R9w0IwWAGpsNNyE4CY/2u0YoMF5bawKC2+8/fUH60nnNtjw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -2014,7 +2100,7 @@ }, "peerDependencies": { "@vue/compiler-sfc": "2.7.x || 3.x", - "prettier": "2 || 3" + "prettier": "2 || 3 || ^4.0.0-0" }, "peerDependenciesMeta": { "@vue/compiler-sfc": { @@ -2383,6 +2469,19 @@ "url": "https://opencollective.com/libvips" } }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", @@ -2437,21 +2536,21 @@ } }, "node_modules/@ledgerhq/devices": { - "version": "8.4.4", - "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-8.4.4.tgz", - "integrity": "sha512-sz/ryhe/R687RHtevIE9RlKaV8kkKykUV4k29e7GAVwzHX1gqG+O75cu1NCJUHLbp3eABV5FdvZejqRUlLis9A==", + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-8.4.7.tgz", + "integrity": "sha512-CljHIaPmtv93H2If1Zs1xW0pgg+M37bAoJkm6+V6Yw5S0MgFWFpLnTTNgCvHXyD8pG0+uq8TuOXUiG1oAV5AyA==", "license": "Apache-2.0", "dependencies": { - "@ledgerhq/errors": "^6.19.1", - "@ledgerhq/logs": "^6.12.0", + "@ledgerhq/errors": "^6.22.0", + "@ledgerhq/logs": "^6.13.0", "rxjs": "^7.8.1", "semver": "^7.3.5" } }, "node_modules/@ledgerhq/errors": { - "version": "6.19.1", - "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-6.19.1.tgz", - "integrity": "sha512-75yK7Nnit/Gp7gdrJAz0ipp31CCgncRp+evWt6QawQEtQKYEDfGo10QywgrrBBixeRxwnMy1DP6g2oCWRf1bjw==", + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-6.22.0.tgz", + "integrity": "sha512-rXtpIOfHL62jWB7o77PNFD4EDYdcqyMeVgt7TZcmTkWT78cK+YYSUTMrNuGLhnZZZTMLWH023Wgt65OfKIdGBQ==", "license": "Apache-2.0" }, "node_modules/@ledgerhq/hw-app-str": { @@ -2490,9 +2589,9 @@ } }, "node_modules/@ledgerhq/logs": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-6.12.0.tgz", - "integrity": "sha512-ExDoj1QV5eC6TEbMdLUMMk9cfvNKhhv5gXol4SmULRVCx/3iyCPhJ74nsb3S0Vb+/f+XujBEj3vQn5+cwS0fNA==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-6.13.0.tgz", + "integrity": "sha512-4+qRW2Pc8V+btL0QEmdB2X+uyx0kOWMWE1/LWsq5sZy3Q5tpi4eItJS6mB0XL3wGW59RQ+8bchNQQ1OW/va8Og==", "license": "Apache-2.0" }, "node_modules/@lit-labs/ssr-dom-shim": { @@ -2611,15 +2710,15 @@ } }, "node_modules/@napi-rs/wasm-runtime": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.9.tgz", - "integrity": "sha512-OKRBiajrrxB9ATokgEQoG87Z25c67pCpYcCwmXYX8PBftC9pBfN18gnm/fh1wurSLEKIAt+QRFLFCQISrb66Jg==", + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.11.tgz", + "integrity": "sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==", "dev": true, "license": "MIT", "optional": true, "dependencies": { - "@emnapi/core": "^1.4.0", - "@emnapi/runtime": "^1.4.0", + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", "@tybys/wasm-util": "^0.9.0" } }, @@ -3044,6 +3143,19 @@ "rxjs": ">=7.0.0" } }, + "node_modules/@noble/ciphers": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz", + "integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==", + "license": "MIT", + "peer": true, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@noble/curves": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", @@ -3208,13 +3320,44 @@ "integrity": "sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==", "license": "MIT" }, + "node_modules/@radix-ui/react-accordion": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.2.11.tgz", + "integrity": "sha512-l3W5D54emV2ues7jjeG1xcyN7S3jnK3zE2zHqgn0CmMsy9lNJwmgcrmaxS+7ipw15FAivzKNzH3d5EcGoFKw0A==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-collapsible": "1.1.11", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-arrow": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.4.tgz", - "integrity": "sha512-qz+fxrqgNxG0dYew5l7qR3c7wdgRu1XVUHGnGYX7rg5HM4p9SWaRmJwfgR3J0SgyUKayLmzQIun+N6rWRgiRKw==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz", + "integrity": "sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==", "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.1.0" + "@radix-ui/react-primitive": "2.1.3" }, "peerDependencies": { "@types/react": "*", @@ -3232,13 +3375,13 @@ } }, "node_modules/@radix-ui/react-avatar": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.7.tgz", - "integrity": "sha512-V7ODUt4mUoJTe3VUxZw6nfURxaPALVqmDQh501YmaQsk3D8AZQrOPRnfKn4H7JGDLBc0KqLhT94H79nV88ppNg==", + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.10.tgz", + "integrity": "sha512-V8piFfWapM5OmNCXTzVQY+E1rDa53zY+MQ4Y7356v4fFz6vqCyUtIz2rUD44ZEdwg78/jKmMJHj07+C/Z/rcog==", "license": "MIT", "dependencies": { "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-primitive": "2.1.0", + "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-is-hydrated": "0.1.0", "@radix-ui/react-use-layout-effect": "1.1.1" @@ -3288,32 +3431,37 @@ } } }, - "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/primitive": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.2.tgz", - "integrity": "sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==", - "license": "MIT" - }, - "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-primitive": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.0.tgz", + "integrity": "sha512-/J/FhLdK0zVcILOwt5g+dH4KnkonCtkVJsa2G6JmvbbtZfBEI1gMsO3QMjseL4F/SwfAMt1Vc/0XKYKq+xJ1sw==", "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.2.0" + }, "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { "optional": true + }, + "@types/react-dom": { + "optional": true } } }, - "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-context": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz", - "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", + "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-slot": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.0.tgz", + "integrity": "sha512-ujc+V6r0HNDviYqIK3rW4ffgYiZ8g5DEHrGJVk4x7kTlLXRDILnKX9vAUYeIsLOoDpDJ0ujpqMkjH4w2ofuo6w==", "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" @@ -3324,151 +3472,19 @@ } } }, - "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-presence": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.4.tgz", - "integrity": "sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA==", + "node_modules/@radix-ui/react-collapsible": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.11.tgz", + "integrity": "sha512-2qrRsVGSCYasSz1RFOorXwl0H7g7J1frQtgpQgYrt+MOidtPAINHn9CPovQXb83r8ahapdx3Tu0fa/pdFFSdPg==", "license": "MIT", "dependencies": { + "@radix-ui/primitive": "1.1.2", "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-primitive": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.0.tgz", - "integrity": "sha512-/J/FhLdK0zVcILOwt5g+dH4KnkonCtkVJsa2G6JmvbbtZfBEI1gMsO3QMjseL4F/SwfAMt1Vc/0XKYKq+xJ1sw==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-slot": "1.2.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-slot": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.0.tgz", - "integrity": "sha512-ujc+V6r0HNDviYqIK3rW4ffgYiZ8g5DEHrGJVk4x7kTlLXRDILnKX9vAUYeIsLOoDpDJ0ujpqMkjH4w2ofuo6w==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-use-controllable-state": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz", - "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-effect-event": "0.0.2", - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", - "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-use-previous": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.1.tgz", - "integrity": "sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-use-size": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz", - "integrity": "sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-collapsible": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.8.tgz", - "integrity": "sha512-hxEsLvK9WxIAPyxdDRULL4hcaSjMZCfP7fHB0Z1uUnDoDBat1Zh46hwYfa69DeZAbJrPckjf0AGAtEZyvDyJbw==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-presence": "1.1.4", - "@radix-ui/react-primitive": "2.1.0", - "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { @@ -3487,15 +3503,15 @@ } }, "node_modules/@radix-ui/react-collection": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.4.tgz", - "integrity": "sha512-cv4vSf7HttqXilDnAnvINd53OTl1/bjUYVZrkFnA7nwmY9Ob2POUy0WY0sfqBAe1s5FyKsyceQlqiEGPYNTadg==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz", + "integrity": "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==", "license": "MIT", "dependencies": { "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-primitive": "2.1.0", - "@radix-ui/react-slot": "1.2.0" + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", @@ -3543,22 +3559,22 @@ } }, "node_modules/@radix-ui/react-dialog": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.11.tgz", - "integrity": "sha512-yI7S1ipkP5/+99qhSI6nthfo/tR6bL6Zgxi/+1UO6qPa6UeM6nlafWcQ65vB4rU2XjgjMfMhI3k9Y5MztA62VQ==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.14.tgz", + "integrity": "sha512-+CpweKjqpzTmwRwcYECQcNYbI8V9VSQt0SNFKeEBLgfucbsLssU6Ppq7wUdNXEGb573bMjFhVjKVll8rmV6zMw==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.2", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dismissable-layer": "1.1.7", + "@radix-ui/react-dismissable-layer": "1.1.10", "@radix-ui/react-focus-guards": "1.1.2", - "@radix-ui/react-focus-scope": "1.1.4", + "@radix-ui/react-focus-scope": "1.1.7", "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-portal": "1.1.6", + "@radix-ui/react-portal": "1.1.9", "@radix-ui/react-presence": "1.1.4", - "@radix-ui/react-primitive": "2.1.0", - "@radix-ui/react-slot": "1.2.0", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", "@radix-ui/react-use-controllable-state": "1.2.2", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.6.3" @@ -3594,14 +3610,14 @@ } }, "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.7.tgz", - "integrity": "sha512-j5+WBUdhccJsmH5/H0K6RncjDtoALSEr6jbkaZu+bjw6hOPOhHycr6vEUujl+HBK8kjUfWcoCJXxP6e4lUlMZw==", + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.10.tgz", + "integrity": "sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.2", "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-primitive": "2.1.0", + "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-escape-keydown": "1.1.1" }, @@ -3621,17 +3637,17 @@ } }, "node_modules/@radix-ui/react-dropdown-menu": { - "version": "2.1.12", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.12.tgz", - "integrity": "sha512-VJoMs+BWWE7YhzEQyVwvF9n22Eiyr83HotCVrMQzla/OwRovXCgah7AcaEr4hMNj4gJxSdtIbcHGvmJXOoJVHA==", + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.15.tgz", + "integrity": "sha512-mIBnOjgwo9AH3FyKaSWoSu/dYj6VdhJ7frEPiGTeXCdUFHjl9h3mFh2wwhEtINOmYXWhdpf1rY2minFsmaNgVQ==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.2", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-menu": "2.1.12", - "@radix-ui/react-primitive": "2.1.0", + "@radix-ui/react-menu": "2.1.15", + "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-controllable-state": "1.2.2" }, "peerDependencies": { @@ -3665,13 +3681,13 @@ } }, "node_modules/@radix-ui/react-focus-scope": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.4.tgz", - "integrity": "sha512-r2annK27lIW5w9Ho5NyQgqs0MmgZSTIKXWpVCJaLC1q2kZrZkcqnmHkCHMEmv8XLvsLlurKMPT+kbKkRkm/xVA==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz", + "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==", "license": "MIT", "dependencies": { "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-primitive": "2.1.0", + "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1" }, "peerDependencies": { @@ -3708,12 +3724,12 @@ } }, "node_modules/@radix-ui/react-label": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.4.tgz", - "integrity": "sha512-wy3dqizZnZVV4ja0FNnUhIWNwWdoldXrneEyUcVtLYDAt8ovGS4ridtMAOGgXBBIfggL4BOveVWsjXDORdGEQg==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.7.tgz", + "integrity": "sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==", "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.1.0" + "@radix-ui/react-primitive": "2.1.3" }, "peerDependencies": { "@types/react": "*", @@ -3731,26 +3747,26 @@ } }, "node_modules/@radix-ui/react-menu": { - "version": "2.1.12", - "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.12.tgz", - "integrity": "sha512-+qYq6LfbiGo97Zz9fioX83HCiIYYFNs8zAsVCMQrIakoNYylIzWuoD/anAD3UzvvR6cnswmfRFJFq/zYYq/k7Q==", + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.15.tgz", + "integrity": "sha512-tVlmA3Vb9n8SZSd+YSbuFR66l87Wiy4du+YE+0hzKQEANA+7cWKH1WgqcEX4pXqxUFQKrWQGHdvEfw00TjFiew==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-collection": "1.1.4", + "@radix-ui/react-collection": "1.1.7", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.7", + "@radix-ui/react-dismissable-layer": "1.1.10", "@radix-ui/react-focus-guards": "1.1.2", - "@radix-ui/react-focus-scope": "1.1.4", + "@radix-ui/react-focus-scope": "1.1.7", "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-popper": "1.2.4", - "@radix-ui/react-portal": "1.1.6", + "@radix-ui/react-popper": "1.2.7", + "@radix-ui/react-portal": "1.1.9", "@radix-ui/react-presence": "1.1.4", - "@radix-ui/react-primitive": "2.1.0", - "@radix-ui/react-roving-focus": "1.1.7", - "@radix-ui/react-slot": "1.2.0", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.10", + "@radix-ui/react-slot": "1.2.3", "@radix-ui/react-use-callback-ref": "1.1.1", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.6.3" @@ -3771,23 +3787,23 @@ } }, "node_modules/@radix-ui/react-popover": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.11.tgz", - "integrity": "sha512-yFMfZkVA5G3GJnBgb2PxrrcLKm1ZLWXrbYVgdyTl//0TYEIHS9LJbnyz7WWcZ0qCq7hIlJZpRtxeSeIG5T5oJw==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.14.tgz", + "integrity": "sha512-ODz16+1iIbGUfFEfKx2HTPKizg2MN39uIOV8MXeHnmdd3i/N9Wt7vU46wbHsqA0xoaQyXVcs0KIlBdOA2Y95bw==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.2", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dismissable-layer": "1.1.7", + "@radix-ui/react-dismissable-layer": "1.1.10", "@radix-ui/react-focus-guards": "1.1.2", - "@radix-ui/react-focus-scope": "1.1.4", + "@radix-ui/react-focus-scope": "1.1.7", "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-popper": "1.2.4", - "@radix-ui/react-portal": "1.1.6", + "@radix-ui/react-popper": "1.2.7", + "@radix-ui/react-portal": "1.1.9", "@radix-ui/react-presence": "1.1.4", - "@radix-ui/react-primitive": "2.1.0", - "@radix-ui/react-slot": "1.2.0", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", "@radix-ui/react-use-controllable-state": "1.2.2", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.6.3" @@ -3808,16 +3824,16 @@ } }, "node_modules/@radix-ui/react-popper": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.4.tgz", - "integrity": "sha512-3p2Rgm/a1cK0r/UVkx5F/K9v/EplfjAeIFCGOPYPO4lZ0jtg4iSQXt/YGTSLWaf4x7NG6Z4+uKFcylcTZjeqDA==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.7.tgz", + "integrity": "sha512-IUFAccz1JyKcf/RjB552PlWwxjeCJB8/4KxT7EhBHOJM+mN7LdW+B3kacJXILm32xawcMMjb2i0cIZpo+f9kiQ==", "license": "MIT", "dependencies": { "@floating-ui/react-dom": "^2.0.0", - "@radix-ui/react-arrow": "1.1.4", + "@radix-ui/react-arrow": "1.1.7", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-primitive": "2.1.0", + "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-layout-effect": "1.1.1", "@radix-ui/react-use-rect": "1.1.1", @@ -3840,12 +3856,12 @@ } }, "node_modules/@radix-ui/react-portal": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.6.tgz", - "integrity": "sha512-XmsIl2z1n/TsYFLIdYam2rmFwf9OC/Sh2avkbmVMDuBZIe7hSpM0cYnWPAo7nHOVx8zTuwDZGByfcqLdnzp3Vw==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz", + "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==", "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.1.0", + "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { @@ -3888,12 +3904,12 @@ } }, "node_modules/@radix-ui/react-primitive": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.0.tgz", - "integrity": "sha512-/J/FhLdK0zVcILOwt5g+dH4KnkonCtkVJsa2G6JmvbbtZfBEI1gMsO3QMjseL4F/SwfAMt1Vc/0XKYKq+xJ1sw==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", + "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", "license": "MIT", "dependencies": { - "@radix-ui/react-slot": "1.2.0" + "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", @@ -3911,13 +3927,13 @@ } }, "node_modules/@radix-ui/react-progress": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.1.4.tgz", - "integrity": "sha512-8rl9w7lJdcVPor47Dhws9mUHRHLE+8JEgyJRdNWCpGPa6HIlr3eh+Yn9gyx1CnCLbw5naHsI2gaO9dBWO50vzw==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.1.7.tgz", + "integrity": "sha512-vPdg/tF6YC/ynuBIJlk1mm7Le0VgW6ub6J2UWnTQ7/D23KXcPI1qy+0vBkgKgd38RCMJavBXpB83HPNFMTb0Fg==", "license": "MIT", "dependencies": { "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-primitive": "2.1.0" + "@radix-ui/react-primitive": "2.1.3" }, "peerDependencies": { "@types/react": "*", @@ -3935,18 +3951,18 @@ } }, "node_modules/@radix-ui/react-roving-focus": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.7.tgz", - "integrity": "sha512-C6oAg451/fQT3EGbWHbCQjYTtbyjNO1uzQgMzwyivcHT3GKNEmu1q3UuREhN+HzHAVtv3ivMVK08QlC+PkYw9Q==", + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.10.tgz", + "integrity": "sha512-dT9aOXUen9JSsxnMPv/0VqySQf5eDQ6LCk5Sw28kamz8wSOW2bJdlX2Bg5VUIIcV+6XlHpWTIuTPCf/UNIyq8Q==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-collection": "1.1.4", + "@radix-ui/react-collection": "1.1.7", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-primitive": "2.1.0", + "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-controllable-state": "1.2.2" }, @@ -3996,31 +4012,72 @@ } } }, + "node_modules/@radix-ui/react-scroll-area/node_modules/@radix-ui/react-primitive": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.0.tgz", + "integrity": "sha512-/J/FhLdK0zVcILOwt5g+dH4KnkonCtkVJsa2G6JmvbbtZfBEI1gMsO3QMjseL4F/SwfAMt1Vc/0XKYKq+xJ1sw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.2.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-scroll-area/node_modules/@radix-ui/react-slot": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.0.tgz", + "integrity": "sha512-ujc+V6r0HNDviYqIK3rW4ffgYiZ8g5DEHrGJVk4x7kTlLXRDILnKX9vAUYeIsLOoDpDJ0ujpqMkjH4w2ofuo6w==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-select": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.2.2.tgz", - "integrity": "sha512-HjkVHtBkuq+r3zUAZ/CvNWUGKPfuicGDbgtZgiQuFmNcV5F+Tgy24ep2nsAW2nFgvhGPJVqeBZa6KyVN0EyrBA==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.2.5.tgz", + "integrity": "sha512-HnMTdXEVuuyzx63ME0ut4+sEMYW6oouHWNGUZc7ddvUWIcfCva/AMoqEW/3wnEllriMWBa0RHspCYnfCWJQYmA==", "license": "MIT", "dependencies": { "@radix-ui/number": "1.1.1", "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-collection": "1.1.4", + "@radix-ui/react-collection": "1.1.7", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.7", + "@radix-ui/react-dismissable-layer": "1.1.10", "@radix-ui/react-focus-guards": "1.1.2", - "@radix-ui/react-focus-scope": "1.1.4", + "@radix-ui/react-focus-scope": "1.1.7", "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-popper": "1.2.4", - "@radix-ui/react-portal": "1.1.6", - "@radix-ui/react-primitive": "2.1.0", - "@radix-ui/react-slot": "1.2.0", + "@radix-ui/react-popper": "1.2.7", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-controllable-state": "1.2.2", "@radix-ui/react-use-layout-effect": "1.1.1", "@radix-ui/react-use-previous": "1.1.1", - "@radix-ui/react-visually-hidden": "1.2.0", + "@radix-ui/react-visually-hidden": "1.2.3", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.6.3" }, @@ -4040,12 +4097,12 @@ } }, "node_modules/@radix-ui/react-separator": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.4.tgz", - "integrity": "sha512-2fTm6PSiUm8YPq9W0E4reYuv01EE3aFSzt8edBiXqPHshF8N9+Kymt/k0/R+F3dkY5lQyB/zPtrP82phskLi7w==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.7.tgz", + "integrity": "sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==", "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.1.0" + "@radix-ui/react-primitive": "2.1.3" }, "peerDependencies": { "@types/react": "*", @@ -4095,18 +4152,6 @@ } } }, - "node_modules/@radix-ui/react-slider/node_modules/@radix-ui/number": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.1.tgz", - "integrity": "sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==", - "license": "MIT" - }, - "node_modules/@radix-ui/react-slider/node_modules/@radix-ui/primitive": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.2.tgz", - "integrity": "sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==", - "license": "MIT" - }, "node_modules/@radix-ui/react-slider/node_modules/@radix-ui/react-collection": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.4.tgz", @@ -4133,51 +4178,6 @@ } } }, - "node_modules/@radix-ui/react-slider/node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-slider/node_modules/@radix-ui/react-context": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz", - "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-slider/node_modules/@radix-ui/react-direction": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", - "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-slider/node_modules/@radix-ui/react-primitive": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.0.tgz", @@ -4219,77 +4219,10 @@ } } }, - "node_modules/@radix-ui/react-slider/node_modules/@radix-ui/react-use-controllable-state": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz", - "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-effect-event": "0.0.2", - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-slider/node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", - "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-slider/node_modules/@radix-ui/react-use-previous": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.1.tgz", - "integrity": "sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-slider/node_modules/@radix-ui/react-use-size": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz", - "integrity": "sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-slot": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.0.tgz", - "integrity": "sha512-ujc+V6r0HNDviYqIK3rW4ffgYiZ8g5DEHrGJVk4x7kTlLXRDILnKX9vAUYeIsLOoDpDJ0ujpqMkjH4w2ofuo6w==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", "license": "MIT", "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" @@ -4305,15 +4238,15 @@ } }, "node_modules/@radix-ui/react-switch": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.2.2.tgz", - "integrity": "sha512-7Z8n6L+ifMIIYZ83f28qWSceUpkXuslI2FJ34+kDMTiyj91ENdpdQ7VCidrzj5JfwfZTeano/BnGBbu/jqa5rQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.2.5.tgz", + "integrity": "sha512-5ijLkak6ZMylXsaImpZ8u4Rlf5grRmoc0p0QeX9VJtlrM4f5m3nCTX8tWga/zOA8PZYIR/t0p2Mnvd7InrJ6yQ==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.2", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-primitive": "2.1.0", + "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-controllable-state": "1.2.2", "@radix-ui/react-use-previous": "1.1.1", "@radix-ui/react-use-size": "1.1.1" @@ -4334,9 +4267,9 @@ } }, "node_modules/@radix-ui/react-tabs": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.9.tgz", - "integrity": "sha512-KIjtwciYvquiW/wAFkELZCVnaNLBsYNhTNcvl+zfMAbMhRkcvNuCLXDDd22L0j7tagpzVh/QwbFpwAATg7ILPw==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.12.tgz", + "integrity": "sha512-GTVAlRVrQrSw3cEARM0nAx73ixrWDPNZAruETn3oHCNP6SbZ/hNxdxp+u7VkIEv3/sFoLq1PfcHrl7Pnp0CDpw==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.2", @@ -4344,8 +4277,8 @@ "@radix-ui/react-direction": "1.1.1", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-presence": "1.1.4", - "@radix-ui/react-primitive": "2.1.0", - "@radix-ui/react-roving-focus": "1.1.7", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.10", "@radix-ui/react-use-controllable-state": "1.2.2" }, "peerDependencies": { @@ -4364,23 +4297,23 @@ } }, "node_modules/@radix-ui/react-toast": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.11.tgz", - "integrity": "sha512-Ed2mlOmT+tktOsu2NZBK1bCSHh/uqULu1vWOkpQTVq53EoOuZUZw7FInQoDB3uil5wZc2oe0XN9a7uVZB7/6AQ==", + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.14.tgz", + "integrity": "sha512-nAP5FBxBJGQ/YfUB+r+O6USFVkWq3gAInkxyEnmvEV5jtSbfDhfa4hwX8CraCnbjMLsE7XSf/K75l9xXY7joWg==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.2", - "@radix-ui/react-collection": "1.1.4", + "@radix-ui/react-collection": "1.1.7", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dismissable-layer": "1.1.7", - "@radix-ui/react-portal": "1.1.6", + "@radix-ui/react-dismissable-layer": "1.1.10", + "@radix-ui/react-portal": "1.1.9", "@radix-ui/react-presence": "1.1.4", - "@radix-ui/react-primitive": "2.1.0", + "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-controllable-state": "1.2.2", "@radix-ui/react-use-layout-effect": "1.1.1", - "@radix-ui/react-visually-hidden": "1.2.0" + "@radix-ui/react-visually-hidden": "1.2.3" }, "peerDependencies": { "@types/react": "*", @@ -4398,23 +4331,23 @@ } }, "node_modules/@radix-ui/react-tooltip": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.2.4.tgz", - "integrity": "sha512-DyW8VVeeMSSLFvAmnVnCwvI3H+1tpJFHT50r+tdOoMse9XqYDBCcyux8u3G2y+LOpt7fPQ6KKH0mhs+ce1+Z5w==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.2.7.tgz", + "integrity": "sha512-Ap+fNYwKTYJ9pzqW+Xe2HtMRbQ/EeWkj2qykZ6SuEV4iS/o1bZI5ssJbk4D2r8XuDuOBVz/tIx2JObtuqU+5Zw==", "license": "MIT", "dependencies": { "@radix-ui/primitive": "1.1.2", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dismissable-layer": "1.1.7", + "@radix-ui/react-dismissable-layer": "1.1.10", "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-popper": "1.2.4", - "@radix-ui/react-portal": "1.1.6", + "@radix-ui/react-popper": "1.2.7", + "@radix-ui/react-portal": "1.1.9", "@radix-ui/react-presence": "1.1.4", - "@radix-ui/react-primitive": "2.1.0", - "@radix-ui/react-slot": "1.2.0", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-visually-hidden": "1.2.0" + "@radix-ui/react-visually-hidden": "1.2.3" }, "peerDependencies": { "@types/react": "*", @@ -4483,21 +4416,6 @@ } } }, - "node_modules/@radix-ui/react-use-effect-event/node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", - "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-use-escape-keydown": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz", @@ -4601,12 +4519,12 @@ } }, "node_modules/@radix-ui/react-visually-hidden": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.0.tgz", - "integrity": "sha512-rQj0aAWOpCdCMRbI6pLQm8r7S2BM3YhTa0SzOYD55k+hJA8oo9J+H+9wLM9oMlZWOX/wJWPTzfDfmZkf7LvCfg==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.3.tgz", + "integrity": "sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==", "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.1.0" + "@radix-ui/react-primitive": "2.1.3" }, "peerDependencies": { "@types/react": "*", @@ -4644,61 +4562,58 @@ "license": "MIT" }, "node_modules/@scure/base": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.5.tgz", - "integrity": "sha512-9rE6EOVeIQzt5TSu4v+K523F8u6DhBsoZWPGKlnCshhlDhy0kJzUX4V+tr2dWmzF1GdekvThABoEQBGBQI7xZw==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.6.tgz", + "integrity": "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==", "license": "MIT", "funding": { "url": "https://paulmillr.com/funding/" } }, "node_modules/@scure/bip32": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", - "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz", + "integrity": "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==", "license": "MIT", + "peer": true, "dependencies": { - "@noble/curves": "~1.4.0", - "@noble/hashes": "~1.4.0", - "@scure/base": "~1.1.6" + "@noble/curves": "~1.9.0", + "@noble/hashes": "~1.8.0", + "@scure/base": "~1.2.5" }, "funding": { "url": "https://paulmillr.com/funding/" } }, "node_modules/@scure/bip32/node_modules/@noble/curves": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", - "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.2.tgz", + "integrity": "sha512-HxngEd2XUcg9xi20JkwlLCtYwfoFw4JGkuZpT+WlsPD4gB/cxkvTD8fSsoAnphGZhFdZYKeQIPCuFlWPm1uE0g==", "license": "MIT", + "peer": true, "dependencies": { - "@noble/hashes": "1.4.0" + "@noble/hashes": "1.8.0" + }, + "engines": { + "node": "^14.21.3 || >=16" }, "funding": { "url": "https://paulmillr.com/funding/" } }, "node_modules/@scure/bip32/node_modules/@noble/hashes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", - "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", "license": "MIT", + "peer": true, "engines": { - "node": ">= 16" + "node": "^14.21.3 || >=16" }, "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/@scure/bip32/node_modules/@scure/base": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", - "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==", - "license": "MIT", - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/@scure/bip39": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.6.0.tgz", @@ -4731,9 +4646,9 @@ "license": "MIT" }, "node_modules/@solana-program/compute-budget": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@solana-program/compute-budget/-/compute-budget-0.7.0.tgz", - "integrity": "sha512-/JJSE1fKO5zx7Z55Z2tLGWBDDi7tUE+xMlK8qqkHlY51KpqksMsIBzQMkG9Dqhoe2Cnn5/t3QK1nJKqW6eHzpg==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@solana-program/compute-budget/-/compute-budget-0.8.0.tgz", + "integrity": "sha512-qPKxdxaEsFxebZ4K5RPuy7VQIm/tfJLa1+Nlt3KNA8EYQkz9Xm8htdoEaXVrer9kpgzzp9R3I3Bh6omwCM06tQ==", "license": "Apache-2.0", "peer": true, "peerDependencies": { @@ -4741,9 +4656,9 @@ } }, "node_modules/@solana-program/stake": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@solana-program/stake/-/stake-0.2.0.tgz", - "integrity": "sha512-iHKk3A6Rw/QFJHzagdIBY340Kht2TFK4cNqzisv2uuUDuWqKKQgXpw/0GcdmAd2fa4x7rJA/f/4cyau6ToMBRw==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@solana-program/stake/-/stake-0.2.1.tgz", + "integrity": "sha512-ssNPsJv9XHaA+L7ihzmWGYcm/+XYURQ8UA3wQMKf6ccEHyHOUgoglkkDU/BoA0+wul6HxZUN0tHFymC0qFw6sg==", "license": "MIT", "peer": true, "peerDependencies": { @@ -4771,9 +4686,9 @@ } }, "node_modules/@solana-program/token-2022": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@solana-program/token-2022/-/token-2022-0.4.0.tgz", - "integrity": "sha512-rLcYyjeRq/dW62ju9X+gFYqIIRGuD4vXq6EwM9oQBoURFbFzyo12VUi6v0hNh0dRcru+kUx321qVCAfsWWV/ug==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@solana-program/token-2022/-/token-2022-0.4.2.tgz", + "integrity": "sha512-zIpR5t4s9qEU3hZKupzIBxJ6nUV5/UVyIT400tu9vT1HMs5JHxaTTsb5GUhYjiiTvNwU0MQavbwc4Dl29L0Xvw==", "license": "Apache-2.0", "peer": true, "peerDependencies": { @@ -4782,59 +4697,60 @@ } }, "node_modules/@solana/accounts": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/accounts/-/accounts-2.1.0.tgz", - "integrity": "sha512-1JOBiLFeIeHmGx7k1b23UWF9vM1HAh9GBMCzr5rBPrGSBs+QUgxBJ3+yrRg+UPEOSELubqo7qoOVFUKYsb1nXw==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/accounts/-/accounts-2.1.1.tgz", + "integrity": "sha512-Q9mG0o/6oyiUSw1CXCkG50TWlYiODJr3ZilEDLIyXpYJzOstRZM4XOzbRACveX4PXFoufPzpR1sSVK6qfcUUCw==", "license": "MIT", "peer": true, "dependencies": { - "@solana/addresses": "2.1.0", - "@solana/codecs-core": "2.1.0", - "@solana/codecs-strings": "2.1.0", - "@solana/errors": "2.1.0", - "@solana/rpc-spec": "2.1.0", - "@solana/rpc-types": "2.1.0" + "@solana/addresses": "2.1.1", + "@solana/codecs-core": "2.1.1", + "@solana/codecs-strings": "2.1.1", + "@solana/errors": "2.1.1", + "@solana/rpc-spec": "2.1.1", + "@solana/rpc-types": "2.1.1" }, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/addresses": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/addresses/-/addresses-2.1.0.tgz", - "integrity": "sha512-IgiRuju2yLz14GnrysOPSNZbZQ8F+7jhx7FYZLrbKogf6NX4wy4ijLHxRsLFqP8o8aY69BZULkM9MwrSjsZi7A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/addresses/-/addresses-2.1.1.tgz", + "integrity": "sha512-yX6+brBXFmirxXDJCBDNKDYbGZHMZHaZS4NJWZs31DTe5To3Ky3Y9g3wFEGAX242kfNyJcgg5OeoBuZ7vdFycQ==", "license": "MIT", "peer": true, "dependencies": { - "@solana/assertions": "2.1.0", - "@solana/codecs-core": "2.1.0", - "@solana/codecs-strings": "2.1.0", - "@solana/errors": "2.1.0" + "@solana/assertions": "2.1.1", + "@solana/codecs-core": "2.1.1", + "@solana/codecs-strings": "2.1.1", + "@solana/errors": "2.1.1", + "@solana/nominal-types": "2.1.1" }, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/assertions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/assertions/-/assertions-2.1.0.tgz", - "integrity": "sha512-KCYmxFRsg897Ec7yGdpc0rniOlqGD3NpicmIjWIV87uiXX5uFco4t+01sKyFlhsv4T4OgHxngMsxkfQ3AUkFVg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/assertions/-/assertions-2.1.1.tgz", + "integrity": "sha512-ln6dXkliyb9ybqLGFf5Gn+LJaPZGmer9KloIFfHiiSfYFdoAqOu6+pVY+323SKWXHG+hHl9VkwuZYpSp02OroA==", "license": "MIT", "peer": true, "dependencies": { - "@solana/errors": "2.1.0" + "@solana/errors": "2.1.1" }, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/buffer-layout": { @@ -4850,100 +4766,100 @@ } }, "node_modules/@solana/codecs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/codecs/-/codecs-2.1.0.tgz", - "integrity": "sha512-C0TnfrpbTg7zoIFYfM65ofeL2AWEz80OsD6mjVdcTKpb1Uj7XuBuNLss3dMnatPQaL7RagD9VLA5/WfYayyteQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/codecs/-/codecs-2.1.1.tgz", + "integrity": "sha512-89Fv22fZ5dNiXjOKh6I3U1D/lVO/dF/cPHexdiqjS5k5R5uKeK3506rhcnc4ciawQAoOkDwHzW+HitUumF2PJg==", "license": "MIT", "peer": true, "dependencies": { - "@solana/codecs-core": "2.1.0", - "@solana/codecs-data-structures": "2.1.0", - "@solana/codecs-numbers": "2.1.0", - "@solana/codecs-strings": "2.1.0", - "@solana/options": "2.1.0" + "@solana/codecs-core": "2.1.1", + "@solana/codecs-data-structures": "2.1.1", + "@solana/codecs-numbers": "2.1.1", + "@solana/codecs-strings": "2.1.1", + "@solana/options": "2.1.1" }, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/codecs-core": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-2.1.0.tgz", - "integrity": "sha512-SR7pKtmJBg2mhmkel2NeHA1pz06QeQXdMv8WJoIR9m8F/hw80K/612uaYbwTt2nkK0jg/Qn/rNSd7EcJ4SBGjw==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-2.1.1.tgz", + "integrity": "sha512-iPQW3UZ2Vi7QFBo2r9tw0NubtH8EdrhhmZulx6lC8V5a+qjaxovtM/q/UW2BTNpqqHLfO0tIcLyBLrNH4HTWPg==", "license": "MIT", "dependencies": { - "@solana/errors": "2.1.0" + "@solana/errors": "2.1.1" }, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/codecs-data-structures": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/codecs-data-structures/-/codecs-data-structures-2.1.0.tgz", - "integrity": "sha512-oDF5ek54kirqJ09q8k/qEpobBiWOhd3CkkGOTyfjsmTF/IGIigNbdYIakxV3+vudBeaNBw08y0XdBYI4JL/nqA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/codecs-data-structures/-/codecs-data-structures-2.1.1.tgz", + "integrity": "sha512-OcR7FIhWDFqg6gEslbs2GVKeDstGcSDpkZo9SeV4bm2RLd1EZfxGhWW+yHZfHqOZiIkw9w+aY45bFgKrsLQmFw==", "license": "MIT", "peer": true, "dependencies": { - "@solana/codecs-core": "2.1.0", - "@solana/codecs-numbers": "2.1.0", - "@solana/errors": "2.1.0" + "@solana/codecs-core": "2.1.1", + "@solana/codecs-numbers": "2.1.1", + "@solana/errors": "2.1.1" }, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/codecs-numbers": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-2.1.0.tgz", - "integrity": "sha512-XMu4yw5iCgQnMKsxSWPPOrGgtaohmupN3eyAtYv3K3C/MJEc5V90h74k5B1GUCiHvcrdUDO9RclNjD9lgbjFag==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-2.1.1.tgz", + "integrity": "sha512-m20IUPJhPUmPkHSlZ2iMAjJ7PaYUvlMtFhCQYzm9BEBSI6OCvXTG3GAPpAnSGRBfg5y+QNqqmKn4QHU3B6zzCQ==", "license": "MIT", "dependencies": { - "@solana/codecs-core": "2.1.0", - "@solana/errors": "2.1.0" + "@solana/codecs-core": "2.1.1", + "@solana/errors": "2.1.1" }, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/codecs-strings": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/codecs-strings/-/codecs-strings-2.1.0.tgz", - "integrity": "sha512-O/eJFLzFrHomcCR1Y5QbIqoPo7iaJaWNnIeskB4mVhVjLyjlJS4WtBP2NBRzM9uJXaXyOxxKroqqO9zFsHOpvQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/codecs-strings/-/codecs-strings-2.1.1.tgz", + "integrity": "sha512-uhj+A7eT6IJn4nuoX8jDdvZa7pjyZyN+k64EZ8+aUtJGt5Ft4NjRM8Jl5LljwYBWKQCgouVuigZHtTO2yAWExA==", "license": "MIT", "peer": true, "dependencies": { - "@solana/codecs-core": "2.1.0", - "@solana/codecs-numbers": "2.1.0", - "@solana/errors": "2.1.0" + "@solana/codecs-core": "2.1.1", + "@solana/codecs-numbers": "2.1.1", + "@solana/errors": "2.1.1" }, "engines": { "node": ">=20.18.0" }, "peerDependencies": { "fastestsmallesttextencoderdecoder": "^1.0.22", - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/errors": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.1.0.tgz", - "integrity": "sha512-l+GxAv0Ar4d3c3PlZdA9G++wFYZREEbbRyAFP8+n8HSg0vudCuzogh/13io6hYuUhG/9Ve8ARZNamhV7UScKNw==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.1.1.tgz", + "integrity": "sha512-sj6DaWNbSJFvLzT8UZoabMefQUfSW/8tXK7NTiagsDmh+Q87eyQDDC9L3z+mNmx9b6dEf6z660MOIplDD2nfEw==", "license": "MIT", "dependencies": { - "chalk": "^5.3.0", + "chalk": "^5.4.1", "commander": "^13.1.0" }, "bin": { @@ -4953,527 +4869,546 @@ "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/fast-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/fast-stable-stringify/-/fast-stable-stringify-2.1.0.tgz", - "integrity": "sha512-a8vR92qbe/VsvQ1BpN3PIEwnoHD2fTHEwCJh9GG58z3R15RIjk73gc0khjcdg4U1tZwTJqWkvk8SbDIgGdOgMA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/fast-stable-stringify/-/fast-stable-stringify-2.1.1.tgz", + "integrity": "sha512-+gyW8plyMOURMuO9iL6eQBb5wCRwMGLO5T6jBIDGws8KR4tOtIBlQnQnzk81nNepE6lbf8tLCxS8KdYgT/P+wQ==", "license": "MIT", "peer": true, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/functional": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/functional/-/functional-2.1.0.tgz", - "integrity": "sha512-RVij8Av4F2uUOFcEC8n9lgD72e9gQMritmGHhMh+G91Xops4I6Few+oQ++XgSTiL2t3g3Cs0QZ13onZ0FL45FQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/functional/-/functional-2.1.1.tgz", + "integrity": "sha512-HePJ49Cyz4Mb26zm5holPikm8bzsBH5zLR41+gIw9jJBmIteILNnk2OO1dVkb6aJnP42mdhWSXCo3VVEGT6aEw==", "license": "MIT", "peer": true, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/instructions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/instructions/-/instructions-2.1.0.tgz", - "integrity": "sha512-wfn6e7Rgm0Sw/Th1v/pXsKTvloZvAAQI7j1yc9WcIk9ngqH5p6LhqMMkrwYPB2oTk8+MMr7SZ4E+2eK2gL6ODA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/instructions/-/instructions-2.1.1.tgz", + "integrity": "sha512-Zx48hav9Lu+JuC+U0QJ8B7g7bXQZElXCjvxosIibU2C7ygDuq0ffOly0/irWJv2xmHYm6z8Hm1ILbZ5w0GhDQQ==", "license": "MIT", "peer": true, "dependencies": { - "@solana/codecs-core": "2.1.0", - "@solana/errors": "2.1.0" + "@solana/codecs-core": "2.1.1", + "@solana/errors": "2.1.1" }, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/keys/-/keys-2.1.0.tgz", - "integrity": "sha512-esY1+dlZjB18hZML5p+YPec29wi3HH0SzKx7RiqF//dI2cJ6vHfq3F+7ArbNnF6R2YCLFtl7DzS/tkqR2Xkxeg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/keys/-/keys-2.1.1.tgz", + "integrity": "sha512-SXuhUz1c2mVnPnB+9Z9Yw6HPluIZbMlSByr+vPFLgaPYM356bRcNnu1pa28tONiQzRBFvl9qL08SL0OaYsmqPg==", "license": "MIT", "peer": true, "dependencies": { - "@solana/assertions": "2.1.0", - "@solana/codecs-core": "2.1.0", - "@solana/codecs-strings": "2.1.0", - "@solana/errors": "2.1.0" + "@solana/assertions": "2.1.1", + "@solana/codecs-core": "2.1.1", + "@solana/codecs-strings": "2.1.1", + "@solana/errors": "2.1.1", + "@solana/nominal-types": "2.1.1" }, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/kit": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/kit/-/kit-2.1.0.tgz", - "integrity": "sha512-vqaHROLKp89xdIbaKVG6BQ44uMN9E6/rSTeltkvquD2qdTObssafGDbAKVFjwZhlNO+sdzHDCLekGabn5VAL6A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/kit/-/kit-2.1.1.tgz", + "integrity": "sha512-vV0otDSO9HFWIkAv7lxfeR7W6ruS/kqFYzTeRI+EuaZCgKdueavZnx9ydbpMCXis3BZ4Ao+k/ebzVWXMVvz+Lw==", "license": "MIT", "peer": true, "dependencies": { - "@solana/accounts": "2.1.0", - "@solana/addresses": "2.1.0", - "@solana/codecs": "2.1.0", - "@solana/errors": "2.1.0", - "@solana/functional": "2.1.0", - "@solana/instructions": "2.1.0", - "@solana/keys": "2.1.0", - "@solana/programs": "2.1.0", - "@solana/rpc": "2.1.0", - "@solana/rpc-parsed-types": "2.1.0", - "@solana/rpc-spec-types": "2.1.0", - "@solana/rpc-subscriptions": "2.1.0", - "@solana/rpc-types": "2.1.0", - "@solana/signers": "2.1.0", - "@solana/sysvars": "2.1.0", - "@solana/transaction-confirmation": "2.1.0", - "@solana/transaction-messages": "2.1.0", - "@solana/transactions": "2.1.0" + "@solana/accounts": "2.1.1", + "@solana/addresses": "2.1.1", + "@solana/codecs": "2.1.1", + "@solana/errors": "2.1.1", + "@solana/functional": "2.1.1", + "@solana/instructions": "2.1.1", + "@solana/keys": "2.1.1", + "@solana/programs": "2.1.1", + "@solana/rpc": "2.1.1", + "@solana/rpc-parsed-types": "2.1.1", + "@solana/rpc-spec-types": "2.1.1", + "@solana/rpc-subscriptions": "2.1.1", + "@solana/rpc-types": "2.1.1", + "@solana/signers": "2.1.1", + "@solana/sysvars": "2.1.1", + "@solana/transaction-confirmation": "2.1.1", + "@solana/transaction-messages": "2.1.1", + "@solana/transactions": "2.1.1" }, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/nominal-types": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/nominal-types/-/nominal-types-2.1.1.tgz", + "integrity": "sha512-EpdDhuoATsm9bmuduv6yoNm1EKCz2tlq13nAazaVyQvkMBHhVelyT/zq0ruUplQZbl7qyYr5hG7p1SfGgQbgSQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" } }, "node_modules/@solana/options": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/options/-/options-2.1.0.tgz", - "integrity": "sha512-T/vJCr8qnwK6HxriOPXCrx31IpA9ZYecxuOzQ3G74kIayED4spmpXp6PLtRYR/fo2LZ6UcgHN0qSgONnvwEweg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/options/-/options-2.1.1.tgz", + "integrity": "sha512-rnEExUGVOAV79kiFUEl/51gmSbBYxlcuw2VPnbAV/q53mIHoTgCwDD576N9A8wFftxaJHQFBdNuKiRrnU/fFHA==", "license": "MIT", "peer": true, "dependencies": { - "@solana/codecs-core": "2.1.0", - "@solana/codecs-data-structures": "2.1.0", - "@solana/codecs-numbers": "2.1.0", - "@solana/codecs-strings": "2.1.0", - "@solana/errors": "2.1.0" + "@solana/codecs-core": "2.1.1", + "@solana/codecs-data-structures": "2.1.1", + "@solana/codecs-numbers": "2.1.1", + "@solana/codecs-strings": "2.1.1", + "@solana/errors": "2.1.1" }, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/programs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/programs/-/programs-2.1.0.tgz", - "integrity": "sha512-9Y30/yUbTR99+QRN2ukNXQQTGY68oKmVrXnh/et6StM1JF5WHvAJqBigsHG5bt6KxTISoRuncBnH/IRnDqPxKg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/programs/-/programs-2.1.1.tgz", + "integrity": "sha512-fVOA4SEijrIrpG7GoBWhid43w3pT7RTfmMYciVKMb17s2GcnLLcTDOahPf0mlIctLtbF8PgImtzUkXQyuFGr8Q==", "license": "MIT", "peer": true, "dependencies": { - "@solana/addresses": "2.1.0", - "@solana/errors": "2.1.0" + "@solana/addresses": "2.1.1", + "@solana/errors": "2.1.1" }, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/promises": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/promises/-/promises-2.1.0.tgz", - "integrity": "sha512-eQJaQXA2kD4dVyifzhslV3wOvq27fwOJ4az89BQ4Cz83zPbR94xOeDShwcXrKBYqaUf6XqH5MzdEo14t4tKAFQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/promises/-/promises-2.1.1.tgz", + "integrity": "sha512-8M+QBgJAQD0nhHzaezwwHH4WWfJEBPiiPAjMNBbbbTHA8+oYFIGgY1HwDUePK8nrT1Q1dX3gC+epBCqBi/nnGg==", "license": "MIT", "peer": true, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/rpc": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/rpc/-/rpc-2.1.0.tgz", - "integrity": "sha512-myg9qAo6b2WKyHSMXURQykb+ZRnNEXBPLEcwRwkos8STzPPyRFg6ady2s0FCQQTtL/pVjanIU2bObZIzbMGugA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/rpc/-/rpc-2.1.1.tgz", + "integrity": "sha512-X15xAx8U0ATznkoNGPUkGIuxTIOmdew1pjQRHAtPSKQTiPbAnO1sowpt4UT7V7bB6zKPu+xKvhFizUuon0PZxg==", "license": "MIT", "peer": true, "dependencies": { - "@solana/errors": "2.1.0", - "@solana/fast-stable-stringify": "2.1.0", - "@solana/functional": "2.1.0", - "@solana/rpc-api": "2.1.0", - "@solana/rpc-spec": "2.1.0", - "@solana/rpc-spec-types": "2.1.0", - "@solana/rpc-transformers": "2.1.0", - "@solana/rpc-transport-http": "2.1.0", - "@solana/rpc-types": "2.1.0" + "@solana/errors": "2.1.1", + "@solana/fast-stable-stringify": "2.1.1", + "@solana/functional": "2.1.1", + "@solana/rpc-api": "2.1.1", + "@solana/rpc-spec": "2.1.1", + "@solana/rpc-spec-types": "2.1.1", + "@solana/rpc-transformers": "2.1.1", + "@solana/rpc-transport-http": "2.1.1", + "@solana/rpc-types": "2.1.1" }, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/rpc-api": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-api/-/rpc-api-2.1.0.tgz", - "integrity": "sha512-4yCnHYHFlz9VffivoY5q/HVeBjT59byB2gmg7UyC3ktxD28AlF9jjsE5tJKiapAKr2J3KWm0D/rH/QwW14cGeA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/rpc-api/-/rpc-api-2.1.1.tgz", + "integrity": "sha512-MTBuoRA9HtxW+CRpj1Ls5XVhDe00g8mW2Ib4/0k6ThFS0+cmjf+O78d8hgjQMqTtuzzSLZ4355+C7XEAuzSQ4g==", "license": "MIT", "peer": true, "dependencies": { - "@solana/addresses": "2.1.0", - "@solana/codecs-core": "2.1.0", - "@solana/codecs-strings": "2.1.0", - "@solana/errors": "2.1.0", - "@solana/keys": "2.1.0", - "@solana/rpc-parsed-types": "2.1.0", - "@solana/rpc-spec": "2.1.0", - "@solana/rpc-transformers": "2.1.0", - "@solana/rpc-types": "2.1.0", - "@solana/transaction-messages": "2.1.0", - "@solana/transactions": "2.1.0" + "@solana/addresses": "2.1.1", + "@solana/codecs-core": "2.1.1", + "@solana/codecs-strings": "2.1.1", + "@solana/errors": "2.1.1", + "@solana/keys": "2.1.1", + "@solana/rpc-parsed-types": "2.1.1", + "@solana/rpc-spec": "2.1.1", + "@solana/rpc-transformers": "2.1.1", + "@solana/rpc-types": "2.1.1", + "@solana/transaction-messages": "2.1.1", + "@solana/transactions": "2.1.1" }, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/rpc-parsed-types": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-parsed-types/-/rpc-parsed-types-2.1.0.tgz", - "integrity": "sha512-mRzHemxlWDS9p1fPQNKwL+1vEOUMG8peSUJb0X/NbM12yjowDNdzM++fkOgIyCKDPddfkcoNmNrQmr2jwjdN1Q==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/rpc-parsed-types/-/rpc-parsed-types-2.1.1.tgz", + "integrity": "sha512-+n1IWYYglevvNE1neMiLOH6W67EzmWj8GaRlwGxcyu6MwSc/8x1bd2hnEkgK6md+ObPOxoOBdxQXIY/xnZgLcw==", "license": "MIT", "peer": true, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/rpc-spec": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-spec/-/rpc-spec-2.1.0.tgz", - "integrity": "sha512-NPAIM5EY7Jke0mHnmoMpgCEb/nZKIo+bgVFK/u+z74gY0JnCNt0DfocStUUQtlhqSmTyoHamt3lfxp4GT2zXbA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/rpc-spec/-/rpc-spec-2.1.1.tgz", + "integrity": "sha512-3Hd21XpaKtW3tG0oXAUlc1k0hX7/eqHpf8Gg744sr9G3ib5gT7EopcZRsH5LdESgS0nbv/c75TznCXjaUyRi+g==", "license": "MIT", "peer": true, "dependencies": { - "@solana/errors": "2.1.0", - "@solana/rpc-spec-types": "2.1.0" + "@solana/errors": "2.1.1", + "@solana/rpc-spec-types": "2.1.1" }, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/rpc-spec-types": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-spec-types/-/rpc-spec-types-2.1.0.tgz", - "integrity": "sha512-NxcZ8piXMyCdbNUL6d36QJfL2UAQEN33StlGku0ltTVe1nrokZ5WRNjSPohU1fODlNaZzTvUFzvUkM1yGCkyzw==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/rpc-spec-types/-/rpc-spec-types-2.1.1.tgz", + "integrity": "sha512-3/G/MTi/c70TVZcB0DJjh5AGV7xqOYrjrpnIg+rLZuH65qHMimWiTHj0k8lxTzRMrN06Ed0+Q7SCw9hO/grTHA==", "license": "MIT", "peer": true, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/rpc-subscriptions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-subscriptions/-/rpc-subscriptions-2.1.0.tgz", - "integrity": "sha512-dTyI03VlueE3s7mA/OBlA5l6yKUUKHMJd31tpzxV3AFnqE/QPS5NVrF/WY6pPBobLJiCP0UFOe7eR/MKP9SUCA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/rpc-subscriptions/-/rpc-subscriptions-2.1.1.tgz", + "integrity": "sha512-xGLIuJHxg0oCNiS40NW/5BPxHM5RurLcEmBAN1VmVtINWTm8wSbEo85a5q7cbMlPP4Vu/28lD7IITjS5qb84UQ==", "license": "MIT", "peer": true, "dependencies": { - "@solana/errors": "2.1.0", - "@solana/fast-stable-stringify": "2.1.0", - "@solana/functional": "2.1.0", - "@solana/promises": "2.1.0", - "@solana/rpc-spec-types": "2.1.0", - "@solana/rpc-subscriptions-api": "2.1.0", - "@solana/rpc-subscriptions-channel-websocket": "2.1.0", - "@solana/rpc-subscriptions-spec": "2.1.0", - "@solana/rpc-transformers": "2.1.0", - "@solana/rpc-types": "2.1.0", - "@solana/subscribable": "2.1.0" + "@solana/errors": "2.1.1", + "@solana/fast-stable-stringify": "2.1.1", + "@solana/functional": "2.1.1", + "@solana/promises": "2.1.1", + "@solana/rpc-spec-types": "2.1.1", + "@solana/rpc-subscriptions-api": "2.1.1", + "@solana/rpc-subscriptions-channel-websocket": "2.1.1", + "@solana/rpc-subscriptions-spec": "2.1.1", + "@solana/rpc-transformers": "2.1.1", + "@solana/rpc-types": "2.1.1", + "@solana/subscribable": "2.1.1" }, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/rpc-subscriptions-api": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-2.1.0.tgz", - "integrity": "sha512-de1dBRSE2CUwoZHMXQ/0v7iC+/pG0+iYY8jLHGGNxtKrYbTnV08mXQbaAMrmv2Rk8ZFmfJWbqbYZ9dRWdO3P5g==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-2.1.1.tgz", + "integrity": "sha512-b4JuVScYGaEgO3jszYf7LqXdJK4GoUIevXcyQWq4Zk+R7P41VxGQWa2kzdPX9LIi+UGBmCThdRBfgOYyyHRKDg==", "license": "MIT", "peer": true, "dependencies": { - "@solana/addresses": "2.1.0", - "@solana/keys": "2.1.0", - "@solana/rpc-subscriptions-spec": "2.1.0", - "@solana/rpc-transformers": "2.1.0", - "@solana/rpc-types": "2.1.0", - "@solana/transaction-messages": "2.1.0", - "@solana/transactions": "2.1.0" + "@solana/addresses": "2.1.1", + "@solana/keys": "2.1.1", + "@solana/rpc-subscriptions-spec": "2.1.1", + "@solana/rpc-transformers": "2.1.1", + "@solana/rpc-types": "2.1.1", + "@solana/transaction-messages": "2.1.1", + "@solana/transactions": "2.1.1" }, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/rpc-subscriptions-channel-websocket": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-2.1.0.tgz", - "integrity": "sha512-goJe9dv0cs967HJ382vSX8yapXgQzRHCmH323LsXrrpj/s3Eb3yUwJq7AcHgoh4gKIqyAfGybq/bE5Aa8Pcm9g==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-2.1.1.tgz", + "integrity": "sha512-xEDnMXnwMtKDEpzmIXTkxxvLqGsxqlKILmyfGsQOMJ9RHYkHmz/8MarHcjnYhyZ5lrs2irN/wExUNlSZTegSEw==", "license": "MIT", "peer": true, "dependencies": { - "@solana/errors": "2.1.0", - "@solana/functional": "2.1.0", - "@solana/rpc-subscriptions-spec": "2.1.0", - "@solana/subscribable": "2.1.0" + "@solana/errors": "2.1.1", + "@solana/functional": "2.1.1", + "@solana/rpc-subscriptions-spec": "2.1.1", + "@solana/subscribable": "2.1.1" }, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5", + "typescript": ">=5.3.3", "ws": "^8.18.0" } }, "node_modules/@solana/rpc-subscriptions-spec": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-2.1.0.tgz", - "integrity": "sha512-Uqasfd3Tlr22lC/Vy5dToF0e68dMKPdnt4ks7FwXuPdEbNRM/TDGb0GqG+bt/d3IIrNOCA5Y8vsE0nQHGrWG/w==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-2.1.1.tgz", + "integrity": "sha512-ANT5Tub/ZqqewRtklz02km8iCUe0qwBGi3wsKTgiX7kRx3izHn6IHl90w1Y19wPd692mfZW8+Pk5PUrMSXhR3g==", "license": "MIT", "peer": true, "dependencies": { - "@solana/errors": "2.1.0", - "@solana/promises": "2.1.0", - "@solana/rpc-spec-types": "2.1.0", - "@solana/subscribable": "2.1.0" + "@solana/errors": "2.1.1", + "@solana/promises": "2.1.1", + "@solana/rpc-spec-types": "2.1.1", + "@solana/subscribable": "2.1.1" }, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/rpc-transformers": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-transformers/-/rpc-transformers-2.1.0.tgz", - "integrity": "sha512-E2xPlaCu6tNO00v4HIJxJCYkoNwgVJYad5sxbIUZOQBWwXnWIcll2jUT4bWKpBGq5vFDYfkzRBr8Rco3DhfXqg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/rpc-transformers/-/rpc-transformers-2.1.1.tgz", + "integrity": "sha512-rBOCDQjOI1eQICkqYFV43SsiPdLcahgnrGuDNorS3uOe70pQRPs1PTuuEHqLBwuu9GRw89ifRy49aBNUNmX8uQ==", "license": "MIT", "peer": true, "dependencies": { - "@solana/errors": "2.1.0", - "@solana/functional": "2.1.0", - "@solana/rpc-spec-types": "2.1.0", - "@solana/rpc-types": "2.1.0" + "@solana/errors": "2.1.1", + "@solana/functional": "2.1.1", + "@solana/nominal-types": "2.1.1", + "@solana/rpc-spec-types": "2.1.1", + "@solana/rpc-types": "2.1.1" }, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/rpc-transport-http": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-transport-http/-/rpc-transport-http-2.1.0.tgz", - "integrity": "sha512-E3UovTBid4/S8QDd9FkADVKfyG+v7CW5IqI4c27ZDKfazCsnDLLkqh98C6BvNCqi278HKBui4lI2GoFpCq89Pw==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/rpc-transport-http/-/rpc-transport-http-2.1.1.tgz", + "integrity": "sha512-Wp7018VaPqhodQjQTDlCM7vTYlm3AdmRyvPZiwv5uzFgnC8B0xhEZW+ZSt1zkSXS6WrKqtufobuBFGtfG6v5KQ==", "license": "MIT", "peer": true, "dependencies": { - "@solana/errors": "2.1.0", - "@solana/rpc-spec": "2.1.0", - "@solana/rpc-spec-types": "2.1.0", - "undici-types": "^7.3.0" + "@solana/errors": "2.1.1", + "@solana/rpc-spec": "2.1.1", + "@solana/rpc-spec-types": "2.1.1", + "undici-types": "^7.9.0" }, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/rpc-types": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/rpc-types/-/rpc-types-2.1.0.tgz", - "integrity": "sha512-1ODnhmpR1X/GjB7hs4gVR3mcCagfPQV0dzq/2DNuCiMjx2snn64KP5WoAHfBEyoC9/Rb36+JpNj/hLAOikipKA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/rpc-types/-/rpc-types-2.1.1.tgz", + "integrity": "sha512-IaQKiWyTVvDoD0/3IlUxRY3OADj3cEjfLFCp1JvEdl0ANGReHp4jtqUqrYEeAdN/tGmGoiHt3n4x61wR0zFoJA==", "license": "MIT", "peer": true, "dependencies": { - "@solana/addresses": "2.1.0", - "@solana/codecs-core": "2.1.0", - "@solana/codecs-numbers": "2.1.0", - "@solana/codecs-strings": "2.1.0", - "@solana/errors": "2.1.0" + "@solana/addresses": "2.1.1", + "@solana/codecs-core": "2.1.1", + "@solana/codecs-numbers": "2.1.1", + "@solana/codecs-strings": "2.1.1", + "@solana/errors": "2.1.1", + "@solana/nominal-types": "2.1.1" }, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/signers": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/signers/-/signers-2.1.0.tgz", - "integrity": "sha512-Yq0JdJnCecRsSBshNWy+OIRmAGeVfjwIh9Z+H1jv8u8p+dJCOreKakTWuxMt5tnj3q5K1mPcak9O2PqVPZ0teA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/signers/-/signers-2.1.1.tgz", + "integrity": "sha512-OfYEUgrJSrBDTC43kSQCz9A12A9+6xt2azmG8pP78yXN/bDzDmYF2i4nSzg/JzjjA5hBBYtDJ+15qpS/4cSgug==", "license": "MIT", "peer": true, "dependencies": { - "@solana/addresses": "2.1.0", - "@solana/codecs-core": "2.1.0", - "@solana/errors": "2.1.0", - "@solana/instructions": "2.1.0", - "@solana/keys": "2.1.0", - "@solana/transaction-messages": "2.1.0", - "@solana/transactions": "2.1.0" + "@solana/addresses": "2.1.1", + "@solana/codecs-core": "2.1.1", + "@solana/errors": "2.1.1", + "@solana/instructions": "2.1.1", + "@solana/keys": "2.1.1", + "@solana/nominal-types": "2.1.1", + "@solana/transaction-messages": "2.1.1", + "@solana/transactions": "2.1.1" }, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/subscribable": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/subscribable/-/subscribable-2.1.0.tgz", - "integrity": "sha512-xi12Cm889+uT5sRKnIzr7nLnHAp3hiR3dqIzrT1P7z7iEGp8OnqUQIQCHlgozFHM2cPW+6685NQXk1l1ImuJIw==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/subscribable/-/subscribable-2.1.1.tgz", + "integrity": "sha512-k6qe/Iu94nVtapap9Ei+3mm14gx1H+7YgB6n2bj9qJCdVN6z6ZN9nPtDY2ViIH4qAnxyh7pJKF7iCwNC/iALcw==", "license": "MIT", "peer": true, "dependencies": { - "@solana/errors": "2.1.0" + "@solana/errors": "2.1.1" }, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/sysvars": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/sysvars/-/sysvars-2.1.0.tgz", - "integrity": "sha512-GXu9yS0zIebmM1Unqw/XFpYuvug03m42w98ioOPV/yiHzECggGRGpHGD9RLVYnkyz0eL4NRbnJ5dAEu/fvGe0A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/sysvars/-/sysvars-2.1.1.tgz", + "integrity": "sha512-bG7hNFpFqZm6qk763z5/P9g9Nxc0WXe+aYl6CQSptaPsmqUz1GhlBjAov9ePVFb29MmyMZ5bA+kmCTytiHK1fQ==", "license": "MIT", "peer": true, "dependencies": { - "@solana/accounts": "2.1.0", - "@solana/codecs": "2.1.0", - "@solana/errors": "2.1.0", - "@solana/rpc-types": "2.1.0" + "@solana/accounts": "2.1.1", + "@solana/codecs": "2.1.1", + "@solana/errors": "2.1.1", + "@solana/rpc-types": "2.1.1" }, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/transaction-confirmation": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/transaction-confirmation/-/transaction-confirmation-2.1.0.tgz", - "integrity": "sha512-VxOvtvs2e9h5u73PHyE2TptLAMO5x6dOXlOgvq1Nk6l3rKM2HAsd+KDpN7gjOo8/EgItMMmyEilXygWWRgpSIA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/transaction-confirmation/-/transaction-confirmation-2.1.1.tgz", + "integrity": "sha512-hXv0D80u1jNEq2/k1o9IBXXq7+JYg8x4tm0kVWjzvdJjYow8EkQay5quq5o0ciFfWqlOyFwYRC7AGrKc3imE7A==", "license": "MIT", "peer": true, "dependencies": { - "@solana/addresses": "2.1.0", - "@solana/codecs-strings": "2.1.0", - "@solana/errors": "2.1.0", - "@solana/keys": "2.1.0", - "@solana/promises": "2.1.0", - "@solana/rpc": "2.1.0", - "@solana/rpc-subscriptions": "2.1.0", - "@solana/rpc-types": "2.1.0", - "@solana/transaction-messages": "2.1.0", - "@solana/transactions": "2.1.0" + "@solana/addresses": "2.1.1", + "@solana/codecs-strings": "2.1.1", + "@solana/errors": "2.1.1", + "@solana/keys": "2.1.1", + "@solana/promises": "2.1.1", + "@solana/rpc": "2.1.1", + "@solana/rpc-subscriptions": "2.1.1", + "@solana/rpc-types": "2.1.1", + "@solana/transaction-messages": "2.1.1", + "@solana/transactions": "2.1.1" }, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/transaction-messages": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/transaction-messages/-/transaction-messages-2.1.0.tgz", - "integrity": "sha512-+GPzZHLYNFbqHKoiL8mYALp7eAXtAbI6zLViZpIM3zUbVNU3q5+FCKGv6jCBnxs+3QCbeapu+W1OyfDa6BUtTQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/transaction-messages/-/transaction-messages-2.1.1.tgz", + "integrity": "sha512-sDf3OWV5X1C8huqsap+DyHIBAUenNJd3h7j/WI9MeIJZdGEtqxssGa2ixhecsMaevtUBKKJM9RqAvfTdRTAnLw==", "license": "MIT", "peer": true, "dependencies": { - "@solana/addresses": "2.1.0", - "@solana/codecs-core": "2.1.0", - "@solana/codecs-data-structures": "2.1.0", - "@solana/codecs-numbers": "2.1.0", - "@solana/errors": "2.1.0", - "@solana/functional": "2.1.0", - "@solana/instructions": "2.1.0", - "@solana/rpc-types": "2.1.0" + "@solana/addresses": "2.1.1", + "@solana/codecs-core": "2.1.1", + "@solana/codecs-data-structures": "2.1.1", + "@solana/codecs-numbers": "2.1.1", + "@solana/errors": "2.1.1", + "@solana/functional": "2.1.1", + "@solana/instructions": "2.1.1", + "@solana/nominal-types": "2.1.1", + "@solana/rpc-types": "2.1.1" }, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/transactions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@solana/transactions/-/transactions-2.1.0.tgz", - "integrity": "sha512-QeM4sCItReeIy5LU7LhGkz7RPfMPTg/Qo8h0LSfhiJiPTOHOhElmh42vkLJmwPl83+MsKtisyPQNK6penM2nAw==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@solana/transactions/-/transactions-2.1.1.tgz", + "integrity": "sha512-LX/7XfcHH9o0Kpv+tpnCl56IaatD/0sMWw9NnaeZ2f7pJyav9Jmeu5LJXvdHJw2jh277UEqc9bHwKruoMrtOTw==", "license": "MIT", "peer": true, "dependencies": { - "@solana/addresses": "2.1.0", - "@solana/codecs-core": "2.1.0", - "@solana/codecs-data-structures": "2.1.0", - "@solana/codecs-numbers": "2.1.0", - "@solana/codecs-strings": "2.1.0", - "@solana/errors": "2.1.0", - "@solana/functional": "2.1.0", - "@solana/instructions": "2.1.0", - "@solana/keys": "2.1.0", - "@solana/rpc-types": "2.1.0", - "@solana/transaction-messages": "2.1.0" + "@solana/addresses": "2.1.1", + "@solana/codecs-core": "2.1.1", + "@solana/codecs-data-structures": "2.1.1", + "@solana/codecs-numbers": "2.1.1", + "@solana/codecs-strings": "2.1.1", + "@solana/errors": "2.1.1", + "@solana/functional": "2.1.1", + "@solana/instructions": "2.1.1", + "@solana/keys": "2.1.1", + "@solana/nominal-types": "2.1.1", + "@solana/rpc-types": "2.1.1", + "@solana/transaction-messages": "2.1.1" }, "engines": { "node": ">=20.18.0" }, "peerDependencies": { - "typescript": ">=5" + "typescript": ">=5.3.3" } }, "node_modules/@solana/wallet-adapter-base": { - "version": "0.9.26", - "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-base/-/wallet-adapter-base-0.9.26.tgz", - "integrity": "sha512-1RcmfesJ8bTT+zfg4w+Z+wisj11HR+vWwl/pS6v/zwQPe0LSzWDpkXRv9JuDSCuTcmlglEfjEqFAW+5EubK/Jg==", + "version": "0.9.27", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-base/-/wallet-adapter-base-0.9.27.tgz", + "integrity": "sha512-kXjeNfNFVs/NE9GPmysBRKQ/nf+foSaq3kfVSeMcO/iVgigyRmB551OjU3WyAolLG/1jeEfKLqF9fKwMCRkUqg==", "license": "Apache-2.0", "dependencies": { "@solana/wallet-standard-features": "^1.3.0", @@ -5697,8 +5632,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@stellar/js-xdr/-/js-xdr-3.1.2.tgz", "integrity": "sha512-VVolPL5goVEIsvuGqDc5uiKxV03lzfWdvYg1KikvwheDmTBO68CKDji3bAZ/kppZrx5iTA8z3Ld5yuytcvhvOQ==", - "license": "Apache-2.0", - "peer": true + "license": "Apache-2.0" }, "node_modules/@stellar/stellar-base": { "version": "12.1.1", @@ -5719,21 +5653,41 @@ } }, "node_modules/@stellar/stellar-sdk": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@stellar/stellar-sdk/-/stellar-sdk-12.3.0.tgz", - "integrity": "sha512-F2DYFop/M5ffXF0lvV5Ezjk+VWNKg0QDX8gNhwehVU3y5LYA3WAY6VcCarMGPaG9Wdgoeh1IXXzOautpqpsltw==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@stellar/stellar-sdk/-/stellar-sdk-13.0.0.tgz", + "integrity": "sha512-+wvmKi+XWwu27nLYTM17EgBdpbKohEkOfCIK4XKfsI4WpMXAqvnqSm98i9h5dAblNB+w8BJqzGs1JY0PtTGm4A==", "license": "Apache-2.0", - "peer": true, "dependencies": { - "@stellar/stellar-base": "^12.1.1", + "@stellar/stellar-base": "^13.0.1", "axios": "^1.7.7", "bignumber.js": "^9.1.2", "eventsource": "^2.0.2", + "feaxios": "^0.0.20", "randombytes": "^2.1.0", "toml": "^3.0.0", "urijs": "^1.19.1" } }, + "node_modules/@stellar/stellar-sdk/node_modules/@stellar/stellar-base": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/@stellar/stellar-base/-/stellar-base-13.1.0.tgz", + "integrity": "sha512-90EArG+eCCEzDGj3OJNoCtwpWDwxjv+rs/RNPhvg4bulpjN/CSRj+Ys/SalRcfM4/WRC5/qAfjzmJBAuquWhkA==", + "license": "Apache-2.0", + "dependencies": { + "@stellar/js-xdr": "^3.1.2", + "base32.js": "^0.1.0", + "bignumber.js": "^9.1.2", + "buffer": "^6.0.3", + "sha.js": "^2.3.6", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "sodium-native": "^4.3.3" + } + }, "node_modules/@swc/counter": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", @@ -5750,46 +5704,54 @@ } }, "node_modules/@tailwindcss/node": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.5.tgz", - "integrity": "sha512-CBhSWo0vLnWhXIvpD0qsPephiaUYfHUX3U9anwDaHZAeuGpTiB3XmsxPAN6qX7bFhipyGBqOa1QYQVVhkOUGxg==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.10.tgz", + "integrity": "sha512-2ACf1znY5fpRBwRhMgj9ZXvb2XZW8qs+oTfotJ2C5xR0/WNL7UHZ7zXl6s+rUqedL1mNi+0O+WQr5awGowS3PQ==", "dev": true, "license": "MIT", "dependencies": { + "@ampproject/remapping": "^2.3.0", "enhanced-resolve": "^5.18.1", "jiti": "^2.4.2", - "lightningcss": "1.29.2", - "tailwindcss": "4.1.5" + "lightningcss": "1.30.1", + "magic-string": "^0.30.17", + "source-map-js": "^1.2.1", + "tailwindcss": "4.1.10" } }, "node_modules/@tailwindcss/oxide": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.5.tgz", - "integrity": "sha512-1n4br1znquEvyW/QuqMKQZlBen+jxAbvyduU87RS8R3tUSvByAkcaMTkJepNIrTlYhD+U25K4iiCIxE6BGdRYA==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.10.tgz", + "integrity": "sha512-v0C43s7Pjw+B9w21htrQwuFObSkio2aV/qPx/mhrRldbqxbWJK6KizM+q7BF1/1CmuLqZqX3CeYF7s7P9fbA8Q==", "dev": true, + "hasInstallScript": true, "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.4", + "tar": "^7.4.3" + }, "engines": { "node": ">= 10" }, "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.1.5", - "@tailwindcss/oxide-darwin-arm64": "4.1.5", - "@tailwindcss/oxide-darwin-x64": "4.1.5", - "@tailwindcss/oxide-freebsd-x64": "4.1.5", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.5", - "@tailwindcss/oxide-linux-arm64-gnu": "4.1.5", - "@tailwindcss/oxide-linux-arm64-musl": "4.1.5", - "@tailwindcss/oxide-linux-x64-gnu": "4.1.5", - "@tailwindcss/oxide-linux-x64-musl": "4.1.5", - "@tailwindcss/oxide-wasm32-wasi": "4.1.5", - "@tailwindcss/oxide-win32-arm64-msvc": "4.1.5", - "@tailwindcss/oxide-win32-x64-msvc": "4.1.5" + "@tailwindcss/oxide-android-arm64": "4.1.10", + "@tailwindcss/oxide-darwin-arm64": "4.1.10", + "@tailwindcss/oxide-darwin-x64": "4.1.10", + "@tailwindcss/oxide-freebsd-x64": "4.1.10", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.10", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.10", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.10", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.10", + "@tailwindcss/oxide-linux-x64-musl": "4.1.10", + "@tailwindcss/oxide-wasm32-wasi": "4.1.10", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.10", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.10" } }, "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.5.tgz", - "integrity": "sha512-LVvM0GirXHED02j7hSECm8l9GGJ1RfgpWCW+DRn5TvSaxVsv28gRtoL4aWKGnXqwvI3zu1GABeDNDVZeDPOQrw==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.10.tgz", + "integrity": "sha512-VGLazCoRQ7rtsCzThaI1UyDu/XRYVyH4/EWiaSX6tFglE+xZB5cvtC5Omt0OQ+FfiIVP98su16jDVHDEIuH4iQ==", "cpu": [ "arm64" ], @@ -5804,9 +5766,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.5.tgz", - "integrity": "sha512-//TfCA3pNrgnw4rRJOqavW7XUk8gsg9ddi8cwcsWXp99tzdBAZW0WXrD8wDyNbqjW316Pk2hiN/NJx/KWHl8oA==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.10.tgz", + "integrity": "sha512-ZIFqvR1irX2yNjWJzKCqTCcHZbgkSkSkZKbRM3BPzhDL/18idA8uWCoopYA2CSDdSGFlDAxYdU2yBHwAwx8euQ==", "cpu": [ "arm64" ], @@ -5821,9 +5783,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.5.tgz", - "integrity": "sha512-XQorp3Q6/WzRd9OalgHgaqgEbjP3qjHrlSUb5k1EuS1Z9NE9+BbzSORraO+ecW432cbCN7RVGGL/lSnHxcd+7Q==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.10.tgz", + "integrity": "sha512-eCA4zbIhWUFDXoamNztmS0MjXHSEJYlvATzWnRiTqJkcUteSjO94PoRHJy1Xbwp9bptjeIxxBHh+zBWFhttbrQ==", "cpu": [ "x64" ], @@ -5838,9 +5800,9 @@ } }, "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.5.tgz", - "integrity": "sha512-bPrLWbxo8gAo97ZmrCbOdtlz/Dkuy8NK97aFbVpkJ2nJ2Jo/rsCbu0TlGx8joCuA3q6vMWTSn01JY46iwG+clg==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.10.tgz", + "integrity": "sha512-8/392Xu12R0cc93DpiJvNpJ4wYVSiciUlkiOHOSOQNH3adq9Gi/dtySK7dVQjXIOzlpSHjeCL89RUUI8/GTI6g==", "cpu": [ "x64" ], @@ -5855,9 +5817,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.5.tgz", - "integrity": "sha512-1gtQJY9JzMAhgAfvd/ZaVOjh/Ju/nCoAsvOVJenWZfs05wb8zq+GOTnZALWGqKIYEtyNpCzvMk+ocGpxwdvaVg==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.10.tgz", + "integrity": "sha512-t9rhmLT6EqeuPT+MXhWhlRYIMSfh5LZ6kBrC4FS6/+M1yXwfCtp24UumgCWOAJVyjQwG+lYva6wWZxrfvB+NhQ==", "cpu": [ "arm" ], @@ -5872,9 +5834,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.5.tgz", - "integrity": "sha512-dtlaHU2v7MtdxBXoqhxwsWjav7oim7Whc6S9wq/i/uUMTWAzq/gijq1InSgn2yTnh43kR+SFvcSyEF0GCNu1PQ==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.10.tgz", + "integrity": "sha512-3oWrlNlxLRxXejQ8zImzrVLuZ/9Z2SeKoLhtCu0hpo38hTO2iL86eFOu4sVR8cZc6n3z7eRXXqtHJECa6mFOvA==", "cpu": [ "arm64" ], @@ -5889,9 +5851,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.5.tgz", - "integrity": "sha512-fg0F6nAeYcJ3CriqDT1iVrqALMwD37+sLzXs8Rjy8Z1ZHshJoYceodfyUwGJEsQoTyWbliFNRs2wMQNXtT7MVA==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.10.tgz", + "integrity": "sha512-saScU0cmWvg/Ez4gUmQWr9pvY9Kssxt+Xenfx1LG7LmqjcrvBnw4r9VjkFcqmbBb7GCBwYNcZi9X3/oMda9sqQ==", "cpu": [ "arm64" ], @@ -5906,9 +5868,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.5.tgz", - "integrity": "sha512-SO+F2YEIAHa1AITwc8oPwMOWhgorPzzcbhWEb+4oLi953h45FklDmM8dPSZ7hNHpIk9p/SCZKUYn35t5fjGtHA==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.10.tgz", + "integrity": "sha512-/G3ao/ybV9YEEgAXeEg28dyH6gs1QG8tvdN9c2MNZdUXYBaIY/Gx0N6RlJzfLy/7Nkdok4kaxKPHKJUlAaoTdA==", "cpu": [ "x64" ], @@ -5923,9 +5885,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.5.tgz", - "integrity": "sha512-6UbBBplywkk/R+PqqioskUeXfKcBht3KU7juTi1UszJLx0KPXUo10v2Ok04iBJIaDPkIFkUOVboXms5Yxvaz+g==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.10.tgz", + "integrity": "sha512-LNr7X8fTiKGRtQGOerSayc2pWJp/9ptRYAa4G+U+cjw9kJZvkopav1AQc5HHD+U364f71tZv6XamaHKgrIoVzA==", "cpu": [ "x64" ], @@ -5940,9 +5902,9 @@ } }, "node_modules/@tailwindcss/oxide-wasm32-wasi": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.5.tgz", - "integrity": "sha512-hwALf2K9FHuiXTPqmo1KeOb83fTRNbe9r/Ixv9ZNQ/R24yw8Ge1HOWDDgTdtzntIaIUJG5dfXCf4g9AD4RiyhQ==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.10.tgz", + "integrity": "sha512-d6ekQpopFQJAcIK2i7ZzWOYGZ+A6NzzvQ3ozBvWFdeyqfOZdYHU66g5yr+/HC4ipP1ZgWsqa80+ISNILk+ae/Q==", "bundleDependencies": [ "@napi-rs/wasm-runtime", "@emnapi/core", @@ -5961,7 +5923,7 @@ "@emnapi/core": "^1.4.3", "@emnapi/runtime": "^1.4.3", "@emnapi/wasi-threads": "^1.0.2", - "@napi-rs/wasm-runtime": "^0.2.9", + "@napi-rs/wasm-runtime": "^0.2.10", "@tybys/wasm-util": "^0.9.0", "tslib": "^2.8.0" }, @@ -5970,9 +5932,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.5.tgz", - "integrity": "sha512-oDKncffWzaovJbkuR7/OTNFRJQVdiw/n8HnzaCItrNQUeQgjy7oUiYpsm9HUBgpmvmDpSSbGaCa2Evzvk3eFmA==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.10.tgz", + "integrity": "sha512-i1Iwg9gRbwNVOCYmnigWCCgow8nDWSFmeTUU5nbNx3rqbe4p0kRbEqLwLJbYZKmSSp23g4N6rCDmm7OuPBXhDA==", "cpu": [ "arm64" ], @@ -5987,9 +5949,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.5.tgz", - "integrity": "sha512-WiR4dtyrFdbb+ov0LK+7XsFOsG+0xs0PKZKkt41KDn9jYpO7baE3bXiudPVkTqUEwNfiglCygQHl2jklvSBi7Q==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.10.tgz", + "integrity": "sha512-sGiJTjcBSfGq2DVRtaSljq5ZgZS2SDHSIfhOylkBvHVjwOsodBhnb3HdmiKkVuUGKD0I7G63abMOVaskj1KpOA==", "cpu": [ "x64" ], @@ -6004,213 +5966,225 @@ } }, "node_modules/@tailwindcss/postcss": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.1.5.tgz", - "integrity": "sha512-5lAC2/pzuyfhsFgk6I58HcNy6vPK3dV/PoPxSDuOTVbDvCddYHzHiJZZInGIY0venvzzfrTEUAXJFULAfFmObg==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.1.10.tgz", + "integrity": "sha512-B+7r7ABZbkXJwpvt2VMnS6ujcDoR2OOcFaqrLIo1xbcdxje4Vf+VgJdBzNNbrAjBj/rLZ66/tlQ1knIGNLKOBQ==", "dev": true, "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", - "@tailwindcss/node": "4.1.5", - "@tailwindcss/oxide": "4.1.5", + "@tailwindcss/node": "4.1.10", + "@tailwindcss/oxide": "4.1.10", "postcss": "^8.4.41", - "tailwindcss": "4.1.5" - } - }, - "node_modules/@tanstack/query-core": { - "version": "5.76.2", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.76.2.tgz", - "integrity": "sha512-PFGwWh5ss9cJQ67l6bZ7hqXbisX2gy13G2jP+VGY1bgdbCfOMWh6UBVnN62QbFXro6CCoX9hYzTnZHr6Rz00YQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" + "tailwindcss": "4.1.10" } }, - "node_modules/@tanstack/react-query": { - "version": "5.76.2", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.76.2.tgz", - "integrity": "sha512-rGkWberCrFdIxMdvSAJM/UOKeu0O/JVTbMmfhQoJpiU9Uq0EDx2EMCadnNuJWbXR4smDA2t7DY3NKkYFmDVS5A==", - "license": "MIT", + "node_modules/@trezor/analytics": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@trezor/analytics/-/analytics-1.4.1.tgz", + "integrity": "sha512-cbfGlGbfskQvYvaVhpbOCV0hZ5h7LIlavlrcMdCezJVLtytNiPtUCCAgBnLvB+uLiBAtnvKolrujNunMoW0nVA==", + "license": "See LICENSE.md in repo root", + "peer": true, "dependencies": { - "@tanstack/query-core": "5.76.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" + "@trezor/env-utils": "1.4.1", + "@trezor/utils": "9.4.1" }, "peerDependencies": { - "react": "^18 || ^19" + "tslib": "^2.6.2" } }, - "node_modules/@trezor/analytics": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@trezor/analytics/-/analytics-1.3.3.tgz", - "integrity": "sha512-tbSPXDr9hJR3Id8L/vRIT5bsBkIrSvlMZvpJujMQ2NiV9QJ76ksQIimW4xJS76PXfuP2jVRzAudHL6/+RVuZzw==", - "license": "See LICENSE.md in repo root", + "node_modules/@trezor/blockchain-link": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@trezor/blockchain-link/-/blockchain-link-2.5.1.tgz", + "integrity": "sha512-NeSsb64fKdr9PUUBdDbddAhEdQ/sP0lLVMy5GOzKy1HD7qC/ZIHXWkCTa6/n1OdT1LKlK3LY7SdJLoJ4Uh22jQ==", + "license": "SEE LICENSE IN LICENSE.md", "peer": true, "dependencies": { - "@trezor/env-utils": "1.3.2", - "@trezor/utils": "9.3.3" + "@solana-program/stake": "^0.2.1", + "@solana-program/token": "^0.5.1", + "@solana-program/token-2022": "^0.4.2", + "@solana/kit": "^2.1.1", + "@solana/rpc-types": "^2.1.1", + "@stellar/stellar-sdk": "^13.3.0", + "@trezor/blockchain-link-types": "1.4.1", + "@trezor/blockchain-link-utils": "1.4.1", + "@trezor/env-utils": "1.4.1", + "@trezor/utils": "9.4.1", + "@trezor/utxo-lib": "2.4.1", + "@trezor/websocket-client": "1.2.1", + "@types/web": "^0.0.197", + "events": "^3.3.0", + "socks-proxy-agent": "8.0.5", + "xrpl": "^4.3.0" }, "peerDependencies": { "tslib": "^2.6.2" } }, - "node_modules/@trezor/analytics/node_modules/@trezor/env-utils": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@trezor/env-utils/-/env-utils-1.3.2.tgz", - "integrity": "sha512-4X7pAfjakNEJUqlPJDew5sP8qyXh0lCcRQpsi9yK/u77sQiXNS3hr5h+fH/gWH20ySDSN7kMruYLdyJol8beBw==", + "node_modules/@trezor/blockchain-link-types": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@trezor/blockchain-link-types/-/blockchain-link-types-1.4.1.tgz", + "integrity": "sha512-xkbamxPHNl+vLu1pBlpEWbxYZuyprRrHWhJ0h8cbGMBC/rVRkGMn1r9hCOdOPwIXEcTcjUyFc0m9LoQuD2sREw==", "license": "See LICENSE.md in repo root", "peer": true, "dependencies": { - "ua-parser-js": "^1.0.37" + "@trezor/utxo-lib": "2.4.1" }, "peerDependencies": { - "expo-constants": "*", - "expo-localization": "*", - "react-native": "*", "tslib": "^2.6.2" - }, - "peerDependenciesMeta": { - "expo-constants": { - "optional": true - }, - "expo-localization": { - "optional": true - }, - "react-native": { - "optional": true - } } }, - "node_modules/@trezor/analytics/node_modules/@trezor/utils": { - "version": "9.3.3", - "resolved": "https://registry.npmjs.org/@trezor/utils/-/utils-9.3.3.tgz", - "integrity": "sha512-PCgButdIIl+7XaMp2jyvOOR167YLRWTqPHeODwHZSMjYQOh0RHWC0Thyb3Q/tpWw5/SHle3lk8+P/ZZrnmITDw==", - "license": "SEE LICENSE IN LICENSE.md", + "node_modules/@trezor/blockchain-link-utils": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@trezor/blockchain-link-utils/-/blockchain-link-utils-1.4.1.tgz", + "integrity": "sha512-XixtgKX/GFdYOgtK+jH8TrPnvu7kt8nG1iDKMmNyV+jjOdUNRTuqJbkSiaoIMWNRtoxkTqR/CXH8pvCx8w5pUg==", + "license": "See LICENSE.md in repo root", "peer": true, "dependencies": { - "bignumber.js": "^9.1.2" + "@mobily/ts-belt": "^3.13.1", + "@stellar/stellar-sdk": "^13.3.0", + "@trezor/env-utils": "1.4.1", + "@trezor/utils": "9.4.1", + "xrpl": "^4.3.0" }, "peerDependencies": { "tslib": "^2.6.2" } }, - "node_modules/@trezor/analytics/node_modules/ua-parser-js": { - "version": "1.0.40", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.40.tgz", - "integrity": "sha512-z6PJ8Lml+v3ichVojCiB8toQJBuwR42ySM4ezjXIqXK3M0HczmKQ3LF4rhU55PfD99KEEXQG6yb7iOMyvYuHew==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - }, - { - "type": "github", - "url": "https://github.com/sponsors/faisalman" - } - ], - "license": "MIT", + "node_modules/@trezor/blockchain-link-utils/node_modules/@stellar/stellar-base": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/@stellar/stellar-base/-/stellar-base-13.1.0.tgz", + "integrity": "sha512-90EArG+eCCEzDGj3OJNoCtwpWDwxjv+rs/RNPhvg4bulpjN/CSRj+Ys/SalRcfM4/WRC5/qAfjzmJBAuquWhkA==", + "license": "Apache-2.0", "peer": true, - "bin": { - "ua-parser-js": "script/cli.js" + "dependencies": { + "@stellar/js-xdr": "^3.1.2", + "base32.js": "^0.1.0", + "bignumber.js": "^9.1.2", + "buffer": "^6.0.3", + "sha.js": "^2.3.6", + "tweetnacl": "^1.0.3" }, "engines": { - "node": "*" + "node": ">=18.0.0" + }, + "optionalDependencies": { + "sodium-native": "^4.3.3" } }, - "node_modules/@trezor/blockchain-link": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@trezor/blockchain-link/-/blockchain-link-2.4.4.tgz", - "integrity": "sha512-vGvB9KuP7obaPwZlL6YUsZP05q03rZI050LhaY3CrOBv8HQ25OVDXCe7b+4Rq1qK6olvWyWEvWP2d92Pir5iig==", - "license": "SEE LICENSE IN LICENSE.md", + "node_modules/@trezor/blockchain-link-utils/node_modules/@stellar/stellar-sdk": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@stellar/stellar-sdk/-/stellar-sdk-13.3.0.tgz", + "integrity": "sha512-8+GHcZLp+mdin8gSjcgfb/Lb6sSMYRX6Nf/0LcSJxvjLQR0XHpjGzOiRbYb2jSXo51EnA6kAV5j+4Pzh5OUKUg==", + "license": "Apache-2.0", "peer": true, "dependencies": { - "@solana-program/stake": "^0.2.0", - "@solana-program/token": "^0.5.1", - "@solana-program/token-2022": "^0.4.0", - "@solana/kit": "^2.0.0", - "@trezor/blockchain-link-types": "1.3.4", - "@trezor/blockchain-link-utils": "1.3.4", - "@trezor/env-utils": "1.3.3", - "@trezor/utils": "9.3.4", - "@trezor/utxo-lib": "2.3.4", - "@trezor/websocket-client": "1.1.4", - "@types/web": "^0.0.197", - "events": "^3.3.0", - "socks-proxy-agent": "8.0.5", - "xrpl": "^4.2.0" + "@stellar/stellar-base": "^13.1.0", + "axios": "^1.8.4", + "bignumber.js": "^9.3.0", + "eventsource": "^2.0.2", + "feaxios": "^0.0.23", + "randombytes": "^2.1.0", + "toml": "^3.0.0", + "urijs": "^1.19.1" }, - "peerDependencies": { - "tslib": "^2.6.2" + "engines": { + "node": ">=18.0.0" } }, - "node_modules/@trezor/blockchain-link-types": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@trezor/blockchain-link-types/-/blockchain-link-types-1.3.4.tgz", - "integrity": "sha512-9g5ZlYri62Kf3GOhjD7NveiXP8wDlE7ILTP3YYPh3of+NZwf5rBnpGL2gQ4bIgcyp/aa5fSkVCeJhLBumDGCxg==", - "license": "See LICENSE.md in repo root", + "node_modules/@trezor/blockchain-link-utils/node_modules/feaxios": { + "version": "0.0.23", + "resolved": "https://registry.npmjs.org/feaxios/-/feaxios-0.0.23.tgz", + "integrity": "sha512-eghR0A21fvbkcQBgZuMfQhrXxJzC0GNUGC9fXhBge33D+mFDTwl0aJ35zoQQn575BhyjQitRc5N4f+L4cP708g==", + "license": "MIT", + "peer": true, + "dependencies": { + "is-retry-allowed": "^3.0.0" + } + }, + "node_modules/@trezor/blockchain-link/node_modules/@stellar/stellar-base": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/@stellar/stellar-base/-/stellar-base-13.1.0.tgz", + "integrity": "sha512-90EArG+eCCEzDGj3OJNoCtwpWDwxjv+rs/RNPhvg4bulpjN/CSRj+Ys/SalRcfM4/WRC5/qAfjzmJBAuquWhkA==", + "license": "Apache-2.0", "peer": true, "dependencies": { - "@trezor/type-utils": "1.1.5", - "@trezor/utxo-lib": "2.3.4" + "@stellar/js-xdr": "^3.1.2", + "base32.js": "^0.1.0", + "bignumber.js": "^9.1.2", + "buffer": "^6.0.3", + "sha.js": "^2.3.6", + "tweetnacl": "^1.0.3" }, - "peerDependencies": { - "tslib": "^2.6.2" + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "sodium-native": "^4.3.3" } }, - "node_modules/@trezor/blockchain-link-utils": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@trezor/blockchain-link-utils/-/blockchain-link-utils-1.3.4.tgz", - "integrity": "sha512-F7PK6hf4voElCjqGlmq0fYTQNZvC0zgJoaomwZYDvfIWEHlU6buhJe+XxfC3LtPKno9DT9eirrvFV/1RLFvCdQ==", - "license": "See LICENSE.md in repo root", + "node_modules/@trezor/blockchain-link/node_modules/@stellar/stellar-sdk": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@stellar/stellar-sdk/-/stellar-sdk-13.3.0.tgz", + "integrity": "sha512-8+GHcZLp+mdin8gSjcgfb/Lb6sSMYRX6Nf/0LcSJxvjLQR0XHpjGzOiRbYb2jSXo51EnA6kAV5j+4Pzh5OUKUg==", + "license": "Apache-2.0", "peer": true, "dependencies": { - "@mobily/ts-belt": "^3.13.1", - "@trezor/env-utils": "1.3.3", - "@trezor/utils": "9.3.4", - "xrpl": "^4.2.0" + "@stellar/stellar-base": "^13.1.0", + "axios": "^1.8.4", + "bignumber.js": "^9.3.0", + "eventsource": "^2.0.2", + "feaxios": "^0.0.23", + "randombytes": "^2.1.0", + "toml": "^3.0.0", + "urijs": "^1.19.1" }, - "peerDependencies": { - "tslib": "^2.6.2" + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@trezor/blockchain-link/node_modules/feaxios": { + "version": "0.0.23", + "resolved": "https://registry.npmjs.org/feaxios/-/feaxios-0.0.23.tgz", + "integrity": "sha512-eghR0A21fvbkcQBgZuMfQhrXxJzC0GNUGC9fXhBge33D+mFDTwl0aJ35zoQQn575BhyjQitRc5N4f+L4cP708g==", + "license": "MIT", + "peer": true, + "dependencies": { + "is-retry-allowed": "^3.0.0" } }, "node_modules/@trezor/connect": { - "version": "9.5.4", - "resolved": "https://registry.npmjs.org/@trezor/connect/-/connect-9.5.4.tgz", - "integrity": "sha512-lwHDeFW0eMeF/MXNfRoVz0xHxZdb0y09Mi1M3bhHFQaRZV5/ANCUZQgWfVZHqRHj5m5VxkSRj9voK8HCq2xg8Q==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@trezor/connect/-/connect-9.6.1.tgz", + "integrity": "sha512-VIAa7tw5kT92cnHrI3qT1jeEYXV7P6M5wnBX7Z6OMjV+JRsNlNl2dgq5uOfg8Ih7MpW3kbLSCMRihGKcS/Xgsw==", "license": "SEE LICENSE IN LICENSE.md", "peer": true, "dependencies": { - "@ethereumjs/common": "^4.4.0", - "@ethereumjs/tx": "^5.4.0", + "@ethereumjs/common": "^10.0.0", + "@ethereumjs/tx": "^10.0.0", "@fivebinaries/coin-selection": "3.0.0", "@mobily/ts-belt": "^3.13.1", "@noble/hashes": "^1.6.1", "@scure/bip39": "^1.5.1", - "@solana-program/compute-budget": "^0.7.0", + "@solana-program/compute-budget": "^0.8.0", "@solana-program/system": "^0.7.0", "@solana-program/token": "^0.5.1", - "@solana-program/token-2022": "^0.4.0", - "@solana/kit": "^2.0.0", - "@trezor/blockchain-link": "2.4.4", - "@trezor/blockchain-link-types": "1.3.4", - "@trezor/blockchain-link-utils": "1.3.4", - "@trezor/connect-analytics": "1.3.2", - "@trezor/connect-common": "0.3.4", - "@trezor/crypto-utils": "1.1.2", - "@trezor/device-utils": "1.0.2", - "@trezor/protobuf": "1.3.4", - "@trezor/protocol": "1.2.5", - "@trezor/schema-utils": "1.3.2", - "@trezor/transport": "1.4.4", - "@trezor/utils": "9.3.4", - "@trezor/utxo-lib": "2.3.4", + "@solana-program/token-2022": "^0.4.2", + "@solana/kit": "^2.1.1", + "@trezor/blockchain-link": "2.5.1", + "@trezor/blockchain-link-types": "1.4.1", + "@trezor/blockchain-link-utils": "1.4.1", + "@trezor/connect-analytics": "1.3.4", + "@trezor/connect-common": "0.4.1", + "@trezor/crypto-utils": "1.1.3", + "@trezor/device-utils": "1.1.1", + "@trezor/protobuf": "1.4.1", + "@trezor/protocol": "1.2.7", + "@trezor/schema-utils": "1.3.3", + "@trezor/transport": "1.5.1", + "@trezor/type-utils": "1.1.7", + "@trezor/utils": "9.4.1", + "@trezor/utxo-lib": "2.4.1", "blakejs": "^1.2.1", "bs58": "^6.0.0", "bs58check": "^4.0.0", @@ -6221,70 +6195,152 @@ } }, "node_modules/@trezor/connect-analytics": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@trezor/connect-analytics/-/connect-analytics-1.3.2.tgz", - "integrity": "sha512-1a1fBKiNitF6i0fnyoVvE+1NDJanRbk1osl9ZDviip2Ew2erBc32Gqm10ssysRBUjemrF0NHmHEYgSLHqyW0Iw==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@trezor/connect-analytics/-/connect-analytics-1.3.4.tgz", + "integrity": "sha512-pdj0l7d0w6TFxZtMVQTtwrlJVaBd4Z+t5/h8gjtuzU+2/s0wV1v04FuxujYwuwOwQxYMs9PBsBSbFpbb3AOaag==", "license": "See LICENSE.md in repo root", "peer": true, "dependencies": { - "@trezor/analytics": "1.3.3" + "@trezor/analytics": "1.4.1" }, "peerDependencies": { "tslib": "^2.6.2" } }, "node_modules/@trezor/connect-common": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@trezor/connect-common/-/connect-common-0.3.4.tgz", - "integrity": "sha512-R7/GBIDZoJHiwyczuiyefCjWs6Oewm4tHyb11uRAA7w8HLF6JpztRzxOLV5IT90PyJeES5LBk79dNkgYF1bLCw==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@trezor/connect-common/-/connect-common-0.4.1.tgz", + "integrity": "sha512-k6vtzTKCLYrljGW3zgo4/ZQT3MiYorBscYhDU/k/nVmtayBbFyfcmsnPL+AyJac8JTvYTNkhF9GlmIthfN1fCQ==", "license": "SEE LICENSE IN LICENSE.md", "peer": true, "dependencies": { - "@trezor/env-utils": "1.3.3", - "@trezor/utils": "9.3.4" + "@trezor/env-utils": "1.4.1", + "@trezor/utils": "9.4.1" }, "peerDependencies": { "tslib": "^2.6.2" } }, - "node_modules/@trezor/connect-plugin-stellar": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@trezor/connect-plugin-stellar/-/connect-plugin-stellar-9.0.6.tgz", - "integrity": "sha512-LieD7xqckUXaPIA3a5XHyAAWE4gMRru6ot+kp1J93MfLn7wnjzJ5FrH2/TXFMxXJh/o1VCX/CzT4KQmgFSQ4Lw==", + "node_modules/@trezor/connect-web": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/@trezor/connect-web/-/connect-web-9.5.1.tgz", + "integrity": "sha512-+c0Q7dyEugxIBoGeuKuxgEpk8Bx7BBa6WpaZ1D7IKRGdTxsUkcD9Kb9kUMkaDoweWXi+arvBmiQHfeuECqsIjQ==", "license": "SEE LICENSE IN LICENSE.md", "dependencies": { - "@trezor/utils": "9.2.2" + "@trezor/connect": "9.5.1", + "@trezor/connect-common": "0.3.1", + "@trezor/utils": "9.3.1" }, "peerDependencies": { - "@stellar/stellar-sdk": "^12.1.3", - "@trezor/connect": "9.x.x", "tslib": "^2.6.2" } }, - "node_modules/@trezor/connect-plugin-stellar/node_modules/@trezor/utils": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@trezor/utils/-/utils-9.2.2.tgz", - "integrity": "sha512-eTKOXhJsqUObQiL4ccJvamuDe9YDt+QFPh25YG85fqUInN85H/dxRXiLEboeqkRHldP06+bG+e2t4iAnsWuINQ==", - "license": "SEE LICENSE IN LICENSE.md", + "node_modules/@trezor/connect-web/node_modules/@ethereumjs/common": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-4.4.0.tgz", + "integrity": "sha512-Fy5hMqF6GsE6DpYTyqdDIJPJgUtDn4dL120zKw+Pswuo+iLyBsEYuSyzMw6NVzD2vDzcBG9fE4+qX4X2bPc97w==", + "license": "MIT", "dependencies": { - "bignumber.js": "^9.1.2" + "@ethereumjs/util": "^9.1.0" + } + }, + "node_modules/@trezor/connect-web/node_modules/@ethereumjs/rlp": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-5.0.2.tgz", + "integrity": "sha512-DziebCdg4JpGlEqEdGgXmjqcFoJi+JGulUXwEjsZGAscAQ7MyD/7LE/GVCP29vEQxKc7AAwjT3A2ywHp2xfoCA==", + "license": "MPL-2.0", + "bin": { + "rlp": "bin/rlp.cjs" }, - "peerDependencies": { - "tslib": "^2.6.2" + "engines": { + "node": ">=18" } }, - "node_modules/@trezor/connect-web": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/@trezor/connect-web/-/connect-web-9.5.1.tgz", - "integrity": "sha512-+c0Q7dyEugxIBoGeuKuxgEpk8Bx7BBa6WpaZ1D7IKRGdTxsUkcD9Kb9kUMkaDoweWXi+arvBmiQHfeuECqsIjQ==", - "license": "SEE LICENSE IN LICENSE.md", + "node_modules/@trezor/connect-web/node_modules/@ethereumjs/tx": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-5.4.0.tgz", + "integrity": "sha512-SCHnK7m/AouZ7nyoR0MEXw1OO/tQojSbp88t8oxhwes5iZkZCtfFdUrJaiIb72qIpH2FVw6s1k1uP7LXuH7PsA==", + "license": "MPL-2.0", "dependencies": { - "@trezor/connect": "9.5.1", - "@trezor/connect-common": "0.3.1", - "@trezor/utils": "9.3.1" + "@ethereumjs/common": "^4.4.0", + "@ethereumjs/rlp": "^5.0.2", + "@ethereumjs/util": "^9.1.0", + "ethereum-cryptography": "^2.2.1" }, - "peerDependencies": { - "tslib": "^2.6.2" + "engines": { + "node": ">=18" + } + }, + "node_modules/@trezor/connect-web/node_modules/@ethereumjs/util": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-9.1.0.tgz", + "integrity": "sha512-XBEKsYqLGXLah9PNJbgdkigthkG7TAGvlD/sH12beMXEyHDyigfcbdvHhmLyDWgDyOJn4QwiQUaF7yeuhnjdog==", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/rlp": "^5.0.2", + "ethereum-cryptography": "^2.2.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@trezor/connect-web/node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@trezor/connect-web/node_modules/@noble/curves/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@trezor/connect-web/node_modules/@scure/base": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", + "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==", + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@trezor/connect-web/node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@trezor/connect-web/node_modules/@scure/bip32/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, "node_modules/@trezor/connect-web/node_modules/@solana-program/compute-budget": { @@ -7305,6 +7361,43 @@ "node": ">=18" } }, + "node_modules/@trezor/connect-web/node_modules/ethereum-cryptography": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz", + "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==", + "license": "MIT", + "dependencies": { + "@noble/curves": "1.4.2", + "@noble/hashes": "1.4.0", + "@scure/bip32": "1.4.0", + "@scure/bip39": "1.3.0" + } + }, + "node_modules/@trezor/connect-web/node_modules/ethereum-cryptography/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@trezor/connect-web/node_modules/ethereum-cryptography/node_modules/@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@trezor/connect-web/node_modules/long": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/long/-/long-5.2.0.tgz", @@ -7375,9 +7468,9 @@ } }, "node_modules/@trezor/crypto-utils": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@trezor/crypto-utils/-/crypto-utils-1.1.2.tgz", - "integrity": "sha512-fRBXpxP+0nijUJBTbM6s/vCFN/TmNS44tdYg1tQsF4dvzmQ/a8cvhTXZF1zlnS3iKT5oESzveXvXT7NrCtrpxg==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@trezor/crypto-utils/-/crypto-utils-1.1.3.tgz", + "integrity": "sha512-KVJSQrJc8TW+HXOaPfj4GGrjJqWAQ7UeBLzIR6NorTtulykJn1TdwGwpVm248Bq1Ndgd+jjF2QH9UMSLX1VUGQ==", "license": "SEE LICENSE IN LICENSE.md", "peer": true, "peerDependencies": { @@ -7385,16 +7478,16 @@ } }, "node_modules/@trezor/device-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@trezor/device-utils/-/device-utils-1.0.2.tgz", - "integrity": "sha512-NeY0m81s5r3RhhCrbbozpnoa7nHdsG6ND35aG0nOzQIV0czM32S8htWiOEQioQjJT5a9NQqZ4w3D1097VlYB2A==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@trezor/device-utils/-/device-utils-1.1.1.tgz", + "integrity": "sha512-c5xAG3+qKrU/lHo+aCSyCiLZwjpO4CP0I0evFX7BwxRQ7YI1nOgMzI/mhOSLJCztYClynp9giNB6eOgDSBhQCQ==", "license": "See LICENSE.md in repo root", "peer": true }, "node_modules/@trezor/env-utils": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@trezor/env-utils/-/env-utils-1.3.3.tgz", - "integrity": "sha512-zP89hNJhj5ZuETs65PyWVlkE+s4FWSXoG1qR9rRBSl0LylKYXT1JslEZWNl7ohNT8sRqHGKBi399qFkH9Cb69Q==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@trezor/env-utils/-/env-utils-1.4.1.tgz", + "integrity": "sha512-GDJGf3E/MPrLHEPacTqPCDG/WuKXJWIuhxWN0u+Gn3w/7iGA5fxgXFllKxhpzMtvECEGoTfCHjb2XVYH2O1LRw==", "license": "See LICENSE.md in repo root", "peer": true, "dependencies": { @@ -7419,13 +7512,13 @@ } }, "node_modules/@trezor/protobuf": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@trezor/protobuf/-/protobuf-1.3.4.tgz", - "integrity": "sha512-+MIFw5mdAQA/mLIPvH6r+nZ6b4ktxNZxuT1RA9oQmspArJE3F8qKJYOynw34VlhIXInhs4f4J5BQAPLqAD4vQg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@trezor/protobuf/-/protobuf-1.4.1.tgz", + "integrity": "sha512-d9Na5MhM/Y33g4ksLaCpt5ZFGnmxsClm3U/1OSAUt0dL1UzYXI9WEJUIC9arRukvYDlYFn/hhWt1OqMc/s4zvA==", "license": "See LICENSE.md in repo root", "peer": true, "dependencies": { - "@trezor/schema-utils": "1.3.2", + "@trezor/schema-utils": "1.3.3", "long": "5.2.5", "protobufjs": "7.4.0" }, @@ -7434,9 +7527,9 @@ } }, "node_modules/@trezor/protocol": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@trezor/protocol/-/protocol-1.2.5.tgz", - "integrity": "sha512-UYmyEyUSpdNwnwmKGf4NCPdHkWb5HwNCasMC/9X48F8uMJlIgnaFjnHjIMGXAn1rC2ofymA10ABiztp/1eQHNg==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@trezor/protocol/-/protocol-1.2.7.tgz", + "integrity": "sha512-9DJHjpo2PG0PEowMrgEXqFoJSf+FYTo4Vzgu94FEidQFpuYxrlHwA5ns2DNz6g3yyF/elBDhGGqZIrh/9RAV9w==", "license": "See LICENSE.md in repo root", "peer": true, "peerDependencies": { @@ -7444,9 +7537,9 @@ } }, "node_modules/@trezor/schema-utils": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@trezor/schema-utils/-/schema-utils-1.3.2.tgz", - "integrity": "sha512-S9CoIoF890da/IP6DeOfNgk6oJtRILAbgqd3ps08k8CHzcSvUoKFEwKPoGRqnAm6LQbWO4WflqdYMIw3ZpzjOw==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@trezor/schema-utils/-/schema-utils-1.3.3.tgz", + "integrity": "sha512-HxA69ZnBU0po66uaDxEmHOrNxgrF5zp8q8/OajnIfgN76iTJ+eMI8iBhzUdJxndhXDTMsCMN4u/xD05zetJpIA==", "license": "See LICENSE.md in repo root", "peer": true, "dependencies": { @@ -7458,15 +7551,16 @@ } }, "node_modules/@trezor/transport": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/@trezor/transport/-/transport-1.4.4.tgz", - "integrity": "sha512-cxbAARUed4ERpZ8GVybPmPG/fYpNMno7HAqqmyETglb9RZ6eUKxXk9TwvP0dc7QykyDbVs+BKG7bMqv+qx75Dw==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@trezor/transport/-/transport-1.5.1.tgz", + "integrity": "sha512-PbOGFvui4/CWvv6nyHooVG32mVNx9xIpBJkul0pDwLecFAHFsqfaFdsD1WxT7n6+sSjL5UO3ZzS2M9KE8GehvQ==", "license": "SEE LICENSE IN LICENSE.md", "peer": true, "dependencies": { - "@trezor/protobuf": "1.3.4", - "@trezor/protocol": "1.2.5", - "@trezor/utils": "9.3.4", + "@trezor/protobuf": "1.4.1", + "@trezor/protocol": "1.2.7", + "@trezor/type-utils": "1.1.7", + "@trezor/utils": "9.4.1", "cross-fetch": "^4.0.0", "usb": "^2.15.0" }, @@ -7475,40 +7569,40 @@ } }, "node_modules/@trezor/type-utils": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@trezor/type-utils/-/type-utils-1.1.5.tgz", - "integrity": "sha512-gmN1dHcgquBIbg81FXsIrQ+ucj144X9odYkxw3ljRjlryHY5m2iWn9QmUqbRLzXQ2QUrQcg6knUyd0yZ39uW7A==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@trezor/type-utils/-/type-utils-1.1.7.tgz", + "integrity": "sha512-SlgB80O/ySm2DwYOWxfipIOeHaK7+JF3Q7PUgKcc6etHGGZhiZaMOfVDipYq0BAMDpyp1wWGDb9l141whl1xRA==", "license": "See LICENSE.md in repo root", "peer": true }, "node_modules/@trezor/utils": { - "version": "9.3.4", - "resolved": "https://registry.npmjs.org/@trezor/utils/-/utils-9.3.4.tgz", - "integrity": "sha512-fzWTtyOclduXoGFKG6/PzMewqewju+1rbVMljGFRn+9TrG2glABnEYTZIBq3kMYg2YfJ79ZYpQROleqIJrXImw==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/@trezor/utils/-/utils-9.4.1.tgz", + "integrity": "sha512-9MYNa99tzXiTBnKadABoY2D80YL9Mh3ntM5wziwVhjZ4HyhqFH6BsCxwFpWYLUIKBctD55QEdE4bASoqp7Ad1A==", "license": "SEE LICENSE IN LICENSE.md", "peer": true, "dependencies": { - "bignumber.js": "^9.1.2" + "bignumber.js": "^9.3.0" }, "peerDependencies": { "tslib": "^2.6.2" } }, "node_modules/@trezor/utxo-lib": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@trezor/utxo-lib/-/utxo-lib-2.3.4.tgz", - "integrity": "sha512-D/WjxHys26Tv3BwBO7oOVAfJ6fCyCDKXA9wYSq140BB66AMNeeUICrGE1aiYIC3Cbdwacb4sEsLoBepMegdhMA==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@trezor/utxo-lib/-/utxo-lib-2.4.1.tgz", + "integrity": "sha512-GXG1gssP5FqVVJZGkRz6YzBShfkVh1bM4lOCYrFO7TfVunzo3Vytn3nHIa4U/kGw/2zHr3NB2e3DhTuVc+Cf+w==", "license": "SEE LICENSE IN LICENSE.md", "peer": true, "dependencies": { - "@trezor/utils": "9.3.4", + "@trezor/utils": "9.4.1", "bchaddrjs": "^0.5.2", "bech32": "^2.0.0", "bip66": "^2.0.0", "bitcoin-ops": "^1.4.1", "blake-hash": "^2.0.0", "blakejs": "^1.2.1", - "bn.js": "^5.2.1", + "bn.js": "^5.2.2", "bs58": "^6.0.0", "bs58check": "^4.0.0", "create-hmac": "^1.1.7", @@ -7541,33 +7635,19 @@ } }, "node_modules/@trezor/websocket-client": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@trezor/websocket-client/-/websocket-client-1.1.4.tgz", - "integrity": "sha512-fW5Oi5/beK6RTjH6nfNopML7+O+Rvl0YH5Gi6x0mobpJ62taBFljrErgfw1g2ss6uJwkxJmYwLA3l0dMi1Vi5g==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@trezor/websocket-client/-/websocket-client-1.2.1.tgz", + "integrity": "sha512-Cj6Yz+wgsrpLxy4CPrenVsT8iM4zmdBX6as14+mw5rNU3WmxPEiuCyo8qqRTDRpmMPLFCY6zi6v+Jh0fUt0lRA==", "license": "SEE LICENSE IN LICENSE.md", "peer": true, "dependencies": { - "@trezor/utils": "9.3.4", + "@trezor/utils": "9.4.1", "ws": "^8.18.0" }, "peerDependencies": { "tslib": "^2.6.2" } }, - "node_modules/@trustless-work/escrow": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/@trustless-work/escrow/-/escrow-0.1.8.tgz", - "integrity": "sha512-c4awMnn0DrMsJBUUJqV0C23lLHCfvUl870yC91WE8ZVcfBgXKz3ZXoiAK4FTMPDE+tPsBkf1Eu7plP60nhA5tg==", - "license": "MIT", - "dependencies": { - "@tanstack/react-query": "^5.76.1", - "axios": "^1.9.0" - }, - "peerDependencies": { - "react": ">=18.0.0 <20.0.0", - "react-dom": ">=18.0.0 <20.0.0" - } - }, "node_modules/@tybys/wasm-util": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", @@ -7589,9 +7669,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true, "license": "MIT" }, @@ -7609,18 +7689,18 @@ "license": "MIT" }, "node_modules/@types/lodash": { - "version": "4.17.16", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.16.tgz", - "integrity": "sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==", + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-NYqRyg/hIQrYPT9lbOeYc3kIRabJDn/k4qQHIXUpx88CBDww2fD15Sg5kbXlW86zm2XEW4g0QxkTI3/Kfkc7xQ==", "license": "MIT" }, "node_modules/@types/node": { - "version": "20.17.32", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.32.tgz", - "integrity": "sha512-zeMXFn8zQ+UkjK4ws0RiOC9EWByyW1CcVmLe+2rQocXRsGEDxUCwPEIVgpsGcLHS/P8JkT0oa3839BRABS0oPw==", + "version": "20.19.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.1.tgz", + "integrity": "sha512-jJD50LtlD2dodAEO653i3YF04NWak6jN3ky+Ri3Em3mGR39/glWiboM/IePaRbgwSfqM1TpGXfAg8ohn/4dTgA==", "license": "MIT", "dependencies": { - "undici-types": "~6.19.2" + "undici-types": "~6.21.0" } }, "node_modules/@types/node-fetch": { @@ -7635,15 +7715,15 @@ } }, "node_modules/@types/node/node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", "license": "MIT" }, "node_modules/@types/react": { - "version": "19.1.2", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.2.tgz", - "integrity": "sha512-oxLPMytKchWGbnQM9O7D67uPa9paTNxO7jVoNMXgkkErULBPhPARCfkKL9ytcIJJRGjbsVwW4ugJzyFFvm/Tiw==", + "version": "19.1.8", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.8.tgz", + "integrity": "sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==", "devOptional": true, "license": "MIT", "dependencies": { @@ -7651,9 +7731,9 @@ } }, "node_modules/@types/react-dom": { - "version": "19.1.3", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.3.tgz", - "integrity": "sha512-rJXC08OG0h3W6wDMFxQrZF00Kq6qQvw0djHRdzl3U5DnIERz0MRce3WVc7IS6JYBwtaP/DwYtRRjVlvivNveKg==", + "version": "19.1.6", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.6.tgz", + "integrity": "sha512-4hOiT/dwO8Ko0gV1m/TJZYk3y0KBnY9vzDh7W+DH17b2HFSOGgdj33dhihPeuy3l0q23+4e+hoXHV6hCC4dCXw==", "devOptional": true, "license": "MIT", "peerDependencies": { @@ -7694,21 +7774,21 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.31.1.tgz", - "integrity": "sha512-oUlH4h1ABavI4F0Xnl8/fOtML/eu8nI2A1nYd+f+55XI0BLu+RIqKoCiZKNo6DtqZBEQm5aNKA20G3Z5w3R6GQ==", + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.35.0.tgz", + "integrity": "sha512-ijItUYaiWuce0N1SoSMrEd0b6b6lYkYt99pqCPfybd+HKVXtEvYhICfLdwp42MhiI5mp0oq7PKEL+g1cNiz/Eg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.31.1", - "@typescript-eslint/type-utils": "8.31.1", - "@typescript-eslint/utils": "8.31.1", - "@typescript-eslint/visitor-keys": "8.31.1", + "@typescript-eslint/scope-manager": "8.35.0", + "@typescript-eslint/type-utils": "8.35.0", + "@typescript-eslint/utils": "8.35.0", + "@typescript-eslint/visitor-keys": "8.35.0", "graphemer": "^1.4.0", - "ignore": "^5.3.1", + "ignore": "^7.0.0", "natural-compare": "^1.4.0", - "ts-api-utils": "^2.0.1" + "ts-api-utils": "^2.1.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -7718,22 +7798,32 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "@typescript-eslint/parser": "^8.35.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.9.0" } }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/@typescript-eslint/parser": { - "version": "8.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.31.1.tgz", - "integrity": "sha512-oU/OtYVydhXnumd0BobL9rkJg7wFJ9bFFPmSmB/bf/XWN85hlViji59ko6bSKBXyseT9V8l+CN1nwmlbiN0G7Q==", + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.35.0.tgz", + "integrity": "sha512-6sMvZePQrnZH2/cJkwRpkT7DxoAWh+g6+GFRK6bV3YQo7ogi3SX5rgF6099r5Q53Ma5qeT7LGmOmuIutF4t3lA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.31.1", - "@typescript-eslint/types": "8.31.1", - "@typescript-eslint/typescript-estree": "8.31.1", - "@typescript-eslint/visitor-keys": "8.31.1", + "@typescript-eslint/scope-manager": "8.35.0", + "@typescript-eslint/types": "8.35.0", + "@typescript-eslint/typescript-estree": "8.35.0", + "@typescript-eslint/visitor-keys": "8.35.0", "debug": "^4.3.4" }, "engines": { @@ -7748,35 +7838,74 @@ "typescript": ">=4.8.4 <5.9.0" } }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.35.0.tgz", + "integrity": "sha512-41xatqRwWZuhUMF/aZm2fcUsOFKNcG28xqRSS6ZVr9BVJtGExosLAm5A1OxTjRMagx8nJqva+P5zNIGt8RIgbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.35.0", + "@typescript-eslint/types": "^8.35.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.31.1.tgz", - "integrity": "sha512-BMNLOElPxrtNQMIsFHE+3P0Yf1z0dJqV9zLdDxN/xLlWMlXK/ApEsVEKzpizg9oal8bAT5Sc7+ocal7AC1HCVw==", + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.35.0.tgz", + "integrity": "sha512-+AgL5+mcoLxl1vGjwNfiWq5fLDZM1TmTPYs2UkyHfFhgERxBbqHlNjRzhThJqz+ktBqTChRYY6zwbMwy0591AA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.31.1", - "@typescript-eslint/visitor-keys": "8.31.1" + "@typescript-eslint/types": "8.35.0", + "@typescript-eslint/visitor-keys": "8.35.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.35.0.tgz", + "integrity": "sha512-04k/7247kZzFraweuEirmvUj+W3bJLI9fX6fbo1Qm2YykuBvEhRTPl8tcxlYO8kZZW+HIXfkZNoasVb8EV4jpA==", + "dev": true, + "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.31.1.tgz", - "integrity": "sha512-fNaT/m9n0+dpSp8G/iOQ05GoHYXbxw81x+yvr7TArTuZuCA6VVKbqWYVZrV5dVagpDTtj/O8k5HBEE/p/HM5LA==", + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.35.0.tgz", + "integrity": "sha512-ceNNttjfmSEoM9PW87bWLDEIaLAyR+E6BoYJQ5PfaDau37UGca9Nyq3lBk8Bw2ad0AKvYabz6wxc7DMTO2jnNA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.31.1", - "@typescript-eslint/utils": "8.31.1", + "@typescript-eslint/typescript-estree": "8.35.0", + "@typescript-eslint/utils": "8.35.0", "debug": "^4.3.4", - "ts-api-utils": "^2.0.1" + "ts-api-utils": "^2.1.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -7791,9 +7920,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.31.1.tgz", - "integrity": "sha512-SfepaEFUDQYRoA70DD9GtytljBePSj17qPxFHA/h3eg6lPTqGJ5mWOtbXCk1YrVU1cTJRd14nhaXWFu0l2troQ==", + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.35.0.tgz", + "integrity": "sha512-0mYH3emanku0vHw2aRLNGqe7EXh9WHEhi7kZzscrMDf6IIRUQ5Jk4wp1QrledE/36KtdZrVfKnE32eZCf/vaVQ==", "dev": true, "license": "MIT", "engines": { @@ -7805,20 +7934,22 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.1.tgz", - "integrity": "sha512-kaA0ueLe2v7KunYOyWYtlf/QhhZb7+qh4Yw6Ni5kgukMIG+iP773tjgBiLWIXYumWCwEq3nLW+TUywEp8uEeag==", + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.35.0.tgz", + "integrity": "sha512-F+BhnaBemgu1Qf8oHrxyw14wq6vbL8xwWKKMwTMwYIRmFFY/1n/9T/jpbobZL8vp7QyEUcC6xGrnAO4ua8Kp7w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.31.1", - "@typescript-eslint/visitor-keys": "8.31.1", + "@typescript-eslint/project-service": "8.35.0", + "@typescript-eslint/tsconfig-utils": "8.35.0", + "@typescript-eslint/types": "8.35.0", + "@typescript-eslint/visitor-keys": "8.35.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" + "ts-api-utils": "^2.1.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -7832,9 +7963,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, "license": "MIT", "dependencies": { @@ -7888,16 +8019,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.31.1.tgz", - "integrity": "sha512-2DSI4SNfF5T4oRveQ4nUrSjUqjMND0nLq9rEkz0gfGr3tg0S5KB6DhwR+WZPCjzkZl3cH+4x2ce3EsL50FubjQ==", + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.35.0.tgz", + "integrity": "sha512-nqoMu7WWM7ki5tPgLVsmPM8CkqtoPUG6xXGeefM5t4x3XumOEKMoUZPdi+7F+/EotukN4R9OWdmDxN80fqoZeg==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.31.1", - "@typescript-eslint/types": "8.31.1", - "@typescript-eslint/typescript-estree": "8.31.1" + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.35.0", + "@typescript-eslint/types": "8.35.0", + "@typescript-eslint/typescript-estree": "8.35.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -7912,14 +8043,14 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.31.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.1.tgz", - "integrity": "sha512-I+/rgqOVBn6f0o7NDTmAPWWC6NuqhV174lfYvAm9fUaWeiefLdux9/YI3/nLugEn9L8fcSi0XmpKi/r5u0nmpw==", + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.35.0.tgz", + "integrity": "sha512-zTh2+1Y8ZpmeQaQVIc/ZZxsx8UzgKJyNg1PTvjzC7WMhPSVS8bfDX34k1SrwOf016qd5RU3az2UxUNue3IfQ5g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.31.1", - "eslint-visitor-keys": "^4.2.0" + "@typescript-eslint/types": "8.35.0", + "eslint-visitor-keys": "^4.2.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -7929,10 +8060,38 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@unrs/resolver-binding-android-arm-eabi": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.9.2.tgz", + "integrity": "sha512-tS+lqTU3N0kkthU+rYp0spAYq15DU8ld9kXkaKg9sbQqJNF+WPMuNHZQGCgdxrUOEO0j22RKMwRVhF1HTl+X8A==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-android-arm64": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.9.2.tgz", + "integrity": "sha512-MffGiZULa/KmkNjHeuuflLVqfhqLv1vZLm8lWIyeADvlElJ/GLSOkoUX+5jf4/EGtfwrNFcEaB8BRas03KT0/Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, "node_modules/@unrs/resolver-binding-darwin-arm64": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.7.2.tgz", - "integrity": "sha512-vxtBno4xvowwNmO/ASL0Y45TpHqmNkAaDtz4Jqb+clmcVSSl8XCG/PNFFkGsXXXS6AMjP+ja/TtNCFFa1QwLRg==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.9.2.tgz", + "integrity": "sha512-dzJYK5rohS1sYl1DHdJ3mwfwClJj5BClQnQSyAgEfggbUwA9RlROQSSbKBLqrGfsiC/VyrDPtbO8hh56fnkbsQ==", "cpu": [ "arm64" ], @@ -7944,9 +8103,9 @@ ] }, "node_modules/@unrs/resolver-binding-darwin-x64": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.7.2.tgz", - "integrity": "sha512-qhVa8ozu92C23Hsmv0BF4+5Dyyd5STT1FolV4whNgbY6mj3kA0qsrGPe35zNR3wAN7eFict3s4Rc2dDTPBTuFQ==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.9.2.tgz", + "integrity": "sha512-gaIMWK+CWtXcg9gUyznkdV54LzQ90S3X3dn8zlh+QR5Xy7Y+Efqw4Rs4im61K1juy4YNb67vmJsCDAGOnIeffQ==", "cpu": [ "x64" ], @@ -7958,9 +8117,9 @@ ] }, "node_modules/@unrs/resolver-binding-freebsd-x64": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.7.2.tgz", - "integrity": "sha512-zKKdm2uMXqLFX6Ac7K5ElnnG5VIXbDlFWzg4WJ8CGUedJryM5A3cTgHuGMw1+P5ziV8CRhnSEgOnurTI4vpHpg==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.9.2.tgz", + "integrity": "sha512-S7QpkMbVoVJb0xwHFwujnwCAEDe/596xqY603rpi/ioTn9VDgBHnCCxh+UFrr5yxuMH+dliHfjwCZJXOPJGPnw==", "cpu": [ "x64" ], @@ -7972,9 +8131,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.7.2.tgz", - "integrity": "sha512-8N1z1TbPnHH+iDS/42GJ0bMPLiGK+cUqOhNbMKtWJ4oFGzqSJk/zoXFzcQkgtI63qMcUI7wW1tq2usZQSb2jxw==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.9.2.tgz", + "integrity": "sha512-+XPUMCuCCI80I46nCDFbGum0ZODP5NWGiwS3Pj8fOgsG5/ctz+/zzuBlq/WmGa+EjWZdue6CF0aWWNv84sE1uw==", "cpu": [ "arm" ], @@ -7986,9 +8145,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.7.2.tgz", - "integrity": "sha512-tjYzI9LcAXR9MYd9rO45m1s0B/6bJNuZ6jeOxo1pq1K6OBuRMMmfyvJYval3s9FPPGmrldYA3mi4gWDlWuTFGA==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.9.2.tgz", + "integrity": "sha512-sqvUyAd1JUpwbz33Ce2tuTLJKM+ucSsYpPGl2vuFwZnEIg0CmdxiZ01MHQ3j6ExuRqEDUCy8yvkDKvjYFPb8Zg==", "cpu": [ "arm" ], @@ -8000,9 +8159,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.7.2.tgz", - "integrity": "sha512-jon9M7DKRLGZ9VYSkFMflvNqu9hDtOCEnO2QAryFWgT6o6AXU8du56V7YqnaLKr6rAbZBWYsYpikF226v423QA==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.9.2.tgz", + "integrity": "sha512-UYA0MA8ajkEDCFRQdng/FVx3F6szBvk3EPnkTTQuuO9lV1kPGuTB+V9TmbDxy5ikaEgyWKxa4CI3ySjklZ9lFA==", "cpu": [ "arm64" ], @@ -8014,9 +8173,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-arm64-musl": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.7.2.tgz", - "integrity": "sha512-c8Cg4/h+kQ63pL43wBNaVMmOjXI/X62wQmru51qjfTvI7kmCy5uHTJvK/9LrF0G8Jdx8r34d019P1DVJmhXQpA==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.9.2.tgz", + "integrity": "sha512-P/CO3ODU9YJIHFqAkHbquKtFst0COxdphc8TKGL5yCX75GOiVpGqd1d15ahpqu8xXVsqP4MGFP2C3LRZnnL5MA==", "cpu": [ "arm64" ], @@ -8028,9 +8187,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.7.2.tgz", - "integrity": "sha512-A+lcwRFyrjeJmv3JJvhz5NbcCkLQL6Mk16kHTNm6/aGNc4FwPHPE4DR9DwuCvCnVHvF5IAd9U4VIs/VvVir5lg==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.9.2.tgz", + "integrity": "sha512-uKStFlOELBxBum2s1hODPtgJhY4NxYJE9pAeyBgNEzHgTqTiVBPjfTlPFJkfxyTjQEuxZbbJlJnMCrRgD7ubzw==", "cpu": [ "ppc64" ], @@ -8042,9 +8201,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.7.2.tgz", - "integrity": "sha512-hQQ4TJQrSQW8JlPm7tRpXN8OCNP9ez7PajJNjRD1ZTHQAy685OYqPrKjfaMw/8LiHCt8AZ74rfUVHP9vn0N69Q==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.9.2.tgz", + "integrity": "sha512-LkbNnZlhINfY9gK30AHs26IIVEZ9PEl9qOScYdmY2o81imJYI4IMnJiW0vJVtXaDHvBvxeAgEy5CflwJFIl3tQ==", "cpu": [ "riscv64" ], @@ -8056,9 +8215,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.7.2.tgz", - "integrity": "sha512-NoAGbiqrxtY8kVooZ24i70CjLDlUFI7nDj3I9y54U94p+3kPxwd2L692YsdLa+cqQ0VoqMWoehDFp21PKRUoIQ==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.9.2.tgz", + "integrity": "sha512-vI+e6FzLyZHSLFNomPi+nT+qUWN4YSj8pFtQZSFTtmgFoxqB6NyjxSjAxEC1m93qn6hUXhIsh8WMp+fGgxCoRg==", "cpu": [ "riscv64" ], @@ -8070,9 +8229,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.7.2.tgz", - "integrity": "sha512-KaZByo8xuQZbUhhreBTW+yUnOIHUsv04P8lKjQ5otiGoSJ17ISGYArc+4vKdLEpGaLbemGzr4ZeUbYQQsLWFjA==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.9.2.tgz", + "integrity": "sha512-sSO4AlAYhSM2RAzBsRpahcJB1msc6uYLAtP6pesPbZtptF8OU/CbCPhSRW6cnYOGuVmEmWVW5xVboAqCnWTeHQ==", "cpu": [ "s390x" ], @@ -8084,9 +8243,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-x64-gnu": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.7.2.tgz", - "integrity": "sha512-dEidzJDubxxhUCBJ/SHSMJD/9q7JkyfBMT77Px1npl4xpg9t0POLvnWywSk66BgZS/b2Hy9Y1yFaoMTFJUe9yg==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.9.2.tgz", + "integrity": "sha512-jkSkwch0uPFva20Mdu8orbQjv2A3G88NExTN2oPTI1AJ+7mZfYW3cDCTyoH6OnctBKbBVeJCEqh0U02lTkqD5w==", "cpu": [ "x64" ], @@ -8098,9 +8257,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-x64-musl": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.7.2.tgz", - "integrity": "sha512-RvP+Ux3wDjmnZDT4XWFfNBRVG0fMsc+yVzNFUqOflnDfZ9OYujv6nkh+GOr+watwrW4wdp6ASfG/e7bkDradsw==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.9.2.tgz", + "integrity": "sha512-Uk64NoiTpQbkpl+bXsbeyOPRpUoMdcUqa+hDC1KhMW7aN1lfW8PBlBH4mJ3n3Y47dYE8qi0XTxy1mBACruYBaw==", "cpu": [ "x64" ], @@ -8112,9 +8271,9 @@ ] }, "node_modules/@unrs/resolver-binding-wasm32-wasi": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.7.2.tgz", - "integrity": "sha512-y797JBmO9IsvXVRCKDXOxjyAE4+CcZpla2GSoBQ33TVb3ILXuFnMrbR/QQZoauBYeOFuu4w3ifWLw52sdHGz6g==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.9.2.tgz", + "integrity": "sha512-EpBGwkcjDicjR/ybC0g8wO5adPNdVuMrNalVgYcWi+gYtC1XYNuxe3rufcO7dA76OHGeVabcO6cSkPJKVcbCXQ==", "cpu": [ "wasm32" ], @@ -8122,16 +8281,16 @@ "license": "MIT", "optional": true, "dependencies": { - "@napi-rs/wasm-runtime": "^0.2.9" + "@napi-rs/wasm-runtime": "^0.2.11" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.7.2.tgz", - "integrity": "sha512-gtYTh4/VREVSLA+gHrfbWxaMO/00y+34htY7XpioBTy56YN2eBjkPrY1ML1Zys89X3RJDKVaogzwxlM1qU7egg==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.9.2.tgz", + "integrity": "sha512-EdFbGn7o1SxGmN6aZw9wAkehZJetFPao0VGZ9OMBwKx6TkvDuj6cNeLimF/Psi6ts9lMOe+Dt6z19fZQ9Ye2fw==", "cpu": [ "arm64" ], @@ -8143,9 +8302,9 @@ ] }, "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.7.2.tgz", - "integrity": "sha512-Ywv20XHvHTDRQs12jd3MY8X5C8KLjDbg/jyaal/QLKx3fAShhJyD4blEANInsjxW3P7isHx1Blt56iUDDJO3jg==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.9.2.tgz", + "integrity": "sha512-JY9hi1p7AG+5c/dMU8o2kWemM8I6VZxfGwn1GCtf3c5i+IKcMo2NQ8OjZ4Z3/itvY/Si3K10jOBQn7qsD/whUA==", "cpu": [ "ia32" ], @@ -8157,9 +8316,9 @@ ] }, "node_modules/@unrs/resolver-binding-win32-x64-msvc": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.7.2.tgz", - "integrity": "sha512-friS8NEQfHaDbkThxopGk+LuE5v3iY0StruifjQEt7SLbA46OnfgMO15sOTkbpJkol6RB+1l1TYPXh0sCddpvA==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.9.2.tgz", + "integrity": "sha512-ryoo+EB19lMxAd80ln9BVf8pdOAxLb97amrQ3SFN9OCRn/5M5wvwDgAe4i8ZjhpbiHoDeP8yavcTEnpKBo7lZg==", "cpu": [ "x64" ], @@ -8380,6 +8539,7 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/@walletconnect/modal/-/modal-2.6.2.tgz", "integrity": "sha512-eFopgKi8AjKf/0U4SemvcYw9zlLpx9njVN8sf6DAkowC2Md0gPU/UNEbH1Wwj407pEKnEds98pKWib1NN1ACoA==", + "deprecated": "Please follow the migration guide on https://docs.reown.com/appkit/upgrade/wcm", "license": "Apache-2.0", "dependencies": { "@walletconnect/modal-core": "2.6.2", @@ -8638,9 +8798,9 @@ } }, "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", "bin": { @@ -8761,9 +8921,9 @@ "license": "Python-2.0" }, "node_modules/aria-hidden": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", - "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", + "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", "license": "MIT", "dependencies": { "tslib": "^2.0.0" @@ -8800,18 +8960,20 @@ } }, "node_modules/array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -9049,9 +9211,9 @@ } }, "node_modules/axios": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.9.0.tgz", - "integrity": "sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.10.0.tgz", + "integrity": "sha512-/1xYAC4MP/HEG+3duIhFr4ZQXR4sQXOIe+o6sdqzeykGLx6Upp/1p8MHqhINOvGeP7xyNHe7tsiJByc4SSVUxw==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", @@ -9082,7 +9244,6 @@ "integrity": "sha512-unn6Vy/Yke6F99vg/7tcrvM2KUvIhTNniaSqDbam4AWkd4NhvDVSrQiRYVlNzUV2P7SPobkCK7JFVxrJk9btCg==", "license": "Apache-2.0", "optional": true, - "peer": true, "dependencies": { "bare-module-resolve": "^1.10.0", "bare-semver": "^1.0.0" @@ -9097,12 +9258,11 @@ } }, "node_modules/bare-module-resolve": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/bare-module-resolve/-/bare-module-resolve-1.10.2.tgz", - "integrity": "sha512-C9COe/GhWfVXKytW3DElTkiBU+Gb2OXeaVkdGdRB/lp26TVLESHkTGS876iceAGdvtPgohfp9nX8vXHGvN3++Q==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/bare-module-resolve/-/bare-module-resolve-1.11.1.tgz", + "integrity": "sha512-DCxeT9i8sTs3vUMA3w321OX/oXtNEu5EjObQOnTmCdNp5RXHBAvAaBDHvAi9ta0q/948QPz+co6SsGi6aQMYRg==", "license": "Apache-2.0", "optional": true, - "peer": true, "dependencies": { "bare-semver": "^1.0.0" }, @@ -9121,7 +9281,6 @@ "integrity": "sha512-uaIjxokhFidJP+bmmvKSgiMzj2sV5GPHaZVAIktcxcpCyBFFWO+YlikVAdhmUo2vYFvFhOXIAlldqV29L8126g==", "license": "Apache-2.0", "optional": true, - "peer": true, "engines": { "bare": ">=1.14.0" } @@ -9132,7 +9291,6 @@ "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", "license": "Apache-2.0", "optional": true, - "peer": true, "dependencies": { "bare-os": "^3.0.1" } @@ -9142,8 +9300,7 @@ "resolved": "https://registry.npmjs.org/bare-semver/-/bare-semver-1.0.1.tgz", "integrity": "sha512-UtggzHLiTrmFOC/ogQ+Hy7VfoKoIwrP1UFcYtTxoCUdLtsIErT8+SWtOC2DH/snT9h+xDrcBEPcwKei1mzemgg==", "license": "Apache-2.0", - "optional": true, - "peer": true + "optional": true }, "node_modules/bare-url": { "version": "2.1.6", @@ -9151,7 +9308,6 @@ "integrity": "sha512-FgjDeR+/yDH34By4I0qB5NxAoWv7dOTYcOXwn73kr+c93HyC2lU6tnjifqUe33LKMJcDyCYPQjEAqgOQiXkE2Q==", "license": "Apache-2.0", "optional": true, - "peer": true, "dependencies": { "bare-path": "^3.0.0" } @@ -9170,7 +9326,6 @@ "resolved": "https://registry.npmjs.org/base32.js/-/base32.js-0.1.0.tgz", "integrity": "sha512-n3TkB02ixgBOhTvANakDb4xaMXnYUVkNoRFJjQflcqMQhyEKxEHdj3E6N8t8sUQ0mjH/3/JxzlXuz3ul/J90pQ==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.12.0" } @@ -9306,9 +9461,9 @@ "license": "Apache-2.0" }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -9336,9 +9491,9 @@ "license": "MIT" }, "node_modules/browserslist": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", - "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "version": "4.25.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz", + "integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==", "dev": true, "funding": [ { @@ -9356,10 +9511,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", + "caniuse-lite": "^1.0.30001726", + "electron-to-chromium": "^1.5.173", "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" + "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" @@ -9518,9 +9673,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001716", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001716.tgz", - "integrity": "sha512-49/c1+x3Kwz7ZIWt+4DvK3aMJy9oYXXG6/97JKsnjdCk/6n9vVyWL8NAwVt95Lwt9eigI10Hl782kDfZUUlRXw==", + "version": "1.0.30001726", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001726.tgz", + "integrity": "sha512-VQAUIUzBiZ/UnlM28fSp2CRF3ivUn1BWEvxMcVTNwpw91Py1pGbPIyIKtd+tzct9C3ouceCVdGAXxZOpZAsgdw==", "funding": [ { "type": "opencollective", @@ -9582,6 +9737,16 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, "node_modules/cipher-base": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.6.tgz", @@ -9903,9 +10068,9 @@ } }, "node_modules/crossws": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.4.tgz", - "integrity": "sha512-uj0O1ETYX1Bh6uSgktfPvwDiPYGQ3aI4qVsaC/LWpkIzGj1nUYm5FK3K+t11oOlpN01lGbprFCH4wBlKdJjVgw==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.5.tgz", + "integrity": "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==", "license": "MIT", "dependencies": { "uncrypto": "^0.1.3" @@ -9988,20 +10153,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/date-fns": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", - "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/kossnocorp" - } - }, "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -10211,9 +10366,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.148", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.148.tgz", - "integrity": "sha512-8uc1QXwwqayD4mblcsQYZqoi+cOc97A2XmKSBOIRbEAvbp6vrqmSYs4dHD2qVygUgn7Mi0qdKgPaJ9WC8cv63A==", + "version": "1.5.174", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.174.tgz", + "integrity": "sha512-HE43yYdUUiJVjewV2A9EP8o89Kb4AqMKplMQP2IxEPUws1Etu/ZkdsgUDabUZ/WmbP4ZbvJDOcunvbBUPPIfmw==", "dev": true, "license": "ISC" }, @@ -10252,18 +10407,18 @@ "license": "MIT" }, "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", "license": "MIT", "dependencies": { "once": "^1.4.0" } }, "node_modules/enhanced-resolve": { - "version": "5.18.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", - "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "version": "5.18.2", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.2.tgz", + "integrity": "sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ==", "dev": true, "license": "MIT", "dependencies": { @@ -10288,9 +10443,9 @@ } }, "node_modules/es-abstract": { - "version": "1.23.9", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", - "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz", + "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==", "dev": true, "license": "MIT", "dependencies": { @@ -10298,18 +10453,18 @@ "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", - "call-bound": "^1.0.3", + "call-bound": "^1.0.4", "data-view-buffer": "^1.0.2", "data-view-byte-length": "^1.0.2", "data-view-byte-offset": "^1.0.1", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", + "es-object-atoms": "^1.1.1", "es-set-tostringtag": "^2.1.0", "es-to-primitive": "^1.3.0", "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.0", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", "get-symbol-description": "^1.1.0", "globalthis": "^1.0.4", "gopd": "^1.2.0", @@ -10321,21 +10476,24 @@ "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", "is-regex": "^1.2.1", + "is-set": "^2.0.3", "is-shared-array-buffer": "^1.0.4", "is-string": "^1.1.1", "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.0", + "is-weakref": "^1.1.1", "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.3", + "object-inspect": "^1.13.4", "object-keys": "^1.1.1", "object.assign": "^4.1.7", "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.3", + "regexp.prototype.flags": "^1.5.4", "safe-array-concat": "^1.1.3", "safe-push-apply": "^1.0.0", "safe-regex-test": "^1.1.0", "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", "string.prototype.trim": "^1.2.10", "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", @@ -10344,7 +10502,7 @@ "typed-array-byte-offset": "^1.0.4", "typed-array-length": "^1.0.7", "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.18" + "which-typed-array": "^1.1.19" }, "engines": { "node": ">= 0.4" @@ -10495,20 +10653,20 @@ } }, "node_modules/eslint": { - "version": "9.25.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.25.1.tgz", - "integrity": "sha512-E6Mtz9oGQWDCpV12319d59n4tx9zOTXSTmc8BLVxBx+G/0RdM5MvEEJLU9c0+aleoePYYgVTOsRblx433qmhWQ==", + "version": "9.29.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.29.0.tgz", + "integrity": "sha512-GsGizj2Y1rCWDu6XoEekL3RLilp0voSePurjZIkxL3wlm5o5EC9VpgaP7lrCvjnkuLvzFBQWB3vWB3K5KQTveQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.20.0", + "@eslint/config-array": "^0.20.1", "@eslint/config-helpers": "^0.2.1", - "@eslint/core": "^0.13.0", + "@eslint/core": "^0.14.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.25.1", - "@eslint/plugin-kit": "^0.2.8", + "@eslint/js": "9.29.0", + "@eslint/plugin-kit": "^0.3.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", @@ -10519,9 +10677,9 @@ "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.3.0", - "eslint-visitor-keys": "^4.2.0", - "espree": "^10.3.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -10584,14 +10742,17 @@ } }, "node_modules/eslint-config-prettier": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.2.tgz", - "integrity": "sha512-Epgp/EofAUeEpIdZkW60MHKvPyru1ruQJxPL+WIycnaPApuseK0Zpkrh/FwL9oIpQvIhJwV7ptOy0DWUjTlCiA==", + "version": "10.1.5", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.5.tgz", + "integrity": "sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw==", "dev": true, "license": "MIT", "bin": { "eslint-config-prettier": "bin/cli.js" }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, "peerDependencies": { "eslint": ">=7.0.0" } @@ -10654,9 +10815,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", - "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", + "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", "dev": true, "license": "MIT", "dependencies": { @@ -10682,30 +10843,30 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", - "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", "dependencies": { "@rtsao/scc": "^1.1.0", - "array-includes": "^3.1.8", - "array.prototype.findlastindex": "^1.2.5", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.12.0", + "eslint-module-utils": "^2.12.1", "hasown": "^2.0.2", - "is-core-module": "^2.15.1", + "is-core-module": "^2.16.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", "object.fromentries": "^2.0.8", "object.groupby": "^1.0.3", - "object.values": "^1.2.0", + "object.values": "^1.2.1", "semver": "^6.3.1", - "string.prototype.trimend": "^1.0.8", + "string.prototype.trimend": "^1.0.9", "tsconfig-paths": "^3.15.0" }, "engines": { @@ -10766,9 +10927,9 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.4.1.tgz", - "integrity": "sha512-9dF+KuU/Ilkq27A8idRP7N2DH8iUR6qXcjF3FR2wETY21PZdBrIjwCau8oboyGj9b7etWmTGEeM8e7oOed6ZWg==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.1.tgz", + "integrity": "sha512-dobTkHT6XaEVOo8IO90Q4DOSxnm3Y151QxPJlM/vKC0bVy+d6cVWQZLlFiuZPP0wS6vZwSKeJgKkcS+KfMBlRw==", "dev": true, "license": "MIT", "dependencies": { @@ -10871,9 +11032,9 @@ } }, "node_modules/eslint-scope": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", - "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -10888,9 +11049,9 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -10934,15 +11095,15 @@ } }, "node_modules/espree": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", - "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.14.0", + "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.0" + "eslint-visitor-keys": "^4.2.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -10998,58 +11159,47 @@ } }, "node_modules/ethereum-cryptography": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz", - "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-3.2.0.tgz", + "integrity": "sha512-Urr5YVsalH+Jo0sYkTkv1MyI9bLYZwW8BENZCeE1QYaTHETEYx0Nv/SVsWkSqpYrzweg6d8KMY1wTjH/1m/BIg==", "license": "MIT", + "peer": true, "dependencies": { - "@noble/curves": "1.4.2", - "@noble/hashes": "1.4.0", - "@scure/bip32": "1.4.0", - "@scure/bip39": "1.3.0" + "@noble/ciphers": "1.3.0", + "@noble/curves": "1.9.0", + "@noble/hashes": "1.8.0", + "@scure/bip32": "1.7.0", + "@scure/bip39": "1.6.0" + }, + "engines": { + "node": "^14.21.3 || >=16", + "npm": ">=9" } }, "node_modules/ethereum-cryptography/node_modules/@noble/curves": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", - "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.0.tgz", + "integrity": "sha512-7YDlXiNMdO1YZeH6t/kvopHHbIZzlxrCV9WLqCY6QhcXOoXiNCMDqJIglZ9Yjx5+w7Dz30TITFrlTjnRg7sKEg==", "license": "MIT", + "peer": true, "dependencies": { - "@noble/hashes": "1.4.0" + "@noble/hashes": "1.8.0" }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/ethereum-cryptography/node_modules/@noble/hashes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", - "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", - "license": "MIT", "engines": { - "node": ">= 16" + "node": "^14.21.3 || >=16" }, "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/ethereum-cryptography/node_modules/@scure/base": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", - "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==", - "license": "MIT", - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/ethereum-cryptography/node_modules/@scure/bip39": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", - "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "node_modules/ethereum-cryptography/node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", "license": "MIT", - "dependencies": { - "@noble/hashes": "~1.4.0", - "@scure/base": "~1.1.6" + "peer": true, + "engines": { + "node": "^14.21.3 || >=16" }, "funding": { "url": "https://paulmillr.com/funding/" @@ -11075,7 +11225,6 @@ "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz", "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==", "license": "MIT", - "peer": true, "engines": { "node": ">=12.0.0" } @@ -11221,6 +11370,15 @@ "node": ">=0.8.0" } }, + "node_modules/feaxios": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/feaxios/-/feaxios-0.0.20.tgz", + "integrity": "sha512-g3hm2YDNffNxA3Re3Hd8ahbpmDee9Fv1Pb1C/NoWsjY7mtD8nyNeJytUzn+DK0Hyl9o6HppeWOrtnqgmhOYfWA==", + "license": "MIT", + "dependencies": { + "is-retry-allowed": "^3.0.0" + } + }, "node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", @@ -11280,39 +11438,39 @@ } }, "node_modules/firebase": { - "version": "11.6.1", - "resolved": "https://registry.npmjs.org/firebase/-/firebase-11.6.1.tgz", - "integrity": "sha512-aF00ZR+ziiq5/vxamCKpY1I0LA/ungG2qrsQIDibT+xqdvz8MaMnN0aHU4LIxxTx+Dbga/KlUXeklidRJahgHg==", + "version": "11.9.1", + "resolved": "https://registry.npmjs.org/firebase/-/firebase-11.9.1.tgz", + "integrity": "sha512-nbQbQxNlkHHRDn4cYwHdAKHwJPeZ0jRXxlNp6PCOb9CQx8Dc6Vjve97R34r1EZJnzOsPYZ3+ssJH7fkovDjvCw==", "license": "Apache-2.0", "dependencies": { - "@firebase/analytics": "0.10.12", - "@firebase/analytics-compat": "0.2.18", - "@firebase/app": "0.11.5", - "@firebase/app-check": "0.8.13", - "@firebase/app-check-compat": "0.3.20", - "@firebase/app-compat": "0.2.54", + "@firebase/ai": "1.4.0", + "@firebase/analytics": "0.10.16", + "@firebase/analytics-compat": "0.2.22", + "@firebase/app": "0.13.1", + "@firebase/app-check": "0.10.0", + "@firebase/app-check-compat": "0.3.25", + "@firebase/app-compat": "0.4.1", "@firebase/app-types": "0.9.3", - "@firebase/auth": "1.10.1", - "@firebase/auth-compat": "0.5.21", - "@firebase/data-connect": "0.3.4", - "@firebase/database": "1.0.14", - "@firebase/database-compat": "2.0.5", - "@firebase/firestore": "4.7.11", - "@firebase/firestore-compat": "0.3.46", - "@firebase/functions": "0.12.3", - "@firebase/functions-compat": "0.3.20", - "@firebase/installations": "0.6.13", - "@firebase/installations-compat": "0.2.13", - "@firebase/messaging": "0.12.17", - "@firebase/messaging-compat": "0.2.17", - "@firebase/performance": "0.7.2", - "@firebase/performance-compat": "0.2.15", - "@firebase/remote-config": "0.6.0", - "@firebase/remote-config-compat": "0.2.13", - "@firebase/storage": "0.13.7", - "@firebase/storage-compat": "0.3.17", - "@firebase/util": "1.11.0", - "@firebase/vertexai": "1.2.1" + "@firebase/auth": "1.10.7", + "@firebase/auth-compat": "0.5.27", + "@firebase/data-connect": "0.3.9", + "@firebase/database": "1.0.19", + "@firebase/database-compat": "2.0.10", + "@firebase/firestore": "4.7.17", + "@firebase/firestore-compat": "0.3.52", + "@firebase/functions": "0.12.8", + "@firebase/functions-compat": "0.3.25", + "@firebase/installations": "0.6.17", + "@firebase/installations-compat": "0.2.17", + "@firebase/messaging": "0.12.21", + "@firebase/messaging-compat": "0.2.21", + "@firebase/performance": "0.7.6", + "@firebase/performance-compat": "0.2.19", + "@firebase/remote-config": "0.6.4", + "@firebase/remote-config-compat": "0.2.17", + "@firebase/storage": "0.13.13", + "@firebase/storage-compat": "0.3.23", + "@firebase/util": "1.12.0" } }, "node_modules/flat-cache": { @@ -11372,14 +11530,15 @@ } }, "node_modules/form-data": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", - "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.3.tgz", + "integrity": "sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==", "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", "mime-types": "^2.1.12" }, "engines": { @@ -11560,9 +11719,9 @@ } }, "node_modules/get-tsconfig": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz", - "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz", + "integrity": "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==", "dev": true, "license": "MIT", "dependencies": { @@ -11586,9 +11745,9 @@ } }, "node_modules/globals": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-16.0.0.tgz", - "integrity": "sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==", + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.2.0.tgz", + "integrity": "sha512-O+7l9tPdHCU320IigZZPj5zmRCFG9xHmx9cU8FqU2Rp+JN714seHV+2S9+JslCpY4gJwU2vOGox0wzgae/MCEg==", "dev": true, "license": "MIT", "engines": { @@ -11896,9 +12055,9 @@ "license": "ISC" }, "node_modules/idb-keyval": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.1.tgz", - "integrity": "sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.2.tgz", + "integrity": "sha512-yjD9nARJ/jb1g+CvD0tlhUHOrJ9Sy0P8T9MF3YaLlHnSRpwPfpTX0XIvpmw3gAJUmEu3FiICLBDPXVwyEvrleg==", "license": "Apache-2.0" }, "node_modules/ieee754": { @@ -12294,6 +12453,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -12346,6 +12518,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-retry-allowed": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-3.0.0.tgz", + "integrity": "sha512-9xH0xvoggby+u0uGF7cZXdrutWiBiaFG8ZT4YFPXL8NzkyAwX3AKGLeFQLvzDpM430+nDFBZ1LHkie/8ocL06A==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-set": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", @@ -12626,9 +12810,9 @@ } }, "node_modules/js-sha256": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.11.0.tgz", - "integrity": "sha512-6xNlKayMZvds9h1Y1VWc0fQHQ82BxTXizWPEtEeGvmOUYpBRy4gbWroHLpzowe6xiQhHpelCQiE7HEdznyBL9Q==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.11.1.tgz", + "integrity": "sha512-o6WSo/LUvY2uC4j7mO50a2ms7E/EAdbP0swigLV+nzHKTTaYnaLIWJ02VdXrsJX0vGedDESQnLsOekr94ryfjg==", "license": "MIT" }, "node_modules/js-tokens": { @@ -12796,9 +12980,9 @@ } }, "node_modules/lightningcss": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.29.2.tgz", - "integrity": "sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz", + "integrity": "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==", "dev": true, "license": "MPL-2.0", "dependencies": { @@ -12812,22 +12996,22 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "lightningcss-darwin-arm64": "1.29.2", - "lightningcss-darwin-x64": "1.29.2", - "lightningcss-freebsd-x64": "1.29.2", - "lightningcss-linux-arm-gnueabihf": "1.29.2", - "lightningcss-linux-arm64-gnu": "1.29.2", - "lightningcss-linux-arm64-musl": "1.29.2", - "lightningcss-linux-x64-gnu": "1.29.2", - "lightningcss-linux-x64-musl": "1.29.2", - "lightningcss-win32-arm64-msvc": "1.29.2", - "lightningcss-win32-x64-msvc": "1.29.2" + "lightningcss-darwin-arm64": "1.30.1", + "lightningcss-darwin-x64": "1.30.1", + "lightningcss-freebsd-x64": "1.30.1", + "lightningcss-linux-arm-gnueabihf": "1.30.1", + "lightningcss-linux-arm64-gnu": "1.30.1", + "lightningcss-linux-arm64-musl": "1.30.1", + "lightningcss-linux-x64-gnu": "1.30.1", + "lightningcss-linux-x64-musl": "1.30.1", + "lightningcss-win32-arm64-msvc": "1.30.1", + "lightningcss-win32-x64-msvc": "1.30.1" } }, "node_modules/lightningcss-darwin-arm64": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.29.2.tgz", - "integrity": "sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.1.tgz", + "integrity": "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==", "cpu": [ "arm64" ], @@ -12846,9 +13030,9 @@ } }, "node_modules/lightningcss-darwin-x64": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.29.2.tgz", - "integrity": "sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.1.tgz", + "integrity": "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==", "cpu": [ "x64" ], @@ -12867,9 +13051,9 @@ } }, "node_modules/lightningcss-freebsd-x64": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.29.2.tgz", - "integrity": "sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.1.tgz", + "integrity": "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==", "cpu": [ "x64" ], @@ -12888,9 +13072,9 @@ } }, "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.29.2.tgz", - "integrity": "sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.1.tgz", + "integrity": "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==", "cpu": [ "arm" ], @@ -12909,9 +13093,9 @@ } }, "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.29.2.tgz", - "integrity": "sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.1.tgz", + "integrity": "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==", "cpu": [ "arm64" ], @@ -12930,9 +13114,9 @@ } }, "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.29.2.tgz", - "integrity": "sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz", + "integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==", "cpu": [ "arm64" ], @@ -12951,9 +13135,9 @@ } }, "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.29.2.tgz", - "integrity": "sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.1.tgz", + "integrity": "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==", "cpu": [ "x64" ], @@ -12972,9 +13156,9 @@ } }, "node_modules/lightningcss-linux-x64-musl": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.29.2.tgz", - "integrity": "sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.1.tgz", + "integrity": "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==", "cpu": [ "x64" ], @@ -12993,9 +13177,9 @@ } }, "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.29.2.tgz", - "integrity": "sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.1.tgz", + "integrity": "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==", "cpu": [ "arm64" ], @@ -13014,9 +13198,9 @@ } }, "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.29.2", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.29.2.tgz", - "integrity": "sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==", + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz", + "integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==", "cpu": [ "x64" ], @@ -13048,9 +13232,9 @@ } }, "node_modules/lint-staged": { - "version": "15.5.1", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.5.1.tgz", - "integrity": "sha512-6m7u8mue4Xn6wK6gZvSCQwBvMBR36xfY24nF5bMTf2MHDYG6S3yhJuOgdYVw99hsjyDt2d4z168b3naI8+NWtQ==", + "version": "15.5.2", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.5.2.tgz", + "integrity": "sha512-YUSOLq9VeRNAo/CTaVmhGDKG+LBtA8KF1X4K5+ykMSwWST1vDxJRB2kv2COgLb1fvpCo+A/y9A0G0znNVmdx4w==", "dev": true, "license": "MIT", "dependencies": { @@ -13076,9 +13260,9 @@ } }, "node_modules/listr2": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.3.2.tgz", - "integrity": "sha512-vsBzcU4oE+v0lj4FhVLzr9dBTv4/fHIa57l+GCwovP8MoFNZJTOhGU8PXd4v2VJCbECAaijBiHntiekFMLvo0g==", + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.3.3.tgz", + "integrity": "sha512-LWzX2KsqcB1wqQ4AHgYb4RsDXauQiqhjLk+6hjbaeHG4zpjjVAB6wC/gz6X0l+Du1cN3pUB5ZlrvTbhGSNnUQQ==", "dev": true, "license": "MIT", "dependencies": { @@ -13260,6 +13444,16 @@ "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -13393,6 +13587,45 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minizlib": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.2.tgz", + "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/motion": { "version": "10.16.2", "resolved": "https://registry.npmjs.org/motion/-/motion-10.16.2.tgz", @@ -13456,9 +13689,9 @@ } }, "node_modules/napi-postinstall": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.2.3.tgz", - "integrity": "sha512-Mi7JISo/4Ij2tDZ2xBE2WH+/KvVlkhA6juEjpEeRAVPNCpN3nxJo/5FhDNKgBcdmcmhaH6JjgST4xY/23ZYK0w==", + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.2.4.tgz", + "integrity": "sha512-ZEzHJwBhZ8qQSbknHqYcdtQVr8zUgGyM/q6h6qAyhtyVMNrSgDhrC4disf03dYW0e+czXyLnZINnCTEkWy0eJg==", "dev": true, "license": "MIT", "bin": { @@ -13668,9 +13901,9 @@ } }, "node_modules/node-mock-http": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.0.tgz", - "integrity": "sha512-0uGYQ1WQL1M5kKvGRXWQ3uZCHtLTO8hln3oBjIusM75WoesZ909uQJs/Hb946i2SS+Gsrhkaa6iAO17jRIv6DQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.1.tgz", + "integrity": "sha512-0gJJgENizp4ghds/Ywu2FCmcRsgBTmRQzYPZm61wy+Em2sBarSka0OhQS5huLBg6od1zkNpnWMCZloQDFVvOMQ==", "license": "MIT" }, "node_modules/node-releases": { @@ -14111,9 +14344,9 @@ } }, "node_modules/postcss": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", - "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", "dev": true, "funding": [ { @@ -14131,7 +14364,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.8", + "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -14157,9 +14390,9 @@ } }, "node_modules/prettier": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", - "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.1.tgz", + "integrity": "sha512-5xGWRa90Sp2+x1dQtNpIpeOQpTDBs9cZDmA/qs2vDNN2i18PdapqY7CmBeyLlMuGqXJRIOPaCaVZTLNQRWUH/A==", "dev": true, "license": "MIT", "bin": { @@ -14541,9 +14774,9 @@ } }, "node_modules/react-hook-form": { - "version": "7.56.1", - "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.56.1.tgz", - "integrity": "sha512-qWAVokhSpshhcEuQDSANHx3jiAEFzu2HAaaQIzi/r9FNPm1ioAvuJSD4EuZzWd7Al7nTRKcKPnBKO7sRn+zavQ==", + "version": "7.58.1", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.58.1.tgz", + "integrity": "sha512-Lml/KZYEEFfPhUVgE0RdCVpnC4yhW+PndRhbiTtdvSlQTL8IfVR+iQkBjLIvmmc6+GGoVeM11z37ktKFPAb0FA==", "license": "MIT", "engines": { "node": ">=18.0.0" @@ -14564,9 +14797,9 @@ "license": "MIT" }, "node_modules/react-remove-scroll": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.3.tgz", - "integrity": "sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.1.tgz", + "integrity": "sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==", "license": "MIT", "dependencies": { "react-remove-scroll-bar": "^2.3.7", @@ -14718,7 +14951,6 @@ "integrity": "sha512-KbXAD5q2+v1GJnkzd8zzbOxchTkStSyJZ9QwoCq3QwEXAaIlG3wDYRZGzVD357jmwaGY7hr5VaoEAL0BkF0Kvg==", "license": "Apache-2.0", "optional": true, - "peer": true, "dependencies": { "bare-addon-resolve": "^1.3.0", "bare-url": "^2.1.0" @@ -14859,9 +15091,9 @@ } }, "node_modules/ripple-binary-codec": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/ripple-binary-codec/-/ripple-binary-codec-2.3.0.tgz", - "integrity": "sha512-CPMzkknXlgO9Ow5Qa5iqQm0vOIlJyN8M1bc8etyhLw2Xfrer6bPzLA8/apuKlGQ+XdznYSKPBz5LAhwYjaDAcA==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/ripple-binary-codec/-/ripple-binary-codec-2.4.1.tgz", + "integrity": "sha512-ABwQnWE1WBOvya9WIJ/KiogdsulOw5X8IrIZ3wW0Ec1hiWUNitNuI9LhN9XwHhNFuuvZyRAr+SzgFTBTCTfxFg==", "license": "ISC", "peer": true, "dependencies": { @@ -15174,9 +15406,9 @@ "license": "MIT" }, "node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -15462,9 +15694,9 @@ } }, "node_modules/socks": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.4.tgz", - "integrity": "sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==", + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.5.tgz", + "integrity": "sha512-iF+tNDQla22geJdTyJB1wM/qrX9DMRwWrciEPwWLPRWAUEM8sQiyxgckLxWT1f7+9VabJS0jTGGr4QgBuvi6Ww==", "license": "MIT", "dependencies": { "ip-address": "^9.0.5", @@ -15496,7 +15728,6 @@ "integrity": "sha512-OnxSlN3uyY8D0EsLHpmm2HOFmKddQVvEMmsakCrXUzSd8kjjbzL413t4ZNF3n0UxSwNgwTyUvkmZHTfuCeiYSw==", "license": "MIT", "optional": true, - "peer": true, "dependencies": { "require-addon": "^1.1.0" } @@ -15511,9 +15742,9 @@ } }, "node_modules/sonner": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/sonner/-/sonner-2.0.3.tgz", - "integrity": "sha512-njQ4Hht92m0sMqqHVDL32V2Oun9W1+PHO9NDv9FHfJjT3JT22IG4Jpo3FPQy+mouRKCXFWO+r67v6MrHX2zeIA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/sonner/-/sonner-2.0.5.tgz", + "integrity": "sha512-YwbHQO6cSso3HBXlbCkgrgzDNIhws14r4MO87Ofy+cV2X7ES4pOoAK3+veSmVTvqNx1BWUxlhPmZzP00Crk2aQ==", "license": "MIT", "peerDependencies": { "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", @@ -15570,6 +15801,20 @@ "node": ">= 0.6" } }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/stream-browserify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", @@ -15902,9 +16147,9 @@ } }, "node_modules/tailwind-merge": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.2.0.tgz", - "integrity": "sha512-FQT/OVqCD+7edmmJpsgCsY820RTD5AkBryuG5IUqR5YQZSdj5xlH5nLgH7YPths7WsLPSpSBNneJdM8aS8aeFA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.3.1.tgz", + "integrity": "sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==", "license": "MIT", "funding": { "type": "github", @@ -15912,30 +16157,38 @@ } }, "node_modules/tailwindcss": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.5.tgz", - "integrity": "sha512-nYtSPfWGDiWgCkwQG/m+aX83XCwf62sBgg3bIlNiiOcggnS1x3uVRDAuyelBFL+vJdOPPCGElxv9DjHJjRHiVA==", + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.10.tgz", + "integrity": "sha512-P3nr6WkvKV/ONsTzj6Gb57sWPMX29EPNPopo7+FcpkQaNsrNpZ1pv8QmrYI2RqEKD7mlGqLnGovlcYnBK0IqUA==", "dev": true, "license": "MIT" }, - "node_modules/tailwindcss-animate": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", - "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", + "node_modules/tapable": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz", + "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==", "dev": true, "license": "MIT", - "peerDependencies": { - "tailwindcss": ">=3.0.0 || insiders" + "engines": { + "node": ">=6" } }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "node_modules/tar": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", "dev": true, - "license": "MIT", + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, "engines": { - "node": ">=6" + "node": ">=18" } }, "node_modules/text-encoding-utf-8": { @@ -15976,9 +16229,9 @@ "license": "MIT" }, "node_modules/tinyglobby": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", - "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", + "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", "dev": true, "license": "MIT", "dependencies": { @@ -15993,9 +16246,9 @@ } }, "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.4.4", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", - "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", + "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", "dev": true, "license": "MIT", "peerDependencies": { @@ -16047,8 +16300,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/tr46": { "version": "0.0.3", @@ -16095,9 +16347,9 @@ "license": "0BSD" }, "node_modules/tw-animate-css": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/tw-animate-css/-/tw-animate-css-1.2.8.tgz", - "integrity": "sha512-AxSnYRvyFnAiZCUndS3zQZhNfV/B77ZhJ+O7d3K6wfg/jKJY+yv6ahuyXwnyaYA9UdLqnpCwhTRv9pPTBnPR2g==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/tw-animate-css/-/tw-animate-css-1.3.4.tgz", + "integrity": "sha512-dd1Ht6/YQHcNbq0znIT6dG8uhO7Ce+VIIhZUhjsryXsMPJQz3bZg7Q2eNzLwipb25bRZslGb2myio5mScd1TFg==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/Wombosvideo" @@ -16226,15 +16478,15 @@ } }, "node_modules/typescript-eslint": { - "version": "8.31.1", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.31.1.tgz", - "integrity": "sha512-j6DsEotD/fH39qKzXTQRwYYWlt7D+0HmfpOK+DVhwJOFLcdmn92hq3mBb7HlKJHbjjI/gTOqEcc9d6JfpFf/VA==", + "version": "8.35.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.35.0.tgz", + "integrity": "sha512-uEnz70b7kBz6eg/j0Czy6K5NivaYopgxRjsnAJ2Fx5oTLo3wefTHIbL7AkQr1+7tJCRVpTs/wiM8JR/11Loq9A==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.31.1", - "@typescript-eslint/parser": "8.31.1", - "@typescript-eslint/utils": "8.31.1" + "@typescript-eslint/eslint-plugin": "8.35.0", + "@typescript-eslint/parser": "8.35.0", + "@typescript-eslint/utils": "8.35.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -16270,9 +16522,9 @@ "peer": true }, "node_modules/ua-parser-js": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-2.0.3.tgz", - "integrity": "sha512-LZyXZdNttONW8LjzEH3Z8+6TE7RfrEiJqDKyh0R11p/kxvrV2o9DrT2FGZO+KVNs3k+drcIQ6C3En6wLnzJGpw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-2.0.4.tgz", + "integrity": "sha512-XiBOnM/UpUq21ZZ91q2AVDOnGROE6UQd37WrO9WBgw4u2eGvUCNOheMmZ3EfEUj7DLHr8tre+Um/436Of/Vwzg==", "funding": [ { "type": "opencollective", @@ -16353,9 +16605,9 @@ "license": "MIT" }, "node_modules/undici-types": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", - "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.10.0.tgz", + "integrity": "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==", "license": "MIT", "peer": true }, @@ -16366,36 +16618,38 @@ "license": "MIT" }, "node_modules/unrs-resolver": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.7.2.tgz", - "integrity": "sha512-BBKpaylOW8KbHsu378Zky/dGh4ckT/4NW/0SHRABdqRLcQJ2dAOjDo9g97p04sWflm0kqPqpUatxReNV/dqI5A==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.9.2.tgz", + "integrity": "sha512-VUyWiTNQD7itdiMuJy+EuLEErLj3uwX/EpHQF8EOf33Dq3Ju6VW1GXm+swk6+1h7a49uv9fKZ+dft9jU7esdLA==", "dev": true, "hasInstallScript": true, "license": "MIT", "dependencies": { - "napi-postinstall": "^0.2.2" + "napi-postinstall": "^0.2.4" }, "funding": { - "url": "https://github.com/sponsors/JounQin" + "url": "https://opencollective.com/unrs-resolver" }, "optionalDependencies": { - "@unrs/resolver-binding-darwin-arm64": "1.7.2", - "@unrs/resolver-binding-darwin-x64": "1.7.2", - "@unrs/resolver-binding-freebsd-x64": "1.7.2", - "@unrs/resolver-binding-linux-arm-gnueabihf": "1.7.2", - "@unrs/resolver-binding-linux-arm-musleabihf": "1.7.2", - "@unrs/resolver-binding-linux-arm64-gnu": "1.7.2", - "@unrs/resolver-binding-linux-arm64-musl": "1.7.2", - "@unrs/resolver-binding-linux-ppc64-gnu": "1.7.2", - "@unrs/resolver-binding-linux-riscv64-gnu": "1.7.2", - "@unrs/resolver-binding-linux-riscv64-musl": "1.7.2", - "@unrs/resolver-binding-linux-s390x-gnu": "1.7.2", - "@unrs/resolver-binding-linux-x64-gnu": "1.7.2", - "@unrs/resolver-binding-linux-x64-musl": "1.7.2", - "@unrs/resolver-binding-wasm32-wasi": "1.7.2", - "@unrs/resolver-binding-win32-arm64-msvc": "1.7.2", - "@unrs/resolver-binding-win32-ia32-msvc": "1.7.2", - "@unrs/resolver-binding-win32-x64-msvc": "1.7.2" + "@unrs/resolver-binding-android-arm-eabi": "1.9.2", + "@unrs/resolver-binding-android-arm64": "1.9.2", + "@unrs/resolver-binding-darwin-arm64": "1.9.2", + "@unrs/resolver-binding-darwin-x64": "1.9.2", + "@unrs/resolver-binding-freebsd-x64": "1.9.2", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.9.2", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.9.2", + "@unrs/resolver-binding-linux-arm64-gnu": "1.9.2", + "@unrs/resolver-binding-linux-arm64-musl": "1.9.2", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.9.2", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.9.2", + "@unrs/resolver-binding-linux-riscv64-musl": "1.9.2", + "@unrs/resolver-binding-linux-s390x-gnu": "1.9.2", + "@unrs/resolver-binding-linux-x64-gnu": "1.9.2", + "@unrs/resolver-binding-linux-x64-musl": "1.9.2", + "@unrs/resolver-binding-wasm32-wasi": "1.9.2", + "@unrs/resolver-binding-win32-arm64-msvc": "1.9.2", + "@unrs/resolver-binding-win32-ia32-msvc": "1.9.2", + "@unrs/resolver-binding-win32-x64-msvc": "1.9.2" } }, "node_modules/unstorage": { @@ -16535,8 +16789,7 @@ "version": "1.19.11", "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz", "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/usb": { "version": "2.15.0", @@ -16554,9 +16807,9 @@ } }, "node_modules/usb/node_modules/node-addon-api": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.3.1.tgz", - "integrity": "sha512-lytcDEdxKjGJPTLEfW4mYMigRezMlyJY8W4wxJK8zE533Jlb8L8dRuObJFWg2P+AuOIxoCgKF+2Oq4d4Zd0OUA==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.4.0.tgz", + "integrity": "sha512-D9DI/gXHvVmjHS08SVch0Em8G5S1P+QWtU31appcKT/8wFSPRcdHadIFSAntdMMVM5zz+/DL+bL/gz3UDppqtg==", "license": "MIT", "engines": { "node": "^18 || ^20 || >= 21" @@ -16904,9 +17157,9 @@ "license": "ISC" }, "node_modules/ws": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", - "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", + "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==", "license": "MIT", "engines": { "node": ">=10.0.0" @@ -16925,9 +17178,9 @@ } }, "node_modules/xrpl": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/xrpl/-/xrpl-4.2.5.tgz", - "integrity": "sha512-QIpsqvhaRiVvlq7px7lC+lhrxESDMN1vd8mW0SfTgY5WgzP9RLiDoVywOOvSZqDDjPs0EGfhxzYjREW1gGu0Ng==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/xrpl/-/xrpl-4.3.0.tgz", + "integrity": "sha512-MW/VyWyTGNmfmt5EaPexKb7ojcnobdzaqtm5UC9NErtlq7IgayqAZpMI26ptOzQolGndK7vOk8U0iOBpMSykJQ==", "license": "ISC", "peer": true, "dependencies": { @@ -16938,7 +17191,7 @@ "bignumber.js": "^9.0.0", "eventemitter3": "^5.0.1", "ripple-address-codec": "^5.0.0", - "ripple-binary-codec": "^2.3.0", + "ripple-binary-codec": "^2.4.0", "ripple-keypairs": "^2.0.0" }, "engines": { @@ -16964,17 +17217,27 @@ "node": ">=10" } }, + "node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, "node_modules/yaml": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.1.tgz", - "integrity": "sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz", + "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==", "dev": true, "license": "ISC", "bin": { "yaml": "bin.mjs" }, "engines": { - "node": ">= 14" + "node": ">= 14.6" } }, "node_modules/yargs": { @@ -17068,42 +17331,13 @@ } }, "node_modules/zod": { - "version": "3.24.3", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.3.tgz", - "integrity": "sha512-HhY1oqzWCQWuUqvBFnsyrtZRhyPeR7SUGv+C4+MsisMuVfSPx8HpwWqH8tRahSlt6M3PiFAcoeFhZAqIXTxoSg==", + "version": "3.25.67", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.67.tgz", + "integrity": "sha512-idA2YXwpCdqUSKRCACDE6ItZD9TZzy3OZMtpfLoh6oPR47lipysRrJfjzMqFxQ3uJuUPyUeWe1r9vLH33xO/Qw==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" } - }, - "node_modules/zustand": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.3.tgz", - "integrity": "sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==", - "license": "MIT", - "engines": { - "node": ">=12.20.0" - }, - "peerDependencies": { - "@types/react": ">=18.0.0", - "immer": ">=9.0.6", - "react": ">=18.0.0", - "use-sync-external-store": ">=1.2.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "immer": { - "optional": true - }, - "react": { - "optional": true - }, - "use-sync-external-store": { - "optional": true - } - } } } } diff --git a/package.json b/package.json index 5c7b5195..49a4c930 100644 --- a/package.json +++ b/package.json @@ -16,8 +16,10 @@ "eslint": "eslint --ext .js,.jsx,.ts,.tsx ." }, "dependencies": { + "@blend-capital/blend-sdk": "^2.2.0", "@creit.tech/stellar-wallets-kit": "^1.7.3", "@hookform/resolvers": "^5.0.0", + "@radix-ui/react-accordion": "^1.2.11", "@radix-ui/react-avatar": "^1.1.3", "@radix-ui/react-checkbox": "1.2.3", "@radix-ui/react-collapsible": "^1.1.3", @@ -35,11 +37,9 @@ "@radix-ui/react-tabs": "^1.1.3", "@radix-ui/react-toast": "^1.2.6", "@radix-ui/react-tooltip": "^1.1.8", - "@trustless-work/escrow": "0.1.8", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.1.1", - "date-fns": "^4.1.0", "firebase": "^11.6.0", "lucide-react": "^0.485.0", "next": "15.2.4", @@ -49,8 +49,7 @@ "sonner": "^2.0.3", "tailwind-merge": "^3.1.0", "tw-animate-css": "^1.2.5", - "zod": "^3.24.2", - "zustand": "^5.0.3" + "zod": "^3.24.2" }, "devDependencies": { "@eslint/eslintrc": "^3", @@ -73,7 +72,6 @@ "postcss": "^8.5.3", "prettier": "^3.5.3", "tailwindcss": "^4.0.17", - "tailwindcss-animate": "^1.0.7", "typescript": "^5", "typescript-eslint": "^8.28.0" }, diff --git a/public/img/assets/social-networks/linkedin.svg b/public/img/assets/social-networks/linkedin.svg deleted file mode 100644 index 2da6438b..00000000 --- a/public/img/assets/social-networks/linkedin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/img/assets/social-networks/telegram.svg b/public/img/assets/social-networks/telegram.svg deleted file mode 100644 index d58c812d..00000000 --- a/public/img/assets/social-networks/telegram.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/public/img/assets/social-networks/x.svg b/public/img/assets/social-networks/x.svg deleted file mode 100644 index fb9db218..00000000 --- a/public/img/assets/social-networks/x.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/img/assets/stellar-expert-blue.svg b/public/img/assets/stellar-expert-blue.svg deleted file mode 100644 index 2b494858..00000000 --- a/public/img/assets/stellar-expert-blue.svg +++ /dev/null @@ -1,32 +0,0 @@ - - - - \ No newline at end of file diff --git a/public/img/trustless-work-logo.png b/public/img/trustless-work-logo.png deleted file mode 100644 index 85629d14..00000000 Binary files a/public/img/trustless-work-logo.png and /dev/null differ diff --git a/src/@types/chat.entity.ts b/src/@types/chat.entity.ts deleted file mode 100644 index 30af9d98..00000000 --- a/src/@types/chat.entity.ts +++ /dev/null @@ -1,43 +0,0 @@ -export interface Message { - id: string; - content: string; - sender: "user" | "other"; - timestamp: string; - status?: "sending" | "sent" | "delivered" | "read" | "error"; -} - -export interface Chat { - id: string; - name: string; - avatar: string; - lastMessage: string; - unread: number; - messages: Message[]; - status?: "online" | "offline" | "away"; - lastSeen?: string; -} - -export interface ChatState { - isLoading: boolean; - error: string | null; - chats: Chat[]; - activeChat: Chat | null; -} - -export type ChatMessage = { - id: string; - from: string; - to: string; - content: string; - timestamp: number; - status?: "sent" | "delivered" | "read"; -}; - -export type ChatWithMessages = { - id: string; - participants: string[]; - lastMessage: string | null; - lastMessageTime: number | null; - createdAt: number; - messages: ChatMessage[]; -}; diff --git a/src/@types/date.entity.ts b/src/@types/date.entity.ts deleted file mode 100644 index a948609b..00000000 --- a/src/@types/date.entity.ts +++ /dev/null @@ -1,2 +0,0 @@ -export type CreatedAt = string; -export type UpdatedAt = string; diff --git a/src/@types/trustline.entity.ts b/src/@types/trustline.entity.ts deleted file mode 100644 index 7d6c4f70..00000000 --- a/src/@types/trustline.entity.ts +++ /dev/null @@ -1,5 +0,0 @@ -export interface Trustline { - name?: string; - address: string; - decimals: number; -} diff --git a/src/app/about-us/page.tsx b/src/app/about-us/page.tsx deleted file mode 100644 index acd76f96..00000000 --- a/src/app/about-us/page.tsx +++ /dev/null @@ -1,17 +0,0 @@ -"use client"; - -import AboutPage from "@/components/modules/about-us/ui/pages/AboutUs"; -import { GradientBackground } from "@/components/modules/dashboard/ui/pages/background/GradientBackground"; -import { ScrollArea } from "@/components/ui/scroll-area"; - -export default function Page() { - return ( - - -
- -
-
-
- ); -} diff --git a/src/app/dashboard/chat/[wallet]/page.tsx b/src/app/dashboard/chat/[wallet]/page.tsx deleted file mode 100644 index ec3ca592..00000000 --- a/src/app/dashboard/chat/[wallet]/page.tsx +++ /dev/null @@ -1,6 +0,0 @@ -"use client"; -import { ChatDialog } from "@/components/modules/chat/ui/dialogs/ChatDialog"; - -export default function ChatPage() { - return ; -} diff --git a/src/app/dashboard/chat/page.tsx b/src/app/dashboard/chat/page.tsx deleted file mode 100644 index ec3ca592..00000000 --- a/src/app/dashboard/chat/page.tsx +++ /dev/null @@ -1,6 +0,0 @@ -"use client"; -import { ChatDialog } from "@/components/modules/chat/ui/dialogs/ChatDialog"; - -export default function ChatPage() { - return ; -} diff --git a/src/app/dashboard/layout.tsx b/src/app/dashboard/layout.tsx index 9b50bf97..b3c52d6b 100644 --- a/src/app/dashboard/layout.tsx +++ b/src/app/dashboard/layout.tsx @@ -1,19 +1,14 @@ -import { SidebarProvider } from "@/components/ui/sidebar"; -import { TrustBridgeSidebar } from "@/components/layouts/sidebar/Sidebar"; import { Header } from "@/components/layouts/header/Header"; import { ScrollArea } from "@/components/ui/scroll-area"; const Layout = ({ children }: { children: React.ReactNode }) => { return ( - -
- -
-
- {children} -
+
+
+
+ {children}
- +
); }; diff --git a/src/app/dashboard/loans/page.tsx b/src/app/dashboard/loans/page.tsx deleted file mode 100644 index 106f9847..00000000 --- a/src/app/dashboard/loans/page.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { Loans } from "@/components/modules/escrows/ui/pages/dashboard"; - -export default function Page() { - return ; -} diff --git a/src/app/dashboard/marketplace/page.tsx b/src/app/dashboard/marketplace/page.tsx deleted file mode 100644 index b24f210c..00000000 --- a/src/app/dashboard/marketplace/page.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { MarketplacePage } from "@/components/modules/marketplace/ui/pages/MarketplacePage"; - -export default function Page() { - return ; -} diff --git a/src/app/dashboard/profile/page.tsx b/src/app/dashboard/profile/page.tsx index af499e34..4e977d3d 100644 --- a/src/app/dashboard/profile/page.tsx +++ b/src/app/dashboard/profile/page.tsx @@ -1,8 +1,8 @@ "use client"; -import { UserProfileForm } from "@/components/modules/profile/ui/UserProfileForm"; import { useWalletContext } from "@/providers/wallet.provider"; import { Card } from "@/components/ui/card"; +import UserProfileForm from "@/components/modules/profile/ui/UserProfileForm"; export default function SettingsPage() { const { walletAddress } = useWalletContext(); diff --git a/src/app/maintenance/page.tsx b/src/app/maintenance/page.tsx deleted file mode 100644 index 064cb94f..00000000 --- a/src/app/maintenance/page.tsx +++ /dev/null @@ -1,23 +0,0 @@ -"use client"; - -import { Bounded } from "@/components/layouts/Bounded"; -import CountdownTimer from "@/components/modules/maintenance/ui/CountdownTimer"; - -const Maintenance: React.FC = () => { - return ( - -
-

- Site Under Maintenance -

-

- We are making improvements to our platform to provide you with better - service. -

- -
-
- ); -}; - -export default Maintenance; diff --git a/src/app/page.tsx b/src/app/page.tsx index 202a0164..1f0a0bdc 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,7 +1,6 @@ "use client"; import HomePage from "@/components/modules/auth/ui/pages/Home"; -import { GradientBackground } from "@/components/modules/dashboard/ui/pages/background/GradientBackground"; import { useRouter } from "next/navigation"; import { useEffect } from "react"; import { useWalletContext } from "@/providers/wallet.provider"; @@ -18,9 +17,9 @@ export default function Page() { }, [walletAddress, router]); return ( - + <> - + ); } diff --git a/src/components/layouts/Bounded.tsx b/src/components/layouts/Bounded.tsx deleted file mode 100644 index 1c37c6af..00000000 --- a/src/components/layouts/Bounded.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import { ReactNode } from "react"; - -type BoundedProps = { - children: ReactNode; - center?: boolean; - className?: string; -}; - -export const Bounded = ({ children, center, className }: BoundedProps) => { - return ( -
- {children} -
- ); -}; diff --git a/src/components/layouts/header/Header.tsx b/src/components/layouts/header/Header.tsx index 6c636306..2fff5d40 100644 --- a/src/components/layouts/header/Header.tsx +++ b/src/components/layouts/header/Header.tsx @@ -3,51 +3,127 @@ import { useWallet } from "@/components/modules/auth/hooks/wallet.hook"; import { useWalletContext } from "@/providers/wallet.provider"; import { Button } from "@/components/ui/button"; -import { LogIn, LogOut, Wallet } from "lucide-react"; -import { SidebarTrigger } from "@/components/ui/sidebar"; +import { + LogIn, + LogOut, + Wallet, + FlaskConical, + Menu, + MessageSquare, + User, +} from "lucide-react"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuTrigger, +} from "@/components/ui/dropdown-menu"; +import Link from "next/link"; export function Header() { const { walletAddress } = useWalletContext(); const { handleConnect, handleDisconnect } = useWallet(); const truncateAddress = (address: string) => { + if (!address) return ""; return `${address.slice(0, 6)}...${address.slice(-4)}`; }; return ( -
- -
-
- {walletAddress ? ( - <> -
- - - {truncateAddress(walletAddress)} - -
+
+
+
+ + + TrustBridge + + +
+ +
+
+ {walletAddress ? ( + <> +
+ + + {truncateAddress(walletAddress)} + +
+ + + ) : ( - - ) : ( - - )} + )} +
+ +
+ + + + + + + + + Chat + + + + + + Profile + + + + +
diff --git a/src/components/layouts/header/HeaderHome.tsx b/src/components/layouts/header/HeaderHome.tsx index 47f92f89..0f84b676 100644 --- a/src/components/layouts/header/HeaderHome.tsx +++ b/src/components/layouts/header/HeaderHome.tsx @@ -1,20 +1,71 @@ "use client"; -import React from "react"; import Link from "next/link"; +import { Button } from "@/components/ui/button"; +import { FlaskConical, Wallet, Menu, LogIn, LogOut } from "lucide-react"; +import { useWallet } from "@/components/modules/auth/hooks/wallet.hook"; +import { useWalletContext } from "@/providers/wallet.provider"; + +export default function AppHeader() { + const { walletAddress } = useWalletContext(); + const { handleConnect, handleDisconnect } = useWallet(); + + const truncateAddress = (address: string) => { + return `${address.slice(0, 6)}...${address.slice(-4)}`; + }; -const HeaderHome: React.FC = () => { return ( -
-
- - - +
+
+
+ + + TrustBridge + +
+ +
+
+ {walletAddress ? ( + <> +
+ + + {truncateAddress(walletAddress)} + +
+ + + ) : ( + + )} +
+ +
); -}; - -export default HeaderHome; +} diff --git a/src/components/layouts/header/HeaderMaintenace.tsx b/src/components/layouts/header/HeaderMaintenace.tsx deleted file mode 100644 index 1fde6fbc..00000000 --- a/src/components/layouts/header/HeaderMaintenace.tsx +++ /dev/null @@ -1,14 +0,0 @@ -"use client"; - -import Image from "next/image"; - -const HeaderMaintenace = () => { - return ( -
- Trustless Work -
-
- ); -}; - -export default HeaderMaintenace; diff --git a/src/components/layouts/sidebar/hooks/useSidebar.hook.tsx b/src/components/layouts/sidebar/hooks/useSidebar.hook.tsx index b9aaf899..1e1df160 100644 --- a/src/components/layouts/sidebar/hooks/useSidebar.hook.tsx +++ b/src/components/layouts/sidebar/hooks/useSidebar.hook.tsx @@ -4,7 +4,6 @@ import { useState } from "react"; import { usePathname } from "next/navigation"; import { LayoutDashboard, - CreditCard, MessageSquare, Settings, ShoppingCart, @@ -54,12 +53,6 @@ export function useTrustBridgeSidebar() { { section: "Financial", items: [ - { - href: "/dashboard/loans", - icon: , - label: "Loans", - active: pathname.startsWith("/dashboard/loans"), - }, { href: "/dashboard/marketplace", icon: , diff --git a/src/components/middleware.ts b/src/components/middleware.ts deleted file mode 100644 index d599e453..00000000 --- a/src/components/middleware.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { NextRequest, NextResponse } from "next/server"; - -export function middleware(request: NextRequest) { - const maintenanceMode = process.env.NEXT_PUBLIC_MAINTENANCE_MODE === "true"; - - // Maintenance mode activated - if ( - maintenanceMode && - request.nextUrl.pathname !== "/maintenance" && - !request.nextUrl.pathname.startsWith("/_next") && - !request.nextUrl.pathname.startsWith("/static") - ) { - return NextResponse.redirect(new URL("/maintenance", request.url)); - } - - // Maintenance mode deactivated - if (!maintenanceMode && request.nextUrl.pathname === "/maintenance") { - return NextResponse.redirect(new URL("/", request.url)); - } - - return NextResponse.next(); -} - -export const config = { - matcher: ["/", "/:path*"], -}; diff --git a/src/components/modules/about-us/hooks/useAbout.hook.ts b/src/components/modules/about-us/hooks/useAbout.hook.ts deleted file mode 100644 index fb10654f..00000000 --- a/src/components/modules/about-us/hooks/useAbout.hook.ts +++ /dev/null @@ -1,66 +0,0 @@ -"use client"; - -import { useEffect, useState } from "react"; - -// Types for About Us data -export interface TeamMember { - name: string; - role: string; -} - -export interface AboutData { - mission: string; - story: string; - team: TeamMember[]; - technology: string; -} - -// Mock API fetch function -async function fetchAboutData(): Promise { - return new Promise((resolve) => { - setTimeout(() => { - resolve({ - mission: - "To empower individuals and communities with direct financial access by removing traditional barriers, fees, and intermediaries through a trustless system.", - story: `TrustBridge was born in 2024 when a group of friends passionate about blockchain technologies came together with a common vision: to create a bridge of trust between capital and opportunity.\n\nBuilt on the Stellar blockchain, we chose this technology for its speed, low cost, and focus on financial inclusion, values that are at the core of our identity.`, - team: [ - { - name: "Josué Brenes", - role: "CEO & FullStack Developer", - }, - { - name: "Yuliana Gonzáles", - role: "BackEnd Developer", - }, - { - name: "Daniel Coto", - role: "FrontEnd Developer", - }, - ], - technology: - "We use the Stellar blockchain to provide fast, secure, and low-cost transactions. Our platform is designed to be accessible to both experienced cryptocurrency users and those new to this technology.", - }); - }, 800); - }); -} - -export function useAboutData() { - const [data, setData] = useState(null); - const [loading, setLoading] = useState(true); - const [error, setError] = useState(null); - - useEffect(() => { - fetchAboutData() - .then((res) => { - setData(res); - setLoading(false); - }) - .catch((error) => { - console.error("Failed to fetch about data:", error); - setError("Failed to load about data"); - setLoading(false); - }); - }, []); - - return { data, loading, error }; -} diff --git a/src/components/modules/about-us/ui/pages/AboutUs.tsx b/src/components/modules/about-us/ui/pages/AboutUs.tsx deleted file mode 100644 index 4c419f69..00000000 --- a/src/components/modules/about-us/ui/pages/AboutUs.tsx +++ /dev/null @@ -1,81 +0,0 @@ -"use client"; -import Link from "next/link"; -import { TeamMember, useAboutData } from "../../hooks/useAbout.hook"; - -export default function AboutPage() { - const { data, loading, error } = useAboutData(); - - return ( -
-
- - ← Back to Home - -

About Us

- - {loading && ( -
- Loading... -
- )} - - {error && ( -
{error}
- )} - - {data && ( - <> -
-

- Our Mission -

-

{data.mission}

-
- -
-

- Our Story -

-

- {data.story} -

-
- -
-

- Our Team -

-
- {data.team.map((member: TeamMember) => ( -
-
- - {member.name} - - - {member.role} - -
- ))} -
-
- -
-

- Blockchain Technology -

-

{data.technology}

-
- - )} -
-
- ); -} diff --git a/src/components/modules/auth/ui/pages/Home.tsx b/src/components/modules/auth/ui/pages/Home.tsx index 3835e7f8..93d4163c 100644 --- a/src/components/modules/auth/ui/pages/Home.tsx +++ b/src/components/modules/auth/ui/pages/Home.tsx @@ -1,111 +1,57 @@ "use client"; -import { useWallet } from "@/components/modules/auth/hooks/wallet.hook"; -import { useWalletContext } from "@/providers/wallet.provider"; -import { useEffect } from "react"; -import { ArrowRight, Wallet, LogIn, LogOut } from "lucide-react"; +import { ArrowRight } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Badge } from "@/components/ui/badge"; import Link from "next/link"; export default function HomePage() { - const { walletAddress } = useWalletContext(); - const { handleConnect, handleDisconnect } = useWallet(); - - useEffect(() => { - document.body.style.overflow = "hidden"; - return () => { - document.body.style.overflow = "auto"; - }; - }, []); - - const truncateAddress = (address: string) => { - return `${address.slice(0, 6)}...${address.slice(-4)}`; - }; - return ( -
-
-
-
-
- - Powered by Stellar Blockchain - - -

- - TrustBridge - - Decentralized Microloans -

- -

- Connecting lenders and borrowers through secure, transparent, - and efficient blockchain technology. Build trust, create - opportunity. -

-
- - {/* Mobile wallet address display */} - {walletAddress && ( -
- - - {truncateAddress(walletAddress)} - +
+
+
+
+
+
+ + Powered by Stellar Blockchain + + +

+ + TrustBridge + + + Decentralized Microloans + +

+ +

+ Connecting lenders and borrowers through secure, transparent, + and efficient blockchain technology. Build trust, create + opportunity. +

- )} - -
- {walletAddress ? ( - <> - {/* Desktop wallet address display */} -
- - - {truncateAddress(walletAddress)} - -
+
+ - - ) : ( - - )} - - - - + +
-
-
+
+
); } diff --git a/src/components/modules/chat/hooks/chat.hook.ts b/src/components/modules/chat/hooks/chat.hook.ts deleted file mode 100644 index 84552ed0..00000000 --- a/src/components/modules/chat/hooks/chat.hook.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { useEffect, useState } from "react"; -import { fetchMessages, sendMessage } from "../lib/chat"; - -type ChatMessage = { - id: string; - from: string; - to: string; - content: string; - timestamp: number; - status?: string; -}; - -export const useChat = (walletA: string, walletB: string) => { - const [messages, setMessages] = useState([]); - - const loadMessages = async () => { - const msgs = await fetchMessages(walletA, walletB); - setMessages(msgs); - }; - - const handleSend = async (message: string) => { - await sendMessage(walletA, walletB, message); - await loadMessages(); - }; - - useEffect(() => { - loadMessages(); - }, [walletA, walletB]); - - return { messages, handleSend }; -}; diff --git a/src/components/modules/chat/hooks/use-all-chats.hook.ts b/src/components/modules/chat/hooks/use-all-chats.hook.ts deleted file mode 100644 index f29b0ffc..00000000 --- a/src/components/modules/chat/hooks/use-all-chats.hook.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { useEffect, useState } from "react"; -import { onSnapshot, query, collection, where } from "firebase/firestore"; -import { db } from "@/lib/firebase"; -import { ChatMessage, ChatWithMessages } from "@/@types/chat.entity"; - -export const useAllChats = (walletAddress: string) => { - const [chats, setChats] = useState([]); - const [loading, setLoading] = useState(true); - const [error, setError] = useState(null); - - useEffect(() => { - if (!walletAddress) { - setLoading(false); - return; - } - - let unsubscribe: (() => void) | undefined; - - const setupChats = async () => { - try { - setLoading(true); - setError(null); - - // Set up real-time listener for all chats - const chatsRef = collection(db, "chats"); - const q = query( - chatsRef, - where("participants", "array-contains", walletAddress), - ); - - unsubscribe = onSnapshot( - q, - async (snapshot) => { - const updatedChats = await Promise.all( - snapshot.docs.map(async (doc) => { - const chatData = doc.data() as Omit< - ChatWithMessages, - "id" | "messages" - >; - const messages: ChatMessage[] = []; - - return { - id: doc.id, - ...chatData, - messages, - } as ChatWithMessages; - }), - ); - - setChats(updatedChats); - setLoading(false); - }, - (err) => { - console.error("Error listening to chats:", err); - setError("Error listening to chats"); - setLoading(false); - }, - ); - } catch (err) { - console.error("Error setting up chats:", err); - setError("Error setting up chats"); - setLoading(false); - } - }; - - setupChats(); - - return () => { - if (unsubscribe) unsubscribe(); - }; - }, [walletAddress]); - - return { chats, loading, error }; -}; diff --git a/src/components/modules/chat/hooks/wallet-chat.hook.ts b/src/components/modules/chat/hooks/wallet-chat.hook.ts deleted file mode 100644 index 5dbbd167..00000000 --- a/src/components/modules/chat/hooks/wallet-chat.hook.ts +++ /dev/null @@ -1,74 +0,0 @@ -"use client"; - -import { useEffect, useState } from "react"; -import { listenToMessages, sendMessage } from "../lib/chat"; - -type ChatMessage = { - id: string; - from: string; - to: string; - content: string; - timestamp: number; - status?: "sent" | "delivered" | "read"; -}; - -export const useWalletChat = (walletA: string, walletB: string) => { - const [messages, setMessages] = useState([]); - const [loading, setLoading] = useState(true); - const [error, setError] = useState(null); - - useEffect(() => { - if ( - !walletA || - !walletB || - walletA === "[wallet]" || - walletB === "[wallet]" - ) { - setLoading(false); - return; - } - - let unsubscribe: (() => void) | undefined; - - const setupChat = async () => { - try { - setLoading(true); - setError(null); - - unsubscribe = await listenToMessages( - walletA, - walletB, - (newMessages: ChatMessage[]) => { - setMessages(newMessages); - setLoading(false); - }, - ); - } catch (err) { - console.error("Error setting up chat:", err); - setError("Error setting up chat"); - setLoading(false); - } - }; - - setupChat(); - - return () => { - if (unsubscribe) unsubscribe(); - }; - }, [walletA, walletB]); - - const send = async (content: string) => { - try { - setError(null); - await sendMessage(walletA, walletB, content); - // No necesitamos actualizar el estado local aquí porque listenToMessages - // se encargará de actualizar los mensajes en tiempo real - } catch (err) { - console.error("Error sending message:", err); - setError("Error sending message"); - throw err; - } - }; - - return { messages, sendMessage: send, loading, error }; -}; diff --git a/src/components/modules/chat/lib/chat.ts b/src/components/modules/chat/lib/chat.ts deleted file mode 100644 index dafe4762..00000000 --- a/src/components/modules/chat/lib/chat.ts +++ /dev/null @@ -1,280 +0,0 @@ -import { UserChatData } from "@/@types/user.entity"; -import { db } from "@/lib/firebase"; -import { - collection, - addDoc, - query, - orderBy, - onSnapshot, - getDocs, - doc, - setDoc, - getDoc, - Unsubscribe, - where, - serverTimestamp, - Timestamp, -} from "firebase/firestore"; - -export type ChatMessage = { - id: string; - from: string; - to: string; - content: string; - timestamp: number; - status?: "sent" | "delivered" | "read"; -}; - -export const getChatId = (walletA: string, walletB: string) => { - if ( - !walletA || - !walletB || - walletA === "[wallet]" || - walletB === "[wallet]" - ) { - throw new Error("Invalid wallet addresses"); - } - const sortedWallets = [walletA, walletB].sort(); - return sortedWallets.join("_"); -}; - -export const initializeChat = async (walletA: string, walletB: string) => { - if ( - !walletA || - !walletB || - walletA === "[wallet]" || - walletB === "[wallet]" - ) { - throw new Error("Invalid wallet addresses"); - } - - const chatId = getChatId(walletA, walletB); - const chatDocRef = doc(db, "chats", chatId); - - try { - const chatDoc = await getDoc(chatDocRef); - - if (!chatDoc.exists()) { - await setDoc(chatDocRef, { - participants: [walletA, walletB].sort(), - createdAt: serverTimestamp(), - lastMessage: null, - lastMessageTime: null, - }); - } - - return chatId; - } catch (error) { - console.error("Error initializing chat:", error); - throw error; - } -}; - -export const sendMessage = async ( - from: string, - to: string, - content: string, -) => { - if (!from || !to || from === "[wallet]" || to === "[wallet]") { - throw new Error("Invalid wallet addresses"); - } - - try { - const chatId = await initializeChat(from, to); - const messagesCol = collection(db, "chats", chatId, "messages"); - - const messageData = { - from, - to, - content, - timestamp: serverTimestamp(), - status: "sent", - }; - - await addDoc(messagesCol, messageData); - - const chatDocRef = doc(db, "chats", chatId); - await setDoc( - chatDocRef, - { - lastMessage: content, - lastMessageTime: serverTimestamp(), - }, - { merge: true }, - ); - - return messageData; - } catch (error) { - console.error("Error sending message:", error); - throw error; - } -}; - -const convertTimestamp = (timestamp: Timestamp | Date | number): number => { - if (timestamp instanceof Timestamp) { - return timestamp.toMillis(); - } - if (timestamp instanceof Date) { - return timestamp.getTime(); - } - if (typeof timestamp === "number") { - return timestamp; - } - return Date.now(); -}; - -export const fetchMessages = async ( - walletA: string, - walletB: string, -): Promise => { - if ( - !walletA || - !walletB || - walletA === "[wallet]" || - walletB === "[wallet]" - ) { - return []; - } - - const chatId = getChatId(walletA, walletB); - const chatDocRef = doc(db, "chats", chatId); - const chatDoc = await getDoc(chatDocRef); - - if (!chatDoc.exists()) { - return []; - } - - const messagesCol = collection(db, "chats", chatId, "messages"); - const q = query(messagesCol, orderBy("timestamp", "asc")); - const snapshot = await getDocs(q); - - return snapshot.docs.map((doc) => { - const data = doc.data(); - return { - id: doc.id, - from: data.from, - to: data.to, - content: data.content, - timestamp: convertTimestamp(data.timestamp), - status: data.status || "sent", - }; - }); -}; - -export const listenToMessages = async ( - walletA: string, - walletB: string, - callback: (messages: ChatMessage[]) => void, -): Promise => { - if ( - !walletA || - !walletB || - walletA === "[wallet]" || - walletB === "[wallet]" - ) { - callback([]); - return () => {}; - } - - const chatId = getChatId(walletA, walletB); - const chatDocRef = doc(db, "chats", chatId); - const chatDoc = await getDoc(chatDocRef); - - if (!chatDoc.exists()) { - await setDoc(chatDocRef, { - participants: [walletA, walletB].sort(), - createdAt: serverTimestamp(), - lastMessage: null, - lastMessageTime: null, - }); - } - - const messagesCol = collection(db, "chats", chatId, "messages"); - const q = query(messagesCol, orderBy("timestamp", "asc")); - - const unsubscribe = onSnapshot( - q, - (snapshot) => { - const msgs: ChatMessage[] = snapshot.docs.map((doc) => { - const data = doc.data(); - return { - id: doc.id, - from: data.from, - to: data.to, - content: data.content, - timestamp: convertTimestamp(data.timestamp), - status: data.status || "sent", - }; - }); - callback(msgs); - }, - (error) => { - console.error("Error listening to messages:", error); - }, - ); - - return unsubscribe; -}; - -export const getUserChats = async (walletAddress: string) => { - if (!walletAddress || walletAddress === "[wallet]") { - return []; - } - - const chatsRef = collection(db, "chats"); - const q = query( - chatsRef, - where("participants", "array-contains", walletAddress), - ); - - const snapshot = await getDocs(q); - return snapshot.docs.map((doc) => { - const data = doc.data(); - return { - id: doc.id, - participants: data.participants, - createdAt: convertTimestamp(data.createdAt), - lastMessage: data.lastMessage, - lastMessageTime: convertTimestamp(data.lastMessageTime), - }; - }); -}; - -export const getUserData = async ( - walletAddress: string, -): Promise => { - if (!walletAddress || walletAddress === "[wallet]") { - return { - firstName: "Unknown", - lastName: "", - walletAddress: "", - }; - } - - try { - const userDocRef = doc(db, "users", walletAddress); - const userDoc = await getDoc(userDocRef); - - if (userDoc.exists()) { - const data = userDoc.data(); - return { - firstName: data.firstName || "Unknown", - lastName: data.lastName || "", - walletAddress: data.walletAddress || walletAddress, - }; - } - - return { - firstName: "Unknown", - lastName: "", - walletAddress, - }; - } catch (error) { - console.error("Error getting user data:", error); - return { - firstName: "Unknown", - lastName: "", - walletAddress, - }; - } -}; diff --git a/src/components/modules/chat/ui/components/chat-list.tsx b/src/components/modules/chat/ui/components/chat-list.tsx deleted file mode 100644 index 0053b1e0..00000000 --- a/src/components/modules/chat/ui/components/chat-list.tsx +++ /dev/null @@ -1,130 +0,0 @@ -import { useRouter, useParams } from "next/navigation"; -import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; -import { Card } from "@/components/ui/card"; -import { ScrollArea } from "@/components/ui/scroll-area"; -import { ChatWithMessages } from "@/@types/chat.entity"; -import { formatAddress } from "@/lib/utils"; -import { cn } from "@/lib/utils"; -import { useEffect, useState } from "react"; -import { getUserData } from "../../lib/chat"; -import { UserChatData } from "@/@types/user.entity"; - -interface ChatListProps { - chats: ChatWithMessages[]; - currentWallet: string; - loading: boolean; -} - -export function ChatList({ chats, currentWallet, loading }: ChatListProps) { - const router = useRouter(); - const { wallet: activeWallet } = useParams(); - const [userData, setUserData] = useState>({}); - - useEffect(() => { - const fetchUserData = async () => { - const newUserData: Record = {}; - - for (const chat of chats) { - const otherParticipant = chat.participants.find( - (p) => p !== currentWallet, - ); - - if (otherParticipant && !userData[otherParticipant]) { - const data = await getUserData(otherParticipant); - newUserData[otherParticipant] = data; - } - } - - setUserData((prev) => ({ ...prev, ...newUserData })); - }; - - if (chats.length > 0) { - fetchUserData(); - } - }, [chats, currentWallet]); - - if (loading) { - return ( -
-
-
- ); - } - - if (chats.length === 0) { - return ( -
-

- No chats yet. Start a new conversation by entering a wallet address - above. -

-
- ); - } - - return ( - -
- {chats.map((chat) => { - const otherParticipant = chat.participants.find( - (p) => p !== currentWallet, - ); - const lastMessageTime = chat.lastMessageTime - ? new Date(chat.lastMessageTime).toLocaleTimeString([], { - hour: "2-digit", - minute: "2-digit", - }) - : null; - const isActive = otherParticipant === activeWallet; - const user = userData[otherParticipant || ""]; - - return ( - router.push(`/dashboard/chat/${otherParticipant}`)} - > -
- - - - {user?.firstName?.slice(0, 2).toUpperCase() || - otherParticipant?.slice(0, 2).toUpperCase()} - {user?.lastName?.slice(0, 2).toUpperCase() || - otherParticipant?.slice(0, 2).toUpperCase()} - - -
-
-
-

- {user?.firstName} {user?.lastName} -

-

- {formatAddress(otherParticipant || "")} -

-
- {lastMessageTime && ( - {lastMessageTime} - )} -
-

- {chat.lastMessage || "No messages yet"} -

-
-
-
- ); - })} -
-
- ); -} diff --git a/src/components/modules/chat/ui/components/message-bubble.tsx b/src/components/modules/chat/ui/components/message-bubble.tsx deleted file mode 100644 index 7d61d761..00000000 --- a/src/components/modules/chat/ui/components/message-bubble.tsx +++ /dev/null @@ -1,70 +0,0 @@ -"use client"; - -import { cn } from "@/lib/utils"; -import { Check, CheckCheck, Clock } from "lucide-react"; - -interface Message { - id: string; - content: string; - sender: "user" | "other"; - timestamp: string; - status: "sent" | "delivered" | "read"; -} - -interface MessageBubbleProps { - message: Message; -} - -export function MessageBubble({ message }: MessageBubbleProps) { - const isUser = message.sender === "user"; - - const getStatusIcon = () => { - switch (message.status) { - case "sent": - return ; - case "delivered": - return ; - case "read": - return ; - default: - return ; - } - }; - - return ( -
-
-
- {message.content} -
-
- {message.timestamp} - {isUser && ( - - {getStatusIcon()} - - )} -
-
-
- ); -} diff --git a/src/components/modules/chat/ui/dialogs/ChatDialog.tsx b/src/components/modules/chat/ui/dialogs/ChatDialog.tsx deleted file mode 100644 index 5a29160c..00000000 --- a/src/components/modules/chat/ui/dialogs/ChatDialog.tsx +++ /dev/null @@ -1,325 +0,0 @@ -"use client"; - -import { useState, useRef, useEffect } from "react"; -import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; -import { Button } from "@/components/ui/button"; -import { Input } from "@/components/ui/input"; -import { ScrollArea } from "@/components/ui/scroll-area"; -import { Card, CardContent, CardHeader } from "@/components/ui/card"; -import { Badge } from "@/components/ui/badge"; -import { Send, Menu, ArrowLeft, Copy, Check } from "lucide-react"; -import { MessageBubble } from "../components/message-bubble"; -import { useWalletContext } from "@/providers/wallet.provider"; -import { useParams, useRouter } from "next/navigation"; -import { useWalletChat } from "../../hooks/wallet-chat.hook"; -import { useAllChats } from "../../hooks/use-all-chats.hook"; -import { ChatList } from "../components/chat-list"; -import { toast } from "sonner"; -import { getUserData } from "../../lib/chat"; -import { UserChatData } from "@/@types/user.entity"; - -export function ChatDialog() { - const { walletAddress } = useWalletContext(); - const { wallet: otherWallet } = useParams(); - const [message, setMessage] = useState(""); - const [targetWallet, setTargetWallet] = useState(""); - const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false); - const [isSending, setIsSending] = useState(false); - const [copiedAddress, setCopiedAddress] = useState(false); - const [userData, setUserData] = useState(null); - const messageEndRef = useRef(null); - const inputRef = useRef(null); - const router = useRouter(); - - const { chats, loading: chatsLoading } = useAllChats(walletAddress!); - const { - messages, - sendMessage, - loading: messagesLoading, - error, - } = useWalletChat(walletAddress!, otherWallet as string); - - useEffect(() => { - if (error) { - toast.error(error); - } - }, [error]); - - useEffect(() => { - const fetchUserData = async () => { - if (otherWallet) { - const data = await getUserData(otherWallet as string); - setUserData(data); - } - }; - - fetchUserData(); - }, [otherWallet]); - - const handleSendMessage = async () => { - if (!message.trim() || isSending) return; - - try { - setIsSending(true); - await sendMessage(message); - setMessage(""); - inputRef.current?.focus(); - } catch { - toast.error("Failed to send message"); - } finally { - setIsSending(false); - } - }; - - const handleStartChat = () => { - if (!targetWallet.trim()) return; - router.push(`/dashboard/chat/${targetWallet}`); - setTargetWallet(""); - }; - - const copyAddress = async (address: string) => { - try { - await navigator.clipboard.writeText(address); - setCopiedAddress(true); - toast.success("Address copied to clipboard"); - setTimeout(() => setCopiedAddress(false), 2000); - } catch { - toast.error("Failed to copy address"); - } - }; - - const formatAddress = (address: string) => { - if (!address) return ""; - return `${address.slice(0, 6)}...${address.slice(-4)}`; - }; - - if (!walletAddress) { - return ( -
- -

- Wallet not connected. -

-
-
- ); - } - - const loading = chatsLoading || messagesLoading; - - return ( -
- {/* Mobile Menu Button */} - - - {/* Chat Window */} -
- {/* Chat List Sidebar */} -
- - -
- setTargetWallet(e.target.value)} - placeholder="Enter wallet address to start new chat" - className="flex-1" - /> - -
-
-
- - -
- - {/* Main Chat Content */} -
- {!otherWallet ? ( -
- -

- Select a chat or start a new conversation. -

-
-
- ) : ( - - {/* Header */} - -
- - -
- - - - {userData?.firstName?.slice(0, 2).toUpperCase() || - (otherWallet as string).slice(0, 2).toUpperCase()} - {userData?.lastName?.slice(0, 2).toUpperCase()} - - -
-
- -
-
-

- {userData?.firstName || - formatAddress(otherWallet as string)}{" "} - {userData?.lastName} -

- -
-
- - Wallet Chat - - - {formatAddress(otherWallet as string)} - - - {messages.length} messages - -
-
-
-
- - {/* Messages */} - - -
- {loading && messages.length === 0 ? ( -
-
-
- ) : messages.length === 0 ? ( -
-
- -
-

- Start the conversation -

-

- Send your first message to{" "} - {userData?.firstName || - formatAddress(otherWallet as string)}{" "} - {userData?.lastName} - to begin chatting. -

-
- ) : ( - messages.map((msg) => ( - - )) - )} -
-
- - - - {/* Input */} -
-
-
- setMessage(e.target.value)} - onKeyDown={(e) => { - if (e.key === "Enter" && !e.shiftKey) { - e.preventDefault(); - handleSendMessage(); - } - }} - disabled={isSending} - className="pr-12 bg-background border-border focus:ring-emerald-600 focus:border-emerald-600" - /> - {message.trim() && ( -
- {message.length}/500 -
- )} -
- -
-
- Press Enter to send, Shift + Enter for new line - {error && ( - Failed to send message - )} -
-
- - )} -
-
-
- ); -} diff --git a/src/components/modules/dashboard/hooks/useDashboard.hook.ts b/src/components/modules/dashboard/hooks/useDashboard.hook.ts index 75e2879e..13060ed8 100644 --- a/src/components/modules/dashboard/hooks/useDashboard.hook.ts +++ b/src/components/modules/dashboard/hooks/useDashboard.hook.ts @@ -3,7 +3,7 @@ import { useState, useEffect } from "react"; import { useWalletContext } from "@/providers/wallet.provider"; import { useUserContext } from "@/providers/user.provider"; -import { getUserChats } from "@/components/modules/chat/lib/chat"; + import { UserProfile } from "@/@types/user.entity"; interface DashboardData { @@ -28,16 +28,6 @@ export function useDashboard(): DashboardData { setChatsLoading(false); return; } - - try { - const chats = await getUserChats(address); - setChatCount(chats.length); - } catch (err) { - console.error("Error loading chats:", err); - setChatCount(0); - } finally { - setChatsLoading(false); - } }; loadChats(); diff --git a/src/components/modules/dashboard/ui/pages/DashboardPage.tsx b/src/components/modules/dashboard/ui/pages/DashboardPage.tsx index 51c57241..fe028ce5 100644 --- a/src/components/modules/dashboard/ui/pages/DashboardPage.tsx +++ b/src/components/modules/dashboard/ui/pages/DashboardPage.tsx @@ -1,307 +1,200 @@ "use client"; -import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; +import { + Card, + CardContent, + CardFooter, + CardHeader, + CardTitle, +} from "@/components/ui/card"; import { Skeleton } from "@/components/ui/skeleton"; -import { Badge } from "@/components/ui/badge"; import { + Accordion, + AccordionContent, + AccordionItem, +} from "@/components/ui/accordion"; +import { + AlertCircle, Wallet, User, - MessageCircle, - MapPin, - Phone, + ArrowRight, + FlaskConical, CreditCard, Shield, - Activity, - CheckCircle2, + MapPin, + Phone, } from "lucide-react"; import { useDashboard } from "../../hooks/useDashboard.hook"; +import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"; export function DashboardOverview() { - const { loading, profile, address, walletName, chatCount } = useDashboard(); - - if (loading) { - return ( -
- - -
- {[...Array(3)].map((_, i) => ( - - - - - - - - - - - ))} -
-
- ); - } + const { loading, profile, address, walletName } = useDashboard(); const formatAddress = (addr: string) => { if (!addr) return "Not connected"; return `${addr.slice(0, 6)}...${addr.slice(-4)}`; }; - return ( -
- {/* Header */} -
-
-
-

- Dashboard Overview -

-
-

- Your account summary, wallet information, and activity overview. -

-
- - {/* Main Cards Grid */} -
- {/* Wallet Information Card */} - -
- - -
- -
- Wallet Information -
-
- -
-
- - - Address - -
- {address ? ( - <> - - - Connected - - - ) : ( - - Disconnected - - )} -
-
- -
-

- {formatAddress(address || "")} -

-
- - {walletName && ( -
- - - Wallet Type - - {walletName} -
- )} + if (loading) { + return ( +
+ + + + +
+ +
- -
- - {/* User Profile Card */} - -
- - -
- -
- User Profile -
-
- - {profile ? ( -
-
- - Full Name - - - {profile.firstName} {profile.lastName} - -
- -
- - - Country - - {profile.country} -
- -
- - - Phone - - {profile.phoneNumber} -
- -
- - - Profile Complete - -
-
- ) : ( -
-
- -
-

- No profile data available -

- - Setup Required - -
- )} -
- - - {/* Activity Summary Card */} - -
- - -
- -
- Activity Summary -
- -
-
- - - Total Chats - -
- - {chatCount} - -
-
- -
-
- Chat Activity - - Active - -
-

- You have participated in {chatCount} conversation - {chatCount !== 1 ? "s" : ""} on the platform. -

-
- -
-
-

- {chatCount > 0 ? "100%" : "0%"} -

-

Engagement

-
-
-

- {chatCount > 5 ? "High" : chatCount > 0 ? "Medium" : "Low"} -

-

- Activity Level -

-
-
-
+ + {" "} + {/* Adjusted grid to 2 cols */} + + + + +
+ ); + } - {/* Additional Info Section */} - {(profile || address) && ( - - - Account Status - - -
-
-
-
-

Wallet Connection

-

- {address ? "Connected and verified" : "Not connected"} -

-
-
+ return ( +
+ {!address && ( + + + Please connect your wallet + + The wallet address does not exist on the network. Please fund your + account! + + + )} -
-
-
-

Profile Setup

-

- {profile - ? "Complete profile information" - : "Profile setup required"} -

+ + +
+ + + Account Overview + +
+
+ + +
+
+

Wallet Status

+

+ {address ? "Connected" : "Disconnected"} +

+
+
+

Profile Status

+

+ {profile ? "Complete" : "Incomplete"} +

+
+
+ + + + + {/* Wallet Details */} +
+

+ Wallet + Information +

+
+
+ + Address + + + {formatAddress(address || "")} + +
+ {walletName && ( +
+ + Wallet Type + + + {walletName} + +
+ )} +
-
- -
-
0 ? "bg-emerald-800" : "bg-gray-400"}`} - /> -
-

Platform Activity

-

- {chatCount > 0 ? "Active participant" : "New to platform"} -

+ {/* Profile Details */} +
+

+ User Profile +

+ {profile ? ( +
+
+ Full Name + + {profile.firstName} {profile.lastName} + +
+
+ + Country + + + {profile.country} + +
+
+ + Phone + + + {profile.phoneNumber} + +
+
+ ) : ( +

+ No profile data available. Please complete your profile. +

+ )}
-
+ + + + + + +
+
+
- - - )} +
+ +
+
+ + Dashboard + +
+
); } diff --git a/src/components/modules/dashboard/ui/pages/background/GradientBackground.tsx b/src/components/modules/dashboard/ui/pages/background/GradientBackground.tsx deleted file mode 100644 index 9fda515f..00000000 --- a/src/components/modules/dashboard/ui/pages/background/GradientBackground.tsx +++ /dev/null @@ -1,50 +0,0 @@ -"use client"; - -import { cn } from "@/lib/utils"; -import type { ReactNode } from "react"; - -interface GradientBackgroundProps { - children: ReactNode; - className?: string; - opacity?: number; - primaryColor?: string; - secondaryColor?: string; - primaryPosition?: string; - secondaryPosition?: string; - primarySize?: string; - secondarySize?: string; - primaryBlur?: string; - secondaryBlur?: string; -} - -export function GradientBackground({ - children, - className, - opacity = 30, - primaryColor = "bg-emerald-800", - secondaryColor = "bg-emerald-800", - primaryPosition = "-top-40 -right-40", - secondaryPosition = "top-1/2 -left-40", - primarySize = "w-80 h-80", - secondarySize = "w-80 h-80", - primaryBlur = "blur-3xl", - secondaryBlur = "blur-3xl", -}: GradientBackgroundProps) { - return ( -
-
-
-
-
- - {/* Content */} -
{children}
-
- ); -} diff --git a/src/components/modules/escrows/constants/initialize-steps.constant.ts b/src/components/modules/escrows/constants/initialize-steps.constant.ts deleted file mode 100644 index 74625df6..00000000 --- a/src/components/modules/escrows/constants/initialize-steps.constant.ts +++ /dev/null @@ -1,22 +0,0 @@ -export const steps = [ - { - id: "basic", - title: "Basic Information", - description: "Enter the basic details about your escrow", - }, - { - id: "financial", - title: "Financial Details", - description: "Set up the financial parameters of your escrow", - }, - { - id: "roles", - title: "Roles Configuration", - description: "Configure all the roles involved in the escrow", - }, - { - id: "milestones", - title: "Milestones Setup", - description: "Define the milestones for your escrow", - }, -]; diff --git a/src/components/modules/escrows/constants/trustline.constant.ts b/src/components/modules/escrows/constants/trustline.constant.ts deleted file mode 100644 index 82fe6dcb..00000000 --- a/src/components/modules/escrows/constants/trustline.constant.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * - * The allows the user to interact with some tokens, in this case, we're using USDC and EURC. But you can add more trustlines. - * - */ -export const trustlines = [ - { - name: "USDC", - address: "CBIELTK6YBZJU5UP2WWQEUCYKLPU6AUNZ2BQ4WWFEIE3USCIHMXQDAMA", - decimals: 10000000, - }, - { - name: "EURC", - address: "GB3Q6QDZYTHWT7E5PVS3W7FUT5GVAFC5KSZFFLPU25GO7VTC3NM2ZTVO", - decimals: 10000000, - }, - - // you can add more trustlines here -]; diff --git a/src/components/modules/escrows/hooks/change-milestone-flag-form.hook.ts b/src/components/modules/escrows/hooks/change-milestone-flag-form.hook.ts deleted file mode 100644 index 6dba1c46..00000000 --- a/src/components/modules/escrows/hooks/change-milestone-flag-form.hook.ts +++ /dev/null @@ -1,133 +0,0 @@ -import { useState } from "react"; -import { useForm } from "react-hook-form"; -import { zodResolver } from "@hookform/resolvers/zod"; -import { z } from "zod"; -import { formSchema } from "../schemas/change-milestone-flag-form.schema"; -import { toast } from "sonner"; -import { signTransaction } from "../../auth/helpers/stellar-wallet-kit.helper"; -import { useWalletContext } from "@/providers/wallet.provider"; -import { handleError } from "@/errors/utils/handle-errors"; -import { AxiosError } from "axios"; -import { WalletError } from "@/@types/errors.entity"; -import { - useChangeMilestoneApprovedFlag, - useSendTransaction, -} from "@trustless-work/escrow/hooks"; -import { - ChangeMilestoneApprovedFlagPayload, - Escrow, - EscrowRequestResponse, - Milestone, -} from "@trustless-work/escrow/types"; -import { useEscrowContext } from "@/providers/escrow.provider"; - -export const useChangeMilestoneFlagForm = () => { - const { escrow, setEscrow } = useEscrowContext(); - const [loading, setLoading] = useState(false); - const [response, setResponse] = useState(null); - const { walletAddress } = useWalletContext(); - const { changeMilestoneApprovedFlag } = useChangeMilestoneApprovedFlag(); - const { sendTransaction } = useSendTransaction(); - - // Default milestones if escrow is undefined - const milestones = escrow?.milestones || [ - { description: "Initial setup", status: "pending" }, - { description: "Development phase", status: "pending" }, - ]; - - const form = useForm>({ - resolver: zodResolver(formSchema), - defaultValues: { - contractId: escrow?.contractId || "CAZ6UQX7DEMO123", - milestoneIndex: "", - newFlag: true, - approver: escrow?.roles.approver || "GAPPROVER123456789", - }, - }); - - const onSubmit = async (payload: ChangeMilestoneApprovedFlagPayload) => { - setLoading(true); - setResponse(null); - - try { - /** - * API call by using the trustless work hooks - * @Note: - * - We need to pass the payload to the changeMilestoneApprovedFlag function - * - The result will be an unsigned transaction - */ - const { unsignedTransaction } = - await changeMilestoneApprovedFlag(payload); - - if (!unsignedTransaction) { - throw new Error( - "Unsigned transaction is missing from changeMilestoneApprovedFlag response.", - ); - } - - /** - * @Note: - * - We need to sign the transaction using your private key - * - The result will be a signed transaction - */ - const signedXdr = await signTransaction({ - unsignedTransaction, - address: walletAddress || "", - }); - - if (!signedXdr) { - throw new Error("Signed transaction is missing."); - } - - /** - * @Note: - * - We need to send the signed transaction to the API - * - The data will be an SendTransactionResponse - */ - const data = await sendTransaction({ - signedXdr, - returnEscrowDataIsRequired: false, - }); - - /** - * @Responses: - * data.status === "SUCCESS" - * - Escrow updated successfully - * - Set the escrow in the context - * - Show a success toast - * - * data.status == "ERROR" - * - Show an error toast - */ - if (data.status === "SUCCESS" && escrow) { - const escrowUpdated: Escrow = { - ...escrow, - milestones: escrow!.milestones.map((milestone: Milestone, index) => - index === Number(payload.milestoneIndex) - ? { ...milestone, approvedFlag: payload.newFlag } - : milestone, - ), - }; - - setEscrow(escrowUpdated); - - toast.success( - `Milestone index - ${payload.milestoneIndex} has been approved`, - ); - setResponse(data); - form.reset(); - } - } catch (error: unknown) { - const mappedError = handleError(error as AxiosError | WalletError); - console.error("Error:", mappedError.message); - - toast.error( - mappedError ? mappedError.message : "An unknown error occurred", - ); - } finally { - setLoading(false); - } - }; - - return { form, milestones, loading, response, onSubmit }; -}; diff --git a/src/components/modules/escrows/hooks/change-milestone-status-form.hook.ts b/src/components/modules/escrows/hooks/change-milestone-status-form.hook.ts deleted file mode 100644 index 99df133a..00000000 --- a/src/components/modules/escrows/hooks/change-milestone-status-form.hook.ts +++ /dev/null @@ -1,137 +0,0 @@ -import { useState } from "react"; -import { useForm } from "react-hook-form"; -import { zodResolver } from "@hookform/resolvers/zod"; -import { z } from "zod"; -import { formSchema } from "../schemas/change-milestone-status-form.schema"; -import { toast } from "sonner"; -import { useWalletContext } from "@/providers/wallet.provider"; -import { signTransaction } from "../../auth/helpers/stellar-wallet-kit.helper"; -import { handleError } from "@/errors/utils/handle-errors"; -import { AxiosError } from "axios"; -import { - useChangeMilestoneStatus, - useSendTransaction, -} from "@trustless-work/escrow/hooks"; -import { - ChangeMilestoneStatusPayload, - Escrow, - EscrowRequestResponse, - Milestone, -} from "@trustless-work/escrow/types"; -import { useEscrowContext } from "@/providers/escrow.provider"; -import { WalletError } from "@/@types/errors.entity"; - -export const useChangeMilestoneStatusForm = () => { - const { escrow } = useEscrowContext(); - const { setEscrow } = useEscrowContext(); - const [loading, setLoading] = useState(false); - const [response, setResponse] = useState(null); - const { walletAddress } = useWalletContext(); - const { changeMilestoneStatus } = useChangeMilestoneStatus(); - const { sendTransaction } = useSendTransaction(); - - const milestones = escrow?.milestones || [ - { description: "Initial setup", status: "pending" }, - { description: "Development phase", status: "pending" }, - ]; - - const form = useForm>({ - resolver: zodResolver(formSchema), - defaultValues: { - contractId: escrow?.contractId || "", - milestoneIndex: "", - newStatus: "", - evidence: "", - serviceProvider: escrow?.roles.serviceProvider || "", - }, - }); - - const onSubmit = async (payload: ChangeMilestoneStatusPayload) => { - setLoading(true); - setResponse(null); - - try { - /** - * API call by using the trustless work hooks - * @Note: - * - We need to pass the payload to the changeMilestoneStatus function - * - The result will be an unsigned transaction - */ - const { unsignedTransaction } = await changeMilestoneStatus(payload); - - if (!unsignedTransaction) { - throw new Error( - "Unsigned transaction is missing from changeMilestoneStatus response.", - ); - } - - /** - * @Note: - * - We need to sign the transaction using your private key - * - The result will be a signed transaction - */ - const signedXdr = await signTransaction({ - unsignedTransaction, - address: walletAddress || "", - }); - - if (!signedXdr) { - throw new Error("Signed transaction is missing."); - } - - /** - * @Note: - * - We need to send the signed transaction to the API - * - The data will be an SendTransactionResponse - */ - const data = await sendTransaction({ - signedXdr, - returnEscrowDataIsRequired: false, - }); - - /** - * @Responses: - * data.status === "SUCCESS" - * - Escrow updated successfully - * - Set the escrow in the context - * - Show a success toast - * - * data.status == "ERROR" - * - Show an error toast - */ - if (data.status === "SUCCESS" && escrow) { - const escrowUpdated: Escrow = { - ...escrow, - milestones: escrow!.milestones.map((milestone: Milestone, index) => - index === Number(payload.milestoneIndex) - ? { - ...milestone, - status: payload.newStatus, - evidence: payload.evidence || "", - } - : milestone, - ), - }; - - setEscrow(escrowUpdated); - - toast.success( - `Milestone index - ${payload.milestoneIndex} updated to ${payload.newStatus}`, - ); - setResponse(data); - form.reset(); - } - } catch (error: unknown) { - const mappedError = handleError(error as AxiosError | WalletError); - console.error("Error:", mappedError.message); - - toast.error( - mappedError ? mappedError.message : "An unknown error occurred", - ); - } finally { - setLoading(false); - } - }; - - return { form, milestones, loading, response, onSubmit }; -}; diff --git a/src/components/modules/escrows/hooks/fund-escrow-form.hook.ts b/src/components/modules/escrows/hooks/fund-escrow-form.hook.ts deleted file mode 100644 index 10b640b0..00000000 --- a/src/components/modules/escrows/hooks/fund-escrow-form.hook.ts +++ /dev/null @@ -1,97 +0,0 @@ -import { useEscrowContext } from "@/providers/escrow.provider"; -import { useWalletContext } from "@/providers/wallet.provider"; -import { useState } from "react"; -import { useForm } from "react-hook-form"; -import { zodResolver } from "@hookform/resolvers/zod"; -import { z } from "zod"; -import { formSchema } from "../schemas/fund-escrow-form.schema"; -import { toast } from "sonner"; -import { signTransaction } from "../../auth/helpers/stellar-wallet-kit.helper"; -import { handleError } from "@/errors/utils/handle-errors"; -import { AxiosError } from "axios"; -import { WalletError } from "@/@types/errors.entity"; -import { - useFundEscrow, - useSendTransaction, -} from "@trustless-work/escrow/hooks"; -import { - Escrow, - EscrowRequestResponse, - FundEscrowPayload, -} from "@trustless-work/escrow/types"; - -export const useFundEscrowForm = () => { - const { escrow } = useEscrowContext(); - const { setEscrow } = useEscrowContext(); - const { walletAddress } = useWalletContext(); - const [loading, setLoading] = useState(false); - const [response, setResponse] = useState(null); - const [error, setError] = useState(null); - const { fundEscrow } = useFundEscrow(); - const { sendTransaction } = useSendTransaction(); - - const form = useForm>({ - resolver: zodResolver(formSchema), - defaultValues: { - contractId: escrow?.contractId || "", - amount: escrow?.amount?.toString() || "1000", - signer: walletAddress || "Connect your wallet to get your address", - }, - }); - - const onSubmit = async (payload: FundEscrowPayload) => { - setLoading(true); - setError(null); - setResponse(null); - - try { - const { unsignedTransaction } = await fundEscrow(payload); - - if (!unsignedTransaction) { - throw new Error( - "Unsigned transaction is missing from fundEscrow response.", - ); - } - - const signedXdr = await signTransaction({ - unsignedTransaction, - address: walletAddress || "", - }); - - if (!signedXdr) { - throw new Error("Signed transaction is missing."); - } - - const data = await sendTransaction({ - signedXdr, - returnEscrowDataIsRequired: false, - }); - - if (data.status === "SUCCESS" && escrow) { - const escrowUpdated: Escrow = { - ...escrow, - balance: - escrow?.balance && Number(escrow.balance) > 0 - ? (Number(escrow.balance) + Number(payload.amount)).toString() - : payload.amount, - }; - - setEscrow(escrowUpdated); - - toast.success("Escrow Funded"); - setResponse(data); - } - } catch (error: unknown) { - const mappedError = handleError(error as AxiosError | WalletError); - console.error("Error:", mappedError.message); - - toast.error( - mappedError ? mappedError.message : "An unknown error occurred", - ); - } finally { - setLoading(false); - } - }; - - return { form, loading, response, error, onSubmit }; -}; diff --git a/src/components/modules/escrows/hooks/get-escrow-form.hook.ts b/src/components/modules/escrows/hooks/get-escrow-form.hook.ts deleted file mode 100644 index 1632f3b2..00000000 --- a/src/components/modules/escrows/hooks/get-escrow-form.hook.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { formSchema } from "../schemas/get-escrow-form.schema"; -import { useWalletContext } from "@/providers/wallet.provider"; -import { useEscrowContext } from "@/providers/escrow.provider"; -import { useState } from "react"; -import { z } from "zod"; -import { useForm } from "react-hook-form"; -import { zodResolver } from "@hookform/resolvers/zod"; -import { toast } from "sonner"; -import { handleError } from "@/errors/utils/handle-errors"; -import { AxiosError } from "axios"; -import { WalletError } from "@/@types/errors.entity"; -import { Escrow, GetEscrowParams } from "@trustless-work/escrow/types"; -import { useGetEscrow } from "@trustless-work/escrow/hooks"; - -export const useGetEscrowForm = () => { - const { walletAddress } = useWalletContext(); - const { escrow, setEscrow } = useEscrowContext(); - const [loading, setLoading] = useState(false); - const [response, setResponse] = useState(null); - const [error, setError] = useState(null); - const { getEscrow, escrow: currentEscrow } = useGetEscrow(); - - const form = useForm>({ - resolver: zodResolver(formSchema), - defaultValues: { - contractId: escrow?.contractId || "", - signer: walletAddress || "Connect your wallet to get your address", - }, - }); - - const onSubmit = async (payload: GetEscrowParams) => { - setLoading(true); - setError(null); - setResponse(null); - - try { - /** - * API call by using the trustless work hooks - * @Note: - * - We need to pass the payload to the getEscrow function - * - The result will be an Escrow - */ - await getEscrow(payload); - - if (!currentEscrow) { - throw new Error("Escrow not found"); - } - - /** - * @Responses: - * escrow !== null - * - Escrow received successfully - * - Set the escrow in the context - * - Show a success toast - * - * escrow === null - * - Show an error toast - */ - if (currentEscrow) { - setEscrow({ ...currentEscrow, contractId: payload.contractId }); - setResponse(currentEscrow); - toast.success("Escrow Received"); - } - } catch (error: unknown) { - const mappedError = handleError(error as AxiosError | WalletError); - console.error("Error:", mappedError.message); - - toast.error( - mappedError ? mappedError.message : "An unknown error occurred", - ); - } finally { - setLoading(false); - } - }; - - return { form, loading, response, error, onSubmit }; -}; diff --git a/src/components/modules/escrows/hooks/get-multiple-escrow-balances-form.hook.ts b/src/components/modules/escrows/hooks/get-multiple-escrow-balances-form.hook.ts deleted file mode 100644 index 9a7fed70..00000000 --- a/src/components/modules/escrows/hooks/get-multiple-escrow-balances-form.hook.ts +++ /dev/null @@ -1,91 +0,0 @@ -import { useWalletContext } from "@/providers/wallet.provider"; -import { useState } from "react"; -import { useForm, useFieldArray } from "react-hook-form"; -import { z } from "zod"; -import { zodResolver } from "@hookform/resolvers/zod"; -import { formSchema } from "../schemas/get-multiple-escrow-balances-form.schema"; -import { toast } from "sonner"; -import { handleError } from "@/errors/utils/handle-errors"; -import { AxiosError } from "axios"; -import { WalletError } from "@/@types/errors.entity"; -import { - EscrowRequestResponse, - GetBalanceParams, -} from "@trustless-work/escrow/types"; -import { GetEscrowBalancesResponse } from "@trustless-work/escrow/types"; -import { useGetMultipleEscrowBalances } from "@trustless-work/escrow/hooks"; - -type FormData = z.infer; - -export const useGetMultipleEscrowBalancesForm = () => { - const { walletAddress } = useWalletContext(); - const [loading, setLoading] = useState(false); - const [response, setResponse] = useState< - EscrowRequestResponse | GetEscrowBalancesResponse[] | null - >(null); - const { getMultipleBalances, balances } = useGetMultipleEscrowBalances(); - - const form = useForm({ - resolver: zodResolver(formSchema), - defaultValues: { - signer: walletAddress || "", - addresses: [{ value: "" }], - }, - }); - - const { fields, append, remove } = useFieldArray({ - control: form.control, - name: "addresses", - }); - - const onSubmit = async (payload: FormData) => { - setLoading(true); - setResponse(null); - - // Transform the payload to the correct format - const transformedData: GetBalanceParams = { - addresses: payload.addresses.map((a) => a.value), - signer: payload.signer, - }; - - try { - /** - * API call by using the trustless work hooks - * @Note: - * - We need to pass the payload to the getMultipleBalances function - * - The result will be multiple escrow balances - */ - await getMultipleBalances(transformedData); - - if (!balances) { - throw new Error("Escrow not found"); - } - - /** - * @Responses: - * balances !== null - * - Escrow balances received successfully - * - Set the response - * - Show a success toast - * - * balances === null - * - Show an error toast - */ - if (balances) { - setResponse(balances); - toast.success("Escrow Balances Received"); - } - } catch (error: unknown) { - const mappedError = handleError(error as AxiosError | WalletError); - console.error("Error:", mappedError.message); - - toast.error( - mappedError ? mappedError.message : "An unknown error occurred", - ); - } finally { - setLoading(false); - } - }; - - return { form, loading, response, fields, append, remove, onSubmit }; -}; diff --git a/src/components/modules/escrows/hooks/initialize-escrow-form.hook.ts b/src/components/modules/escrows/hooks/initialize-escrow-form.hook.ts deleted file mode 100644 index fd51d0c1..00000000 --- a/src/components/modules/escrows/hooks/initialize-escrow-form.hook.ts +++ /dev/null @@ -1,269 +0,0 @@ -import { useWalletContext } from "@/providers/wallet.provider"; -import { useState } from "react"; -import { useForm } from "react-hook-form"; -import { zodResolver } from "@hookform/resolvers/zod"; -import { formSchema } from "../schemas/initialize-escrow-form.schema"; -import { toast } from "sonner"; -import { useEscrowContext } from "@/providers/escrow.provider"; -import { useTabsContext } from "@/providers/tabs.provider"; -import { trustlines } from "../constants/trustline.constant"; -import { z } from "zod"; -import { Resolver } from "react-hook-form"; -import { steps } from "../constants/initialize-steps.constant"; -import { buildEscrowFromResponse } from "../../../../helpers/build-escrow-from-response.helper"; -import { signTransaction } from "../../auth/helpers/stellar-wallet-kit.helper"; -import { handleError } from "@/errors/utils/handle-errors"; -import { AxiosError } from "axios"; -import { WalletError } from "@/@types/errors.entity"; -import { - useInitializeEscrow as useInitializeEscrowHook, - useSendTransaction, -} from "@trustless-work/escrow/hooks"; -import { - InitializeEscrowPayload, - InitializeEscrowResponse, - Trustline, -} from "@trustless-work/escrow/types"; - -type FormValues = z.infer; - -export const useInitializeEscrow = () => { - const [currentStep, setCurrentStep] = useState(0); - const [loading, setLoading] = useState(false); - const [response, setResponse] = useState( - null, - ); - const { walletAddress } = useWalletContext(); - const { setEscrow } = useEscrowContext(); - const { setActiveTab } = useTabsContext(); - - const { deployEscrow } = useInitializeEscrowHook(); - const { sendTransaction } = useSendTransaction(); - - const form = useForm({ - resolver: zodResolver(formSchema) as Resolver, - defaultValues: { - signer: walletAddress || "", - engagementId: "", - title: "", - description: "", - amount: "", - platformFee: "", - receiverMemo: 0, - roles: { - approver: "", - serviceProvider: "", - platformAddress: "", - releaseSigner: "", - disputeResolver: "", - receiver: "", - }, - trustline: { - address: "", - decimals: 10000000, - }, - milestones: [ - { - description: "", - status: "pending", - evidence: "", - approvedFlag: false, - }, - ], - }, - mode: "onChange", - }); - - const trustlinesOptions = trustlines.map( - (trustline: Trustline & { name?: string }) => ({ - value: trustline.address, - label: trustline.name, - }), - ); - - const addMilestone = () => { - const currentMilestones = form.getValues("milestones"); - form.setValue("milestones", [ - ...currentMilestones, - { description: "", status: "pending", evidence: "", approvedFlag: false }, - ]); - }; - - const removeMilestone = (index: number) => { - const currentMilestones = form.getValues("milestones"); - if (currentMilestones.length > 1) { - form.setValue( - "milestones", - currentMilestones.filter((_, i) => i !== index), - ); - } - }; - - const loadTemplate = () => { - form.setValue("title", "Sample TW Escrow"); - form.setValue( - "description", - "This is a sample TW escrow for testing purposes", - ); - form.setValue("engagementId", "ENG12345"); - form.setValue("amount", "50"); - form.setValue("platformFee", "5"); - form.setValue("roles.approver", walletAddress || ""); - form.setValue("roles.serviceProvider", walletAddress || ""); - form.setValue("roles.platformAddress", walletAddress || ""); - form.setValue("roles.releaseSigner", walletAddress || ""); - form.setValue("roles.disputeResolver", walletAddress || ""); - form.setValue("roles.receiver", walletAddress || ""); - form.setValue("receiverMemo", 90909090); - form.setValue( - "trustline.address", - trustlines.find((t) => t.name === "USDC")?.address || "", - ); - form.setValue("milestones", [ - { - description: "Initial milestone", - status: "pending", - evidence: "", - approvedFlag: false, - }, - { - description: "Second milestone", - status: "pending", - evidence: "", - approvedFlag: false, - }, - { - description: "Final milestone", - status: "pending", - evidence: "", - approvedFlag: false, - }, - ]); - }; - - const onSubmit = async (payload: InitializeEscrowPayload) => { - setLoading(true); - setResponse(null); - - try { - // This is the final payload that will be sent to the API - const finalPayload: InitializeEscrowPayload = { - ...payload, - receiverMemo: payload.receiverMemo ?? 0, - signer: walletAddress || "", - }; - - /** - * API call by using the trustless work hooks - * @Note: - * - We need to pass the payload to the deployEscrow function - * - The result will be an unsigned transaction - */ - const { unsignedTransaction } = await deployEscrow(finalPayload); - - if (!unsignedTransaction) { - throw new Error( - "Unsigned transaction is missing from deployEscrow response.", - ); - } - - /** - * @Note: - * - We need to sign the transaction using your private key - * - The result will be a signed transaction - */ - const signedXdr = await signTransaction({ - unsignedTransaction, - address: walletAddress || "", - }); - - if (!signedXdr) { - throw new Error("Signed transaction is missing."); - } - - /** - * @Note: - * - We need to send the signed transaction to the API - * - The data will be an SendTransactionResponse - */ - const data = await sendTransaction({ - signedXdr, - returnEscrowDataIsRequired: true, - }); - - /** - * @Responses: - * data.status === "SUCCESS" - * - Escrow created successfully - * - Set the escrow in the context - * - Set the active tab to "escrow" - * - Show a success toast - * - * data.status == "ERROR" - * - Show an error toast - */ - if (data && data.status === "SUCCESS") { - const escrow = buildEscrowFromResponse( - data as InitializeEscrowResponse, - walletAddress || "", - ); - setEscrow(escrow); - setActiveTab("escrow"); - toast.success("Escrow Created"); - } - } catch (error: unknown) { - const mappedError = handleError(error as AxiosError | WalletError); - console.error("Error:", mappedError.message); - - toast.error( - mappedError ? mappedError.message : "An unknown error occurred", - ); - } finally { - setLoading(false); - } - }; - - const nextStep = async () => { - const fields = getStepFields(currentStep); - const isValid = await form.trigger(fields); - - if (isValid) { - setCurrentStep((prev) => Math.min(prev + 1, steps.length - 1)); - } - }; - - const prevStep = () => { - setCurrentStep((prev) => Math.max(prev - 1, 0)); - }; - - const getStepFields = ( - step: number, - ): (keyof z.infer)[] => { - switch (step) { - case 0: - return ["title", "engagementId", "description"]; - case 1: - return ["amount", "platformFee", "trustline", "receiverMemo"]; - case 2: - return ["roles"]; - case 3: - return ["milestones"]; - default: - return []; - } - }; - - return { - form, - loading, - response, - trustlinesOptions, - currentStep, - addMilestone, - removeMilestone, - loadTemplate, - onSubmit, - nextStep, - prevStep, - }; -}; diff --git a/src/components/modules/escrows/hooks/release-funds-form.hook.ts b/src/components/modules/escrows/hooks/release-funds-form.hook.ts deleted file mode 100644 index 78d89664..00000000 --- a/src/components/modules/escrows/hooks/release-funds-form.hook.ts +++ /dev/null @@ -1,121 +0,0 @@ -import { useEscrowContext } from "@/providers/escrow.provider"; -import { useWalletContext } from "@/providers/wallet.provider"; -import { useState } from "react"; -import { useForm } from "react-hook-form"; -import { zodResolver } from "@hookform/resolvers/zod"; -import { z } from "zod"; -import { formSchema } from "../schemas/release-funds-form.schema"; -import { toast } from "sonner"; -import { signTransaction } from "../../auth/helpers/stellar-wallet-kit.helper"; -import { handleError } from "@/errors/utils/handle-errors"; -import { AxiosError } from "axios"; -import { WalletError } from "@/@types/errors.entity"; -import { - Escrow, - EscrowRequestResponse, - ReleaseFundsPayload, -} from "@trustless-work/escrow/types"; -import { - useReleaseFunds, - useSendTransaction, -} from "@trustless-work/escrow/hooks"; - -export const useReleaseFundsForm = () => { - const { escrow } = useEscrowContext(); - const { setEscrow } = useEscrowContext(); - const { walletAddress } = useWalletContext(); - const [loading, setLoading] = useState(false); - const [response, setResponse] = useState(null); - const { releaseFunds } = useReleaseFunds(); - const { sendTransaction } = useSendTransaction(); - - const form = useForm>({ - resolver: zodResolver(formSchema), - defaultValues: { - contractId: escrow?.contractId || "", - releaseSigner: escrow?.roles.releaseSigner || "", - signer: walletAddress || "Connect your wallet to get your address", - }, - }); - - const onSubmit = async (payload: ReleaseFundsPayload) => { - setLoading(true); - setResponse(null); - - try { - /** - * API call by using the trustless work hooks - * @Note: - * - We need to pass the payload to the releaseFunds function - * - The result will be an unsigned transaction - */ - const { unsignedTransaction } = await releaseFunds(payload); - - if (!unsignedTransaction) { - throw new Error( - "Unsigned transaction is missing from releaseFunds response.", - ); - } - - /** - * @Note: - * - We need to sign the transaction using your private key - * - The result will be a signed transaction - */ - const signedXdr = await signTransaction({ - unsignedTransaction, - address: walletAddress || "", - }); - - if (!signedXdr) { - throw new Error("Signed transaction is missing."); - } - - /** - * @Note: - * - We need to send the signed transaction to the API - * - The data will be an SendTransactionResponse - */ - const data = await sendTransaction({ - signedXdr, - returnEscrowDataIsRequired: false, - }); - - /** - * @Responses: - * data.status === "SUCCESS" - * - Escrow updated successfully - * - Set the escrow in the context - * - Show a success toast - * - * data.status == "ERROR" - * - Show an error toast - */ - if (data.status === "SUCCESS" && escrow) { - const escrowUpdated: Escrow = { - ...escrow, - flags: { - releaseFlag: true, - }, - balance: "0", - }; - - setEscrow(escrowUpdated); - - toast.success("The escrow has been released"); - setResponse(data); - } - } catch (error: unknown) { - const mappedError = handleError(error as AxiosError | WalletError); - console.error("Error:", mappedError.message); - - toast.error( - mappedError ? mappedError.message : "An unknown error occurred", - ); - } finally { - setLoading(false); - } - }; - - return { form, loading, response, onSubmit }; -}; diff --git a/src/components/modules/escrows/hooks/resolve-dispute-form.hook.ts b/src/components/modules/escrows/hooks/resolve-dispute-form.hook.ts deleted file mode 100644 index 407c3ca2..00000000 --- a/src/components/modules/escrows/hooks/resolve-dispute-form.hook.ts +++ /dev/null @@ -1,126 +0,0 @@ -import { useState } from "react"; -import { useForm } from "react-hook-form"; -import { zodResolver } from "@hookform/resolvers/zod"; -import { z } from "zod"; -import { useEscrowContext } from "@/providers/escrow.provider"; -import { formSchema } from "../schemas/resolve-dispute-form.schema"; -import { toast } from "sonner"; -import { useWalletContext } from "@/providers/wallet.provider"; -import { signTransaction } from "../../auth/helpers/stellar-wallet-kit.helper"; -import { handleError } from "@/errors/utils/handle-errors"; -import { AxiosError } from "axios"; -import { WalletError } from "@/@types/errors.entity"; -import { - Escrow, - EscrowRequestResponse, - ResolveDisputePayload, -} from "@trustless-work/escrow/types"; -import { - useResolveDispute, - useSendTransaction, -} from "@trustless-work/escrow/hooks"; - -export const useResolveDisputeForm = () => { - const { escrow } = useEscrowContext(); - const { setEscrow } = useEscrowContext(); - const [loading, setLoading] = useState(false); - const [response, setResponse] = useState(null); - const { walletAddress } = useWalletContext(); - const { resolveDispute } = useResolveDispute(); - const { sendTransaction } = useSendTransaction(); - - const form = useForm>({ - resolver: zodResolver(formSchema), - defaultValues: { - contractId: escrow?.contractId || "", - disputeResolver: escrow?.roles.disputeResolver || "", - approverFunds: "0", - receiverFunds: "0", - }, - }); - - const onSubmit = async (payload: ResolveDisputePayload) => { - setLoading(true); - setResponse(null); - - try { - /** - * API call by using the trustless work hooks - * @Note: - * - We need to pass the payload to the resolveDispute function - * - The result will be an unsigned transaction - */ - const { unsignedTransaction } = await resolveDispute(payload); - - if (!unsignedTransaction) { - throw new Error( - "Unsigned transaction is missing from resolveDispute response.", - ); - } - - /** - * @Note: - * - We need to sign the transaction using your private key - * - The result will be a signed transaction - */ - const signedXdr = await signTransaction({ - unsignedTransaction, - address: walletAddress || "", - }); - - if (!signedXdr) { - throw new Error("Signed transaction is missing."); - } - - /** - * @Note: - * - We need to send the signed transaction to the API - * - The data will be an SendTransactionResponse - */ - const data = await sendTransaction({ - signedXdr, - returnEscrowDataIsRequired: false, - }); - - /** - * @Responses: - * data.status === "SUCCESS" - * - Escrow updated successfully - * - Set the escrow in the context - * - Show a success toast - * - * data.status == "ERROR" - * - Show an error toast - */ - if (data.status === "SUCCESS" && escrow) { - const escrowUpdated: Escrow = { - ...escrow, - flags: { - resolvedFlag: true, - }, - balance: ( - Number(escrow?.balance) - - Number(payload.approverFunds) - - Number(payload.receiverFunds) - ).toString(), - }; - - setEscrow(escrowUpdated); - - toast.success("Dispute Resolved"); - setResponse(data); - } - } catch (error: unknown) { - const mappedError = handleError(error as AxiosError | WalletError); - console.error("Error:", mappedError.message); - - toast.error( - mappedError ? mappedError.message : "An unknown error occurred", - ); - } finally { - setLoading(false); - } - }; - - return { form, loading, response, onSubmit }; -}; diff --git a/src/components/modules/escrows/hooks/start-dispute-form.hook.ts b/src/components/modules/escrows/hooks/start-dispute-form.hook.ts deleted file mode 100644 index 4f366cd4..00000000 --- a/src/components/modules/escrows/hooks/start-dispute-form.hook.ts +++ /dev/null @@ -1,119 +0,0 @@ -import { useEscrowContext } from "@/providers/escrow.provider"; -import { useWalletContext } from "@/providers/wallet.provider"; -import { zodResolver } from "@hookform/resolvers/zod"; -import { useState } from "react"; -import { useForm } from "react-hook-form"; -import { z } from "zod"; -import { formSchema } from "../schemas/start-dispute-form.schema"; -import { toast } from "sonner"; -import { signTransaction } from "../../auth/helpers/stellar-wallet-kit.helper"; -import { handleError } from "@/errors/utils/handle-errors"; -import { AxiosError } from "axios"; -import { WalletError } from "@/@types/errors.entity"; -import { - Escrow, - EscrowRequestResponse, - StartDisputePayload, -} from "@trustless-work/escrow/types"; -import { - useSendTransaction, - useStartDispute, -} from "@trustless-work/escrow/hooks"; - -export const useStartDisputeForm = () => { - const { escrow } = useEscrowContext(); - const { setEscrow } = useEscrowContext(); - const { walletAddress } = useWalletContext(); - const [loading, setLoading] = useState(false); - const [response, setResponse] = useState(null); - const { startDispute } = useStartDispute(); - const { sendTransaction } = useSendTransaction(); - - const form = useForm>({ - resolver: zodResolver(formSchema), - defaultValues: { - contractId: escrow?.contractId || "", - signer: walletAddress || "Connect your wallet to get your address", - }, - }); - - const onSubmit = async (payload: StartDisputePayload) => { - setLoading(true); - setResponse(null); - - try { - /** - * API call by using the trustless work hooks - * @Note: - * - We need to pass the payload to the startDispute function - * - The result will be an unsigned transaction - */ - const { unsignedTransaction } = await startDispute(payload); - - if (!unsignedTransaction) { - throw new Error( - "Unsigned transaction is missing from startDispute response.", - ); - } - - /** - * @Note: - * - We need to sign the transaction using your private key - * - The result will be a signed transaction - */ - const signedXdr = await signTransaction({ - unsignedTransaction, - address: walletAddress || "", - }); - - if (!signedXdr) { - throw new Error("Signed transaction is missing."); - } - - /** - * @Note: - * - We need to send the signed transaction to the API - * - The data will be an SendTransactionResponse - */ - const data = await sendTransaction({ - signedXdr, - returnEscrowDataIsRequired: false, - }); - - /** - * @Responses: - * data.status === "SUCCESS" - * - Escrow updated successfully - * - Set the escrow in the context - * - Show a success toast - * - * data.status == "ERROR" - * - Show an error toast - */ - if (data.status === "SUCCESS" && escrow) { - const escrowUpdated: Escrow = { - ...escrow, - flags: { - disputeFlag: true, - }, - }; - - setEscrow(escrowUpdated); - - toast.success("Dispute Started"); - setResponse(data); - } - } catch (error: unknown) { - const mappedError = handleError(error as AxiosError | WalletError); - console.error("Error:", mappedError.message); - - toast.error( - mappedError ? mappedError.message : "An unknown error occurred", - ); - } finally { - setLoading(false); - } - }; - - return { form, loading, response, onSubmit }; -}; diff --git a/src/components/modules/escrows/hooks/update-escrow-form.hook.ts b/src/components/modules/escrows/hooks/update-escrow-form.hook.ts deleted file mode 100644 index f4e51f6d..00000000 --- a/src/components/modules/escrows/hooks/update-escrow-form.hook.ts +++ /dev/null @@ -1,153 +0,0 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ - -import { useForm, useFieldArray } from "react-hook-form"; -import { zodResolver } from "@hookform/resolvers/zod"; -import { z } from "zod"; -import { useEscrowContext } from "@/providers/escrow.provider"; -import { useWalletContext } from "@/providers/wallet.provider"; -import { useState } from "react"; -import { toast } from "sonner"; -import { formSchema } from "../schemas/update-escrow-form.schema"; -import { handleError } from "@/errors/utils/handle-errors"; -import { AxiosError } from "axios"; -import { WalletError } from "@/@types/errors.entity"; -import { signTransaction } from "../../auth/helpers/stellar-wallet-kit.helper"; -import { - Escrow, - UpdateEscrowPayload, - UpdateEscrowResponse, -} from "@trustless-work/escrow/types"; -import { - useSendTransaction, - useUpdateEscrow, -} from "@trustless-work/escrow/hooks"; - -export const useUpdateEscrowForm = () => { - const { escrow } = useEscrowContext(); - const { walletAddress } = useWalletContext(); - const { setEscrow } = useEscrowContext(); - const [response, setResponse] = useState(null); - const [loading, setLoading] = useState(false); - const { updateEscrow } = useUpdateEscrow(); - const { sendTransaction } = useSendTransaction(); - - const form = useForm>({ - resolver: zodResolver(formSchema) as any, - defaultValues: { - signer: walletAddress || "", - contractId: escrow?.contractId || "", - escrow: { - title: escrow?.title || "", - engagementId: escrow?.engagementId || "", - description: escrow?.description || "", - amount: escrow?.amount.toString() || "", - platformFee: (Number(escrow?.platformFee) / 100).toString() || "", - receiverMemo: escrow?.receiverMemo || 0, - roles: { - approver: escrow?.roles.approver || "", - serviceProvider: escrow?.roles.serviceProvider || "", - platformAddress: escrow?.roles.platformAddress || "", - releaseSigner: escrow?.roles.releaseSigner || "", - disputeResolver: escrow?.roles.disputeResolver || "", - receiver: escrow?.roles.receiver || "", - }, - trustline: { - address: escrow?.trustline.address || "", - decimals: escrow?.trustline.decimals || 10000000, - }, - milestones: escrow?.milestones || [ - { - description: "", - status: "pending", - evidence: "", - approvedFlag: false, - }, - ], - }, - }, - }); - - const { fields, append, remove } = useFieldArray({ - control: form.control, - name: "escrow.milestones", - }); - - const onSubmit = async (payload: UpdateEscrowPayload) => { - setLoading(true); - setResponse(null); - - try { - /** - * API call by using the trustless work hooks - * @Note: - * - We need to pass the payload to the updateEscrow function - * - The result will be an unsigned transaction - */ - const { unsignedTransaction } = await updateEscrow(payload); - - if (!unsignedTransaction) { - throw new Error( - "Unsigned transaction is missing from updateEscrow response.", - ); - } - - /** - * @Note: - * - We need to sign the transaction using your private key - * - The result will be a signed transaction - */ - const signedXdr = await signTransaction({ - unsignedTransaction, - address: walletAddress || "", - }); - - if (!signedXdr) { - throw new Error("Signed transaction is missing."); - } - - /** - * @Note: - * - We need to send the signed transaction to the API - * - The data will be an SendTransactionResponse - */ - const data = await sendTransaction({ - signedXdr, - returnEscrowDataIsRequired: true, - }); - - /** - * @Responses: - * data.status === "SUCCESS" - * - Escrow updated successfully - * - Set the escrow in the context - * - Show a success toast - * - * data.status == "ERROR" - * - Show an error toast - */ - if (data.status === "SUCCESS" && escrow) { - const escrowUpdated: Escrow = { - ...escrow, - ...payload.escrow, - signer: payload.signer, - contractId: payload.contractId, - }; - - setEscrow(escrowUpdated); - setResponse(data as UpdateEscrowResponse); - toast.success("Escrow Updated"); - } - } catch (error: unknown) { - const mappedError = handleError(error as AxiosError | WalletError); - console.error("Error:", mappedError.message); - - toast.error( - mappedError ? mappedError.message : "An unknown error occurred", - ); - } finally { - setLoading(false); - } - }; - - return { form, loading, response, fields, append, remove, onSubmit }; -}; diff --git a/src/components/modules/escrows/schemas/change-milestone-flag-form.schema.ts b/src/components/modules/escrows/schemas/change-milestone-flag-form.schema.ts deleted file mode 100644 index a6b7fe2a..00000000 --- a/src/components/modules/escrows/schemas/change-milestone-flag-form.schema.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { isValidWallet } from "@/helpers/is-valid-wallet.helper"; -import { z } from "zod"; - -export const formSchema = z.object({ - contractId: z.string().min(1, "Contract ID is required"), - milestoneIndex: z.string().min(1, "Milestone index is required"), - newFlag: z.boolean(), - approver: z - .string() - .min(1, { - message: "Approver is required.", - }) - .refine((value) => isValidWallet(value), { - message: "Approver must be a valid wallet.", - }), -}); diff --git a/src/components/modules/escrows/schemas/change-milestone-status-form.schema.ts b/src/components/modules/escrows/schemas/change-milestone-status-form.schema.ts deleted file mode 100644 index 3d764ab6..00000000 --- a/src/components/modules/escrows/schemas/change-milestone-status-form.schema.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { isValidWallet } from "@/helpers/is-valid-wallet.helper"; -import { z } from "zod"; - -export const formSchema = z.object({ - contractId: z.string().min(1, "Contract ID is required"), - milestoneIndex: z.string().min(1, "Milestone index is required"), - newStatus: z.string().min(1, "New status is required"), - serviceProvider: z - .string() - .min(1, { - message: "Service provider is required.", - }) - .refine((value) => isValidWallet(value), { - message: "Service provider must be a valid wallet.", - }), - evidence: z.string().optional(), -}); diff --git a/src/components/modules/escrows/schemas/fund-escrow-form.schema.ts b/src/components/modules/escrows/schemas/fund-escrow-form.schema.ts deleted file mode 100644 index f89ec64d..00000000 --- a/src/components/modules/escrows/schemas/fund-escrow-form.schema.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { z } from "zod"; - -export const formSchema = z.object({ - contractId: z.string().min(1, "Contract ID is required"), - signer: z.string().min(1, "Signer address is required"), - amount: z.string().min(1, { - message: "Amount is required.", - }), -}); diff --git a/src/components/modules/escrows/schemas/get-escrow-form.schema.ts b/src/components/modules/escrows/schemas/get-escrow-form.schema.ts deleted file mode 100644 index b05fc37c..00000000 --- a/src/components/modules/escrows/schemas/get-escrow-form.schema.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { z } from "zod"; - -export const formSchema = z.object({ - contractId: z.string().min(1, "Contract ID is required"), - signer: z.string().min(1, "Signer Address is required"), -}); diff --git a/src/components/modules/escrows/schemas/get-multiple-escrow-balances-form.schema.ts b/src/components/modules/escrows/schemas/get-multiple-escrow-balances-form.schema.ts deleted file mode 100644 index fdeff3a8..00000000 --- a/src/components/modules/escrows/schemas/get-multiple-escrow-balances-form.schema.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { z } from "zod"; - -export const formSchema = z.object({ - signer: z.string().min(1, "Signer address is required"), - addresses: z - .array( - z.object({ - value: z.string().min(1, "Address is required"), - }), - ) - .min(1, "At least one address is required"), -}); diff --git a/src/components/modules/escrows/schemas/initialize-escrow-form.schema.ts b/src/components/modules/escrows/schemas/initialize-escrow-form.schema.ts deleted file mode 100644 index 1cae0501..00000000 --- a/src/components/modules/escrows/schemas/initialize-escrow-form.schema.ts +++ /dev/null @@ -1,94 +0,0 @@ -import { isValidWallet } from "@/helpers/is-valid-wallet.helper"; -import { z } from "zod"; - -export const formSchema = z.object({ - signer: z.string().min(1, { - message: "Signer is required.", - }), - engagementId: z.string().min(1, { - message: "Engagement is required.", - }), - title: z.string().min(1, { - message: "Title is required.", - }), - description: z.string().min(10, { - message: "Description must be at least 10 characters long.", - }), - amount: z.string().min(1, { - message: "Amount is required.", - }), - platformFee: z.string().min(1, { - message: "Platform fee is required.", - }), - receiverMemo: z.number().min(0, { - message: "Receiver memo must be a non-negative number.", - }), - roles: z.object({ - approver: z - .string() - .min(1, { - message: "Approver is required.", - }) - .refine((value) => isValidWallet(value), { - message: "Approver must be a valid wallet.", - }), - serviceProvider: z - .string() - .min(1, { - message: "Service provider is required.", - }) - .refine((value) => isValidWallet(value), { - message: "Service provider must be a valid wallet.", - }), - platformAddress: z - .string() - .min(1, { - message: "Platform address is required.", - }) - .refine((value) => isValidWallet(value), { - message: "Platform address must be a valid wallet.", - }), - releaseSigner: z - .string() - .min(1, { - message: "Release signer is required.", - }) - .refine((value) => isValidWallet(value), { - message: "Release signer must be a valid wallet.", - }), - disputeResolver: z - .string() - .min(1, { - message: "Dispute resolver is required.", - }) - .refine((value) => isValidWallet(value), { - message: "Dispute resolver must be a valid wallet.", - }), - receiver: z - .string() - .min(1, { - message: "Receiver address is required.", - }) - .refine((value) => isValidWallet(value), { - message: "Receiver address must be a valid wallet.", - }), - }), - trustline: z.object({ - address: z.string().min(1, { - message: "Trustline address is required.", - }), - decimals: z.number().default(10000000), - }), - milestones: z - .array( - z.object({ - description: z.string().min(1, { - message: "Milestone description is required.", - }), - status: z.string().default("pending"), - evidence: z.string().default(""), - approvedFlag: z.boolean().default(false), - }), - ) - .min(1, { message: "At least one milestone is required." }), -}); diff --git a/src/components/modules/escrows/schemas/release-funds-form.schema.ts b/src/components/modules/escrows/schemas/release-funds-form.schema.ts deleted file mode 100644 index 5f05404e..00000000 --- a/src/components/modules/escrows/schemas/release-funds-form.schema.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { isValidWallet } from "@/helpers/is-valid-wallet.helper"; -import { z } from "zod"; - -export const formSchema = z.object({ - contractId: z.string().min(1, "Contract ID is required"), - releaseSigner: z - .string() - .min(1, { - message: "Release signer is required.", - }) - .refine((value) => isValidWallet(value), { - message: "Release signer must be a valid wallet.", - }), - signer: z.string().min(1, "Signer address is required"), -}); diff --git a/src/components/modules/escrows/schemas/resolve-dispute-form.schema.ts b/src/components/modules/escrows/schemas/resolve-dispute-form.schema.ts deleted file mode 100644 index 6bee51d6..00000000 --- a/src/components/modules/escrows/schemas/resolve-dispute-form.schema.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { isValidWallet } from "@/helpers/is-valid-wallet.helper"; -import { z } from "zod"; - -export const formSchema = z.object({ - contractId: z.string().min(1, "Contract ID is required"), - disputeResolver: z - .string() - .min(1, { - message: "Dispute resolver is required.", - }) - .refine((value) => isValidWallet(value), { - message: "Dispute resolver must be a valid wallet.", - }), - approverFunds: z.string().min(1, "Approver funds is required"), - receiverFunds: z.string().min(1, "Receiver funds is required"), -}); diff --git a/src/components/modules/escrows/schemas/start-dispute-form.schema.ts b/src/components/modules/escrows/schemas/start-dispute-form.schema.ts deleted file mode 100644 index d2731497..00000000 --- a/src/components/modules/escrows/schemas/start-dispute-form.schema.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { z } from "zod"; - -export const formSchema = z.object({ - contractId: z.string().min(1, "Contract ID is required"), - signer: z.string().min(1, "Signer address is required"), -}); diff --git a/src/components/modules/escrows/schemas/update-escrow-form.schema.ts b/src/components/modules/escrows/schemas/update-escrow-form.schema.ts deleted file mode 100644 index 3de04c66..00000000 --- a/src/components/modules/escrows/schemas/update-escrow-form.schema.ts +++ /dev/null @@ -1,99 +0,0 @@ -import { isValidWallet } from "@/helpers/is-valid-wallet.helper"; -import { z } from "zod"; - -export const formSchema = z.object({ - contractId: z.string().min(1, { - message: "Contract ID is required.", - }), - signer: z.string().min(1, { - message: "Signer is required.", - }), - escrow: z.object({ - title: z.string().min(1, { - message: "Title is required.", - }), - engagementId: z.string().min(1, { - message: "Engagement is required.", - }), - description: z.string().min(10, { - message: "Description must be at least 10 characters long.", - }), - amount: z.string().min(1, { - message: "Amount is required.", - }), - platformFee: z.string().min(1, { - message: "Platform fee is required.", - }), - receiverMemo: z.number().min(0, { - message: "Receiver memo must be a non-negative number.", - }), - roles: z.object({ - approver: z - .string() - .min(1, { - message: "Approver is required.", - }) - .refine((value) => isValidWallet(value), { - message: "Approver must be a valid wallet.", - }), - serviceProvider: z - .string() - .min(1, { - message: "Service provider is required.", - }) - .refine((value) => isValidWallet(value), { - message: "Service provider must be a valid wallet.", - }), - platformAddress: z - .string() - .min(1, { - message: "Platform address is required.", - }) - .refine((value) => isValidWallet(value), { - message: "Platform address must be a valid wallet.", - }), - releaseSigner: z - .string() - .min(1, { - message: "Release signer is required.", - }) - .refine((value) => isValidWallet(value), { - message: "Release signer must be a valid wallet.", - }), - disputeResolver: z - .string() - .min(1, { - message: "Dispute resolver is required.", - }) - .refine((value) => isValidWallet(value), { - message: "Dispute resolver must be a valid wallet.", - }), - receiver: z - .string() - .min(1, { - message: "Receiver address is required.", - }) - .refine((value) => isValidWallet(value), { - message: "Receiver address must be a valid wallet.", - }), - }), - trustline: z.object({ - address: z.string().min(1, { - message: "Trustline address is required.", - }), - decimals: z.number().default(10000000), - }), - milestones: z - .array( - z.object({ - description: z.string().min(1, { - message: "Milestone description is required.", - }), - status: z.string().default("pending"), - evidence: z.string().default(""), - approvedFlag: z.boolean().default(false), - }), - ) - .min(1, { message: "At least one milestone is required." }), - }), -}); diff --git a/src/components/modules/escrows/ui/ConnectWalletWarning.tsx b/src/components/modules/escrows/ui/ConnectWalletWarning.tsx deleted file mode 100644 index 64b0c91f..00000000 --- a/src/components/modules/escrows/ui/ConnectWalletWarning.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { Button } from "@/components/ui/button"; -import { AlertCircle, Wallet } from "lucide-react"; -import { useWallet } from "@/components/modules/auth/hooks/wallet.hook"; - -export const ConnectWalletWarning = () => { - const { handleConnect } = useWallet(); - - return ( -
-
- -
-

Wallet Connection Required

-

- To access and interact with the Trustless Work API endpoints, you need - to connect your Stellar wallet first. -

-
- -
-
- -

Your wallet information is never stored on our servers

-
-
- ); -}; diff --git a/src/components/modules/escrows/ui/cards/EntityCard.tsx b/src/components/modules/escrows/ui/cards/EntityCard.tsx deleted file mode 100644 index 6663a840..00000000 --- a/src/components/modules/escrows/ui/cards/EntityCard.tsx +++ /dev/null @@ -1,20 +0,0 @@ -interface EntityCardProps { - name: string; - entity: string; - icon: React.ReactNode; -} - -export const EntityCard = ({ name, entity, icon }: EntityCardProps) => { - return ( -
-
- {icon} -
- -
-

{name}

-

{entity}

-
-
- ); -}; diff --git a/src/components/modules/escrows/ui/endpoints/DeployEndpoints.tsx b/src/components/modules/escrows/ui/endpoints/DeployEndpoints.tsx deleted file mode 100644 index 97ad4a34..00000000 --- a/src/components/modules/escrows/ui/endpoints/DeployEndpoints.tsx +++ /dev/null @@ -1,71 +0,0 @@ -"use client"; - -import { Button } from "@/components/ui/button"; -import { InitializeEscrowForm } from "../forms/InitializeEscrowForm"; -import { - Card, - CardContent, - CardDescription, - CardHeader, - CardTitle, -} from "@/components/ui/card"; -import { useInitializeEscrow } from "../../hooks/initialize-escrow-form.hook"; - -export function DeployEndpoints() { - const { - form, - loading, - response, - trustlinesOptions, - currentStep, - addMilestone, - removeMilestone, - loadTemplate, - onSubmit, - nextStep, - prevStep, - } = useInitializeEscrow(); - - const handleLoadTemplate = () => { - loadTemplate(); - }; - - return ( - - -
- Deploy Endpoints - - Deploy and initialize escrow contracts on the Stellar blockchain - -
- - -
- - ({ - value: option.value, - label: option.label || option.value, - }))} - currentStep={currentStep} - nextStep={nextStep} - prevStep={prevStep} - /> - -
- ); -} diff --git a/src/components/modules/escrows/ui/endpoints/EscrowEndpoints.tsx b/src/components/modules/escrows/ui/endpoints/EscrowEndpoints.tsx deleted file mode 100644 index f1377217..00000000 --- a/src/components/modules/escrows/ui/endpoints/EscrowEndpoints.tsx +++ /dev/null @@ -1,123 +0,0 @@ -"use client"; - -import { useState } from "react"; -import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; -import { - Card, - CardContent, - CardDescription, - CardHeader, - CardTitle, -} from "@/components/ui/card"; -import { StartDisputeForm } from "../forms/StartDisputeForm"; -import { GetEscrowForm } from "../forms/GetEscrowForm"; -import { FundEscrowForm } from "../forms/FundEscrowForm"; -import { ChangeMilestoneStatusForm } from "../forms/ChangeMilestoneStatusForm"; -import { ChangeMilestoneFlagForm } from "../forms/ChangeMilestoneFlagForm"; -import { ReleaseFundsForm } from "../forms/ReleaseFundsForm"; -import { ResolveDisputeForm } from "../forms/ResolveDisputeForm"; -import { UpdateEscrowForm } from "../forms/UpdateEscrowForm"; -import { EscrowCreatedSection } from "../sections/EscrowCreatedSection"; -import { useEscrowContext } from "@/providers/escrow.provider"; -import { useTabsContext } from "@/providers/tabs.provider"; -import { Button } from "@/components/ui/button"; - -export function EscrowEndpoints() { - const [activeTabEscrow, setActiveTabEscrow] = useState("get-escrow"); - const { resetEscrow } = useEscrowContext(); - const { setActiveTab } = useTabsContext(); - const { escrow } = useEscrowContext(); - - return ( - - -
- Escrow Endpoints - - Manage escrow contracts, milestones, and funds - -
- - {escrow && ( - - )} -
- - - - - Get Escrow - - - Fund Escrow - - - Change Status - - - Approve Milestone - - - Start Dispute - - - Resolve Dispute - - - Release Funds - - - Update Escrow - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
-
- ); -} diff --git a/src/components/modules/escrows/ui/endpoints/HelperEndpoints.tsx b/src/components/modules/escrows/ui/endpoints/HelperEndpoints.tsx deleted file mode 100644 index 98c21247..00000000 --- a/src/components/modules/escrows/ui/endpoints/HelperEndpoints.tsx +++ /dev/null @@ -1,44 +0,0 @@ -"use client"; - -import { useState } from "react"; -import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; -import { - Card, - CardContent, - CardDescription, - CardHeader, - CardTitle, -} from "@/components/ui/card"; -import { GetMultipleEscrowBalanceForm } from "../forms/GetMultipleEscrowBalanceForm"; - -export function HelperEndpoints() { - const [activeTab, setActiveTab] = useState("get-multiple-escrow-balance"); - - return ( - - - Helper Endpoints - - Utility endpoints for blockchain interactions - - - - - - - Get Balances - - -
- - - -
-
-
-
- ); -} diff --git a/src/components/modules/escrows/ui/forms/ChangeMilestoneFlagForm.tsx b/src/components/modules/escrows/ui/forms/ChangeMilestoneFlagForm.tsx deleted file mode 100644 index 33428504..00000000 --- a/src/components/modules/escrows/ui/forms/ChangeMilestoneFlagForm.tsx +++ /dev/null @@ -1,127 +0,0 @@ -"use client"; - -import { Button } from "@/components/ui/button"; -import { Input } from "@/components/ui/input"; -import { Switch } from "@/components/ui/switch"; -import { - Form, - FormField, - FormItem, - FormLabel, - FormControl, - FormMessage, -} from "@/components/ui/form"; -import { - Select, - SelectContent, - SelectItem, - SelectTrigger, - SelectValue, -} from "@/components/ui/select"; -import { useChangeMilestoneFlagForm } from "../../hooks/change-milestone-flag-form.hook"; -import { useEscrowContext } from "@/providers/escrow.provider"; -import { ResponseDisplay } from "@/utils/response-display"; - -export function ChangeMilestoneFlagForm() { - const { form, milestones, loading, response, onSubmit } = - useChangeMilestoneFlagForm(); - const { escrow } = useEscrowContext(); - - return ( -
-
- - ( - - Contract / Escrow ID - - - - - - )} - /> - - ( - - Approver Address - - - - - - )} - /> - - ( - - Milestone Index - - - - - - )} - /> - - ( - -
- Approve Milestone -
- - - - -
- )} - /> - - - - - - -
- ); -} diff --git a/src/components/modules/escrows/ui/forms/ChangeMilestoneStatusForm.tsx b/src/components/modules/escrows/ui/forms/ChangeMilestoneStatusForm.tsx deleted file mode 100644 index 20cefc07..00000000 --- a/src/components/modules/escrows/ui/forms/ChangeMilestoneStatusForm.tsx +++ /dev/null @@ -1,137 +0,0 @@ -"use client"; - -import { Button } from "@/components/ui/button"; -import { Input } from "@/components/ui/input"; -import { - Form, - FormField, - FormItem, - FormLabel, - FormControl, - FormMessage, -} from "@/components/ui/form"; -import { - Select, - SelectContent, - SelectItem, - SelectTrigger, - SelectValue, -} from "@/components/ui/select"; -import { useChangeMilestoneStatusForm } from "../../hooks/change-milestone-status-form.hook"; -import { useEscrowContext } from "@/providers/escrow.provider"; -import { ResponseDisplay } from "@/utils/response-display"; - -export function ChangeMilestoneStatusForm() { - const { form, milestones, loading, response, onSubmit } = - useChangeMilestoneStatusForm(); - const { escrow } = useEscrowContext(); - - return ( -
-
- - ( - - Contract / Escrow ID - - - - - - )} - /> - - ( - - Service Provider Address - - - - - - )} - /> - - ( - - Milestone Index - - - - - - )} - /> - - ( - - New Status - - - - - - )} - /> - - ( - - Evidence (optional) - - - - - - )} - /> - - - - - - -
- ); -} diff --git a/src/components/modules/escrows/ui/forms/FundEscrowForm.tsx b/src/components/modules/escrows/ui/forms/FundEscrowForm.tsx deleted file mode 100644 index e6313f82..00000000 --- a/src/components/modules/escrows/ui/forms/FundEscrowForm.tsx +++ /dev/null @@ -1,85 +0,0 @@ -"use client"; - -import { Button } from "@/components/ui/button"; -import { Input } from "@/components/ui/input"; -import { - Form, - FormField, - FormItem, - FormLabel, - FormControl, - FormMessage, -} from "@/components/ui/form"; - -import { useFundEscrowForm } from "../../hooks/fund-escrow-form.hook"; -import { useEscrowContext } from "@/providers/escrow.provider"; -import { ResponseDisplay } from "@/utils/response-display"; - -export function FundEscrowForm() { - const { form, loading, response, onSubmit } = useFundEscrowForm(); - const { escrow } = useEscrowContext(); - - return ( -
-
- - ( - - Contract / Escrow ID - - - - - - )} - /> - - ( - - Signer Address - - - - - - )} - /> - - ( - - Amount - - = Number(escrow?.amount)} - type="text" - {...field} - /> - - - - )} - /> - - - - - - -
- ); -} diff --git a/src/components/modules/escrows/ui/forms/GetEscrowForm.tsx b/src/components/modules/escrows/ui/forms/GetEscrowForm.tsx deleted file mode 100644 index 33d53502..00000000 --- a/src/components/modules/escrows/ui/forms/GetEscrowForm.tsx +++ /dev/null @@ -1,58 +0,0 @@ -"use client"; - -import { Button } from "@/components/ui/button"; -import { Input } from "@/components/ui/input"; -import { - Form, - FormField, - FormItem, - FormLabel, - FormControl, - FormMessage, -} from "@/components/ui/form"; -import { useGetEscrowForm } from "../../hooks/get-escrow-form.hook"; -import { ResponseDisplay } from "@/utils/response-display"; - -export function GetEscrowForm() { - const { form, loading, response, onSubmit } = useGetEscrowForm(); - - return ( -
- - ( - - Contract / Escrow ID - - - - - - )} - /> - - ( - - Signer Address - - - - - - )} - /> - - - - - - - ); -} diff --git a/src/components/modules/escrows/ui/forms/GetMultipleEscrowBalanceForm.tsx b/src/components/modules/escrows/ui/forms/GetMultipleEscrowBalanceForm.tsx deleted file mode 100644 index 1d9dcfa2..00000000 --- a/src/components/modules/escrows/ui/forms/GetMultipleEscrowBalanceForm.tsx +++ /dev/null @@ -1,95 +0,0 @@ -"use client"; - -import { Button } from "@/components/ui/button"; -import { Input } from "@/components/ui/input"; -import { Label } from "@/components/ui/label"; -import { Plus, Trash } from "lucide-react"; -import { - Form, - FormField, - FormItem, - FormLabel, - FormControl, - FormMessage, -} from "@/components/ui/form"; -import { useGetMultipleEscrowBalancesForm } from "../../hooks/get-multiple-escrow-balances-form.hook"; -import { ResponseDisplay } from "@/utils/response-display"; - -export function GetMultipleEscrowBalanceForm() { - const { form, loading, response, fields, append, remove, onSubmit } = - useGetMultipleEscrowBalancesForm(); - - return ( -
-
- - {/* Signer Address */} - ( - - Signer Address - - - - - - )} - /> - - {/* Contract Addresses */} -
-
- - -
- - {fields.map((field, index) => ( - ( - - - - - {fields.length > 1 && ( - - )} - - - )} - /> - ))} -
- - - - - - -
- ); -} diff --git a/src/components/modules/escrows/ui/forms/InitializeEscrowForm.tsx b/src/components/modules/escrows/ui/forms/InitializeEscrowForm.tsx deleted file mode 100644 index 97ec2318..00000000 --- a/src/components/modules/escrows/ui/forms/InitializeEscrowForm.tsx +++ /dev/null @@ -1,448 +0,0 @@ -"use client"; - -import { Button } from "@/components/ui/button"; -import { Input } from "@/components/ui/input"; -import { Textarea } from "@/components/ui/textarea"; -import { Plus, Trash, ChevronLeft, ChevronRight } from "lucide-react"; -import { - Form, - FormField, - FormItem, - FormLabel, - FormControl, - FormMessage, - FormDescription, -} from "@/components/ui/form"; -import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; -import { UseFormReturn } from "react-hook-form"; -import { z } from "zod"; -import { formSchema } from "../../schemas/initialize-escrow-form.schema"; -import { - Select, - SelectContent, - SelectItem, - SelectTrigger, - SelectValue, -} from "@/components/ui/select"; -import { cn } from "@/lib/utils"; -import { steps } from "../../constants/initialize-steps.constant"; -import { InitializeEscrowResponse } from "@trustless-work/escrow/types"; -import { ResponseDisplay } from "@/utils/response-display"; - -interface InitializeEscrowFormProps { - form: UseFormReturn>; - loading?: boolean; - response: InitializeEscrowResponse | null; - trustlinesOptions: { value: string; label: string }[]; - currentStep: number; - onSubmit: (data: z.infer) => Promise; - addMilestone: () => void; - removeMilestone: (index: number) => void; - nextStep: () => void; - prevStep: () => void; -} - -export const InitializeEscrowForm = ({ - form, - loading, - response, - trustlinesOptions, - currentStep, - onSubmit, - addMilestone, - removeMilestone, - nextStep, - prevStep, -}: InitializeEscrowFormProps) => { - const renderStep = () => { - const currentStepData = steps[currentStep]; - - return ( - - - - {currentStepData.title} - - {currentStepData.description} - - -
- {currentStep === 0 && ( - <> - ( - - Signer Address - - - - - - )} - /> - - ( - - Title - - - - - - )} - /> - - ( - - Engagement ID - - - - - - )} - /> - - ( - - Description - -